Dit werkt bij mij:quote:Op maandag 17 januari 2011 10:45 schreef teamlead het volgende:
Ik ben een formulier aan het maken in excel waarbij ik wil dat gebruikers een aantal verplichte gegevens invullen.
Eén van die gegevens is het mailadres.
Kan ik met gegevensvalidatie vastleggen dat er op zijn minst een "@" in het mailadres moet voorkomen? (ik ken de gebruikers hier een beetje )
Als ik gewoon bij gegevensvalidatie kijk, staat die optie er niet tussen, dus zou het via een formule moeten onder de optie "aangepast", maar ik kom er niet uit
anyone?>
In een ander vel de product codes met tekst maken, en dan met verticaal zoeken is dat zo te doen.quote:Op maandag 17 januari 2011 16:44 schreef CRAPjoris het volgende:
Hey allemaal!
Ik heb een vraagje (Jaja, pas nieuw. Maargoed..)
Mensen kunnen bij mij telefonisch iets bestellen, nu wil ik graag in excel een bestandje maken waarbij ik alleen productcodes hoef in te voeren (bijv. '1001 1002 1003) en dat excel dan automatisch die productcodes herkent en deze omzet naar tekst (bijv. 'PRODUCT1')
Eerst begreep ik er niets van,quote:Op maandag 17 januari 2011 17:07 schreef Basp1 het volgende:
http://www.mijnbestand.nl/Bestand-VB6Q7NO3D8PE.xlsx
Hier een voorbeeld waarin vert.zoeken verwerkt is.
Let op alleen dat de volgorde in dit geval bij het debiteurentabblad wel oplopend moet zijn anders kan het nog mis gaan.
Ik had een paar weken geleden ongeveer dezelfde vraag, het antwoord staat er onder ergens.quote:Op dinsdag 18 januari 2011 17:19 schreef Holy_Goat het volgende:
ello, is er een (snelle) manier om voor 50.000 cellen (in 1 kolom)
(zonder macro liefst) het volgende te splitsen?
"###@@@" naar ### @@@
waar # staat voor een getal, eventueel incluis komma, en @@@ staat voor willekeurige text, incluis spatie.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php Function splitstring1(cell As Range) As Variant Dim tmpstring As String Dim i As Long tmpstring = cell.Value tmpstring = Replace(tmpstring, " ", "") For i = 1 To Len(tmpstring) If Not (IsNumeric(Mid(tmpstring, i, 1))) And Mid(tmpstring, i, 1) <> "," And Mid(tmpstring, i, 1) <> "." Then Exit For End If Next i splitstring1 = Left(tmpstring, i - 1) End Function ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php Function splitstring2(cell As Range) As Variant Dim tmpstring As String Dim i As Long tmpstring = cell.Value tmpstring = Replace(tmpstring, " ", "") For i = 1 To Len(tmpstring) If Not (IsNumeric(Mid(tmpstring, i, 1))) And Mid(tmpstring, i, 1) <> "," And Mid(tmpstring, i, 1) <> "." Then Exit For End If Next i splitstring2 = Right(tmpstring, Len(tmpstring) - i + 1) End Function ?> |
replace all werkt niet omdat hij naar een bepaalde cel in het vorige blad verwijst. Dan moet ik ze nog handmatig aanpassen allemaal.quote:Op woensdag 19 januari 2011 10:46 schreef Beregd het volgende:
Je kan ook met replace all werken natuurlijk, lijkt me het eenvoudigste,
Of als je formules wil gebruiken moet je met indirect werken, maar lijkt me nogal omslachtig.
Dit werkt ook:quote:Op woensdag 19 januari 2011 11:14 schreef Puckzzz het volgende:
[..]
replace all werkt niet omdat hij naar een bepaalde cel in het vorige blad verwijst. Dan moet ik ze nog handmatig aanpassen allemaal.
Maar een collega van me heeft het volgende geknutseld (met indirect inderdaad)
=INDIRECT("'Week "&
RECHTS($A$1;LENGTE($A$1)-5)-1
&"'!B"&
RIJ(A4)
)+7
Ik heb hiervoor wel in de cel A1 dezelfde naam als de tab gezet: Week 7 bijvoorbeeld
Ik zou hierzelf nooit uitgekomen zijn
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?php Function PrevSheetName(Optional ByVal WS As Worksheet = Nothing) As String Application.Volatile True Dim S As String Dim Q As String If IsObject(Application.Caller) = True Then Set WS = Application.Caller.Worksheet If WS.Index = 1 Then With Application.Caller.Worksheet.Parent.Worksheets Set WS = .Item(.Count) End With Else Set WS = WS.Previous End If If InStr(1, WS.Name, " ", vbBinaryCompare) > 0 Then Q = "'" Else Q = vbNullString End If Else If WS Is Nothing Then Set WS = ActiveSheet End If If WS.Index = 1 Then With WS.Parent.Worksheets Set WS = .Item(.Count) End With Else Set WS = WS.Previous End If Q = vbNullString End If PrevSheetName = Q & WS.Name & Q End Function ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?php Function NextSheetName(Optional WS As Worksheet = Nothing) As String Application.Volatile True Dim S As String Dim Q As String If IsObject(Application.Caller) = True Then Set WS = Application.Caller.Worksheet If WS.Index = WS.Parent.Sheets.Count Then With Application.Caller.Worksheet.Parent.Worksheets Set WS = .Item(1) End With Else Set WS = WS.Next End If If InStr(1, WS.Name, " ", vbBinaryCompare) > 0 Then Q = "'" Else Q = vbNullString End If Else If WS Is Nothing Then Set WS = ActiveSheet End If If WS.Index = WS.Parent.Worksheets.Count Then With WS.Parent.Worksheets Set WS = .Item(1) End With Else Set WS = WS.Next End If Q = vbNullString End If NextSheetName = Q & WS.Name & Q End Function ?> |
Ik snap niet eens wat mijn collega geknutseld heeft, hier wordt ik meteen al duizelig vanquote:Op woensdag 19 januari 2011 12:34 schreef znarch het volgende:
[..]
Dit werkt ook:
Vorige tab:
=(INDIRECT(PrevSheetName() & "!B65")
Met de functie:
[ code verwijderd ]
Volgende tab:
=INDIRECT(NextSheetName() & "!B65")
[ code verwijderd ]
Ik ben hier echt niet goed in.quote:Op donderdag 20 januari 2011 08:34 schreef Basp1 het volgende:
Kijk eens bij vert zoeken als je de formule maakt kun je ook de kolom aangeven welke als antwoord moet komen te staan, deze formule moet je dan ook in S5 en R5 zetten.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |