MrTinkertrain
Gebruiker
- Lid geworden
- 4 sep 2005
- Berichten
- 79
Wellicht is de topic-titel een beetje krom, maar ik kon zo snel geen betere omschrijving vinden
Soms komt het voor dat je bewerkingen uit wilt/moet voeren met slechts een deel van een bepaalde celwaarde.
Voorbeeld:
In cel A1 heb je het volledige pad staan naar een mp3 op je harde schijf :
b.v. :
N:\Albums Overig\Eurythmics - Touch\Eurythmics - 01 - Here Comes The Rain Again.mp3
Je wilt nu alleen de bestandsnaam hieruit destilleren.
Zoals je ziet begint die bestandsnaam na het "\"-teken direct na de directorynaam (Eurythmics - Touch)
In dit voorbeeld begint de bestandsnaam direkt na de 3e keer dat dit "\"-karakter voorkomt.
Met de volgende functie is het mogelijk om de positie van dat 3e \-teken te bepalen :
De syntax van deze functie is als volgt :
Hierbij is Searchstring de cel waarin je wilt zoeken (in dit voorbeeld dus A1)
Char is het karakter waarop je wilt zoeken (in dit geval dus het \-teken)
Instance is de zoveelste keer dat dit karakter voorkomt (in dit voorbeeld dus 3)
Als je deze functie oproept in cel B1 door in te tikken :
resulteert dit in een uitkomst van 36.
Dit betekent dat de bestandsnaam begint na (totaal aantal tekens in A1) - 36 tekens.
In formule :
Ik hoop e.e.a. zo een beetje duidelijk te hebben uitgelegd.
Veel succes :thumb:
Soms komt het voor dat je bewerkingen uit wilt/moet voeren met slechts een deel van een bepaalde celwaarde.
Voorbeeld:
In cel A1 heb je het volledige pad staan naar een mp3 op je harde schijf :
b.v. :
N:\Albums Overig\Eurythmics - Touch\Eurythmics - 01 - Here Comes The Rain Again.mp3
Je wilt nu alleen de bestandsnaam hieruit destilleren.
Zoals je ziet begint die bestandsnaam na het "\"-teken direct na de directorynaam (Eurythmics - Touch)
In dit voorbeeld begint de bestandsnaam direkt na de 3e keer dat dit "\"-karakter voorkomt.
Met de volgende functie is het mogelijk om de positie van dat 3e \-teken te bepalen :
Code:
Option Compare Text
Option Explicit
Function CharPos(SearchString As String, Char As String, Instance As Long)
'Function purpose: To return the position of the (first character of the )
'nth occurance of a specific character set in a range
Dim x As Integer, n As Long
'Loop through each letter in the search string
For x = 1 To Len(SearchString)
'Increment the number of characters search through
CharPos = CharPos + 1
'check if the next character(s) match the text being search for
'and increase n if so (to count how many matches have been found
If Mid(SearchString, x, Len(Char)) = Char Then n = n + 1
'Exit loop if instance matches number found
If n = Instance Then Exit Function
Next x
'The error below will only be triggered if the function was not
'already exited due to success
CharPos = CVErr(xlErrValue)
End Function
De syntax van deze functie is als volgt :
Hierbij is Searchstring de cel waarin je wilt zoeken (in dit voorbeeld dus A1)
Char is het karakter waarop je wilt zoeken (in dit geval dus het \-teken)
Instance is de zoveelste keer dat dit karakter voorkomt (in dit voorbeeld dus 3)
Als je deze functie oproept in cel B1 door in te tikken :
Code:
=CharPos(A1;"\";3)
Dit betekent dat de bestandsnaam begint na (totaal aantal tekens in A1) - 36 tekens.
In formule :
Code:
=RECHTS(A1;LENGTE(A1)-(CharPos(A1;"\";3)))
Ik hoop e.e.a. zo een beetje duidelijk te hebben uitgelegd.
Veel succes :thumb:
Laatst bewerkt: