Bonjour,
J'ai une chaine de caractere de type 1/10/20 puis 2/20/30 puis 3/30/40. Je
voudrais que cela devienne dans un champ "De 10 à 20", "De 20 à 30"
.....DansChaîne me permet d'obtenir la position du premier "/" et donc je
peux extraire à partir de cette position+1 mais comment connaitre la
position du 2eme "/" ? Merci pour vos réponses.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jessy Sempere [MVP]
Bonjour
Regardes la fonction InStr, tu pourras connaître la position du premier "/" ensuite pour le 2ème, soit tu utilises aussi InStr en commençant à partir de la position du premier ou alors tu utilises la fonction InStrRev() qui te reournera la position du dernier "/"
-- @+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Valérie" a écrit dans le message news: 41e3934b$0$6376$
Bonjour, J'ai une chaine de caractere de type 1/10/20 puis 2/20/30 puis 3/30/40. Je voudrais que cela devienne dans un champ "De 10 à 20", "De 20 à 30" .....DansChaîne me permet d'obtenir la position du premier "/" et donc je peux extraire à partir de cette position+1 mais comment connaitre la position du 2eme "/" ? Merci pour vos réponses.
Bonjour
Regardes la fonction InStr, tu pourras connaître la position
du premier "/" ensuite pour le 2ème, soit tu utilises aussi
InStr en commençant à partir de la position du premier
ou alors tu utilises la fonction InStrRev() qui te reournera
la position du dernier "/"
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Valérie" <mabaldenews@wanadoo.fr> a écrit dans le message news:
41e3934b$0$6376$8fcfb975@news.wanadoo.fr...
Bonjour,
J'ai une chaine de caractere de type 1/10/20 puis 2/20/30 puis 3/30/40. Je
voudrais que cela devienne dans un champ "De 10 à 20", "De 20 à 30"
.....DansChaîne me permet d'obtenir la position du premier "/" et donc je
peux extraire à partir de cette position+1 mais comment connaitre la
position du 2eme "/" ? Merci pour vos réponses.
Regardes la fonction InStr, tu pourras connaître la position du premier "/" ensuite pour le 2ème, soit tu utilises aussi InStr en commençant à partir de la position du premier ou alors tu utilises la fonction InStrRev() qui te reournera la position du dernier "/"
-- @+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Valérie" a écrit dans le message news: 41e3934b$0$6376$
Bonjour, J'ai une chaine de caractere de type 1/10/20 puis 2/20/30 puis 3/30/40. Je voudrais que cela devienne dans un champ "De 10 à 20", "De 20 à 30" .....DansChaîne me permet d'obtenir la position du premier "/" et donc je peux extraire à partir de cette position+1 mais comment connaitre la position du 2eme "/" ? Merci pour vos réponses.
Thierry Bertrand
J'aime bien aussi la fonction Split
Dim S() as string
s = split(Chaine,"/")
Ainsi, s(0) contient le 1er champ s(1) contient le 2eme champ
etc...
D'où la "superbe fonction" qui renvoi le x eme élément
Function QuiQuestOu (Byval Chaine as string, byval Delimiteur as string, byval Index as integer) as string
Dim s() as string
s = split(Chaine,Delimiteur) if ubound(s) >= Index-1 then QuiQuestOu = s(index-1) else QuiQuestOu = "" end if end function
qui s'utilise comme suit:
s = QuiQuestOu("1/20/20","/",2) pour obtenir le 2eme élément de la chaine avec comme délimiteur "/"
"Valérie" a écrit dans le message de news: 41e3934b$0$6376$
Bonjour, J'ai une chaine de caractere de type 1/10/20 puis 2/20/30 puis 3/30/40. Je voudrais que cela devienne dans un champ "De 10 à 20", "De 20 à 30" .....DansChaîne me permet d'obtenir la position du premier "/" et donc je peux extraire à partir de cette position+1 mais comment connaitre la position du 2eme "/" ? Merci pour vos réponses.
J'aime bien aussi la fonction Split
Dim S() as string
s = split(Chaine,"/")
Ainsi,
s(0) contient le 1er champ
s(1) contient le 2eme champ
etc...
D'où la "superbe fonction" qui renvoi le x eme élément
Function QuiQuestOu (Byval Chaine as string, byval Delimiteur as string,
byval Index as integer) as string
Dim s() as string
s = split(Chaine,Delimiteur)
if ubound(s) >= Index-1 then
QuiQuestOu = s(index-1)
else
QuiQuestOu = ""
end if
end function
qui s'utilise comme suit:
s = QuiQuestOu("1/20/20","/",2) pour obtenir le 2eme élément de la
chaine avec comme délimiteur "/"
"Valérie" <mabaldenews@wanadoo.fr> a écrit dans le message de news:
41e3934b$0$6376$8fcfb975@news.wanadoo.fr...
Bonjour,
J'ai une chaine de caractere de type 1/10/20 puis 2/20/30 puis 3/30/40. Je
voudrais que cela devienne dans un champ "De 10 à 20", "De 20 à 30"
.....DansChaîne me permet d'obtenir la position du premier "/" et donc je
peux extraire à partir de cette position+1 mais comment connaitre la
position du 2eme "/" ? Merci pour vos réponses.
Ainsi, s(0) contient le 1er champ s(1) contient le 2eme champ
etc...
D'où la "superbe fonction" qui renvoi le x eme élément
Function QuiQuestOu (Byval Chaine as string, byval Delimiteur as string, byval Index as integer) as string
Dim s() as string
s = split(Chaine,Delimiteur) if ubound(s) >= Index-1 then QuiQuestOu = s(index-1) else QuiQuestOu = "" end if end function
qui s'utilise comme suit:
s = QuiQuestOu("1/20/20","/",2) pour obtenir le 2eme élément de la chaine avec comme délimiteur "/"
"Valérie" a écrit dans le message de news: 41e3934b$0$6376$
Bonjour, J'ai une chaine de caractere de type 1/10/20 puis 2/20/30 puis 3/30/40. Je voudrais que cela devienne dans un champ "De 10 à 20", "De 20 à 30" .....DansChaîne me permet d'obtenir la position du premier "/" et donc je peux extraire à partir de cette position+1 mais comment connaitre la position du 2eme "/" ? Merci pour vos réponses.
Jessy Sempere [MVP]
Bonjour
Et voilà c'est quand je voie des réponses comme ça que je me dis que je me casse vraiment trop la tête et qu'il y a plus simple... ;-))))
Bon aller pour me racheter si tu es sous Access 97, la fonction Split() n'existe pas donc tu me utiliser celle qui suit comme alternative :
***************************************************** Public Function fSplit(strSplit As String, strSep As String) As Variant
Dim L%, nb%, p% Dim strResult As String Dim varResult() As Variant
If IsNull(strSplit) Then fSplit = Null Else strResult = strSplit L = Len(strSep) p = InStr(1, strSplit, strSep) If p = 0 Then fSplit = strSplit Else Do While p > 0 nb = nb + 1 ReDim Preserve varResult(nb) varResult(nb - 1) = left(strResult, p - 1) strResult = Mid(strResult, p + L) p = InStr(1, strResult, strSep) If p = 0 Then varResult(nb) = strResult Loop fSplit = varResult() End If End If End Function *****************************************************
-- @+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Thierry Bertrand" <bertrand.thierry(nospam)@(nospam)numericable.fr> a écrit dans le message news:
J'aime bien aussi la fonction Split
Dim S() as string
s = split(Chaine,"/")
Ainsi, s(0) contient le 1er champ s(1) contient le 2eme champ
etc...
D'où la "superbe fonction" qui renvoi le x eme élément
Function QuiQuestOu (Byval Chaine as string, byval Delimiteur as string, byval Index as integer) as string
Dim s() as string
s = split(Chaine,Delimiteur) if ubound(s) >= Index-1 then QuiQuestOu = s(index-1) else QuiQuestOu = "" end if end function
qui s'utilise comme suit:
s = QuiQuestOu("1/20/20","/",2) pour obtenir le 2eme élément de la chaine avec comme délimiteur "/"
"Valérie" a écrit dans le message de news: 41e3934b$0$6376$
Bonjour, J'ai une chaine de caractere de type 1/10/20 puis 2/20/30 puis 3/30/40. Je
voudrais que cela devienne dans un champ "De 10 à 20", "De 20 à 30" .....DansChaîne me permet d'obtenir la position du premier "/" et donc je
peux extraire à partir de cette position+1 mais comment connaitre la position du 2eme "/" ? Merci pour vos réponses.
Bonjour
Et voilà c'est quand je voie des réponses comme ça que je
me dis que je me casse vraiment trop la tête et qu'il y a plus
simple... ;-))))
Bon aller pour me racheter si tu es sous Access 97, la fonction
Split() n'existe pas donc tu me utiliser celle qui suit comme alternative :
*****************************************************
Public Function fSplit(strSplit As String, strSep As String) As Variant
Dim L%, nb%, p%
Dim strResult As String
Dim varResult() As Variant
If IsNull(strSplit) Then
fSplit = Null
Else
strResult = strSplit
L = Len(strSep)
p = InStr(1, strSplit, strSep)
If p = 0 Then
fSplit = strSplit
Else
Do While p > 0
nb = nb + 1
ReDim Preserve varResult(nb)
varResult(nb - 1) = left(strResult, p - 1)
strResult = Mid(strResult, p + L)
p = InStr(1, strResult, strSep)
If p = 0 Then varResult(nb) = strResult
Loop
fSplit = varResult()
End If
End If
End Function
*****************************************************
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Thierry Bertrand" <bertrand.thierry(nospam)@(nospam)numericable.fr> a écrit
dans le message news: eCyisj89EHA.1564@TK2MSFTNGP09.phx.gbl...
J'aime bien aussi la fonction Split
Dim S() as string
s = split(Chaine,"/")
Ainsi,
s(0) contient le 1er champ
s(1) contient le 2eme champ
etc...
D'où la "superbe fonction" qui renvoi le x eme élément
Function QuiQuestOu (Byval Chaine as string, byval Delimiteur as string,
byval Index as integer) as string
Dim s() as string
s = split(Chaine,Delimiteur)
if ubound(s) >= Index-1 then
QuiQuestOu = s(index-1)
else
QuiQuestOu = ""
end if
end function
qui s'utilise comme suit:
s = QuiQuestOu("1/20/20","/",2) pour obtenir le 2eme élément de la
chaine avec comme délimiteur "/"
"Valérie" <mabaldenews@wanadoo.fr> a écrit dans le message de news:
41e3934b$0$6376$8fcfb975@news.wanadoo.fr...
Bonjour,
J'ai une chaine de caractere de type 1/10/20 puis 2/20/30 puis 3/30/40.
Je
voudrais que cela devienne dans un champ "De 10 à 20", "De 20 à 30"
.....DansChaîne me permet d'obtenir la position du premier "/" et donc
je
peux extraire à partir de cette position+1 mais comment connaitre la
position du 2eme "/" ? Merci pour vos réponses.
Et voilà c'est quand je voie des réponses comme ça que je me dis que je me casse vraiment trop la tête et qu'il y a plus simple... ;-))))
Bon aller pour me racheter si tu es sous Access 97, la fonction Split() n'existe pas donc tu me utiliser celle qui suit comme alternative :
***************************************************** Public Function fSplit(strSplit As String, strSep As String) As Variant
Dim L%, nb%, p% Dim strResult As String Dim varResult() As Variant
If IsNull(strSplit) Then fSplit = Null Else strResult = strSplit L = Len(strSep) p = InStr(1, strSplit, strSep) If p = 0 Then fSplit = strSplit Else Do While p > 0 nb = nb + 1 ReDim Preserve varResult(nb) varResult(nb - 1) = left(strResult, p - 1) strResult = Mid(strResult, p + L) p = InStr(1, strResult, strSep) If p = 0 Then varResult(nb) = strResult Loop fSplit = varResult() End If End If End Function *****************************************************
-- @+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Thierry Bertrand" <bertrand.thierry(nospam)@(nospam)numericable.fr> a écrit dans le message news:
J'aime bien aussi la fonction Split
Dim S() as string
s = split(Chaine,"/")
Ainsi, s(0) contient le 1er champ s(1) contient le 2eme champ
etc...
D'où la "superbe fonction" qui renvoi le x eme élément
Function QuiQuestOu (Byval Chaine as string, byval Delimiteur as string, byval Index as integer) as string
Dim s() as string
s = split(Chaine,Delimiteur) if ubound(s) >= Index-1 then QuiQuestOu = s(index-1) else QuiQuestOu = "" end if end function
qui s'utilise comme suit:
s = QuiQuestOu("1/20/20","/",2) pour obtenir le 2eme élément de la chaine avec comme délimiteur "/"
"Valérie" a écrit dans le message de news: 41e3934b$0$6376$
Bonjour, J'ai une chaine de caractere de type 1/10/20 puis 2/20/30 puis 3/30/40. Je
voudrais que cela devienne dans un champ "De 10 à 20", "De 20 à 30" .....DansChaîne me permet d'obtenir la position du premier "/" et donc je
peux extraire à partir de cette position+1 mais comment connaitre la position du 2eme "/" ? Merci pour vos réponses.
Thierry Bertrand
Mauvais joueur, y'avait pas marqué Access 97 ;-)))
En tout cas merci pour ta fonction fSplit au passage
"Jessy Sempere [MVP]" a écrit dans le message de news: 41e3acad$
Bonjour
Et voilà c'est quand je voie des réponses comme ça que je me dis que je me casse vraiment trop la tête et qu'il y a plus simple... ;-))))
Bon aller pour me racheter si tu es sous Access 97, la fonction Split() n'existe pas donc tu me utiliser celle qui suit comme alternative :
***************************************************** Public Function fSplit(strSplit As String, strSep As String) As Variant
Dim L%, nb%, p% Dim strResult As String Dim varResult() As Variant
If IsNull(strSplit) Then fSplit = Null Else strResult = strSplit L = Len(strSep) p = InStr(1, strSplit, strSep) If p = 0 Then fSplit = strSplit Else Do While p > 0 nb = nb + 1 ReDim Preserve varResult(nb) varResult(nb - 1) = left(strResult, p - 1) strResult = Mid(strResult, p + L) p = InStr(1, strResult, strSep) If p = 0 Then varResult(nb) = strResult Loop fSplit = varResult() End If End If End Function *****************************************************
-- @+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Thierry Bertrand" <bertrand.thierry(nospam)@(nospam)numericable.fr> a écrit
dans le message news:
J'aime bien aussi la fonction Split
Dim S() as string
s = split(Chaine,"/")
Ainsi, s(0) contient le 1er champ s(1) contient le 2eme champ
etc...
D'où la "superbe fonction" qui renvoi le x eme élément
Function QuiQuestOu (Byval Chaine as string, byval Delimiteur as string, byval Index as integer) as string
Dim s() as string
s = split(Chaine,Delimiteur) if ubound(s) >= Index-1 then QuiQuestOu = s(index-1) else QuiQuestOu = "" end if end function
qui s'utilise comme suit:
s = QuiQuestOu("1/20/20","/",2) pour obtenir le 2eme élément de la chaine avec comme délimiteur "/"
"Valérie" a écrit dans le message de news: 41e3934b$0$6376$
Bonjour, J'ai une chaine de caractere de type 1/10/20 puis 2/20/30 puis 3/30/40.
Je
voudrais que cela devienne dans un champ "De 10 à 20", "De 20 à 30" .....DansChaîne me permet d'obtenir la position du premier "/" et donc je
peux extraire à partir de cette position+1 mais comment connaitre la position du 2eme "/" ? Merci pour vos réponses.
Mauvais joueur, y'avait pas marqué Access 97 ;-)))
En tout cas merci pour ta fonction fSplit au passage
"Jessy Sempere [MVP]" <jessy.sempere@prg.sncf.fr> a écrit dans le message de
news: 41e3acad$1@news.sncf.fr...
Bonjour
Et voilà c'est quand je voie des réponses comme ça que je
me dis que je me casse vraiment trop la tête et qu'il y a plus
simple... ;-))))
Bon aller pour me racheter si tu es sous Access 97, la fonction
Split() n'existe pas donc tu me utiliser celle qui suit comme alternative
:
*****************************************************
Public Function fSplit(strSplit As String, strSep As String) As Variant
Dim L%, nb%, p%
Dim strResult As String
Dim varResult() As Variant
If IsNull(strSplit) Then
fSplit = Null
Else
strResult = strSplit
L = Len(strSep)
p = InStr(1, strSplit, strSep)
If p = 0 Then
fSplit = strSplit
Else
Do While p > 0
nb = nb + 1
ReDim Preserve varResult(nb)
varResult(nb - 1) = left(strResult, p - 1)
strResult = Mid(strResult, p + L)
p = InStr(1, strResult, strSep)
If p = 0 Then varResult(nb) = strResult
Loop
fSplit = varResult()
End If
End If
End Function
*****************************************************
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Thierry Bertrand" <bertrand.thierry(nospam)@(nospam)numericable.fr> a
écrit
dans le message news: eCyisj89EHA.1564@TK2MSFTNGP09.phx.gbl...
J'aime bien aussi la fonction Split
Dim S() as string
s = split(Chaine,"/")
Ainsi,
s(0) contient le 1er champ
s(1) contient le 2eme champ
etc...
D'où la "superbe fonction" qui renvoi le x eme élément
Function QuiQuestOu (Byval Chaine as string, byval Delimiteur as string,
byval Index as integer) as string
Dim s() as string
s = split(Chaine,Delimiteur)
if ubound(s) >= Index-1 then
QuiQuestOu = s(index-1)
else
QuiQuestOu = ""
end if
end function
qui s'utilise comme suit:
s = QuiQuestOu("1/20/20","/",2) pour obtenir le 2eme élément de la
chaine avec comme délimiteur "/"
"Valérie" <mabaldenews@wanadoo.fr> a écrit dans le message de news:
41e3934b$0$6376$8fcfb975@news.wanadoo.fr...
Bonjour,
J'ai une chaine de caractere de type 1/10/20 puis 2/20/30 puis
3/30/40.
Je
voudrais que cela devienne dans un champ "De 10 à 20", "De 20 à 30"
.....DansChaîne me permet d'obtenir la position du premier "/" et donc
je
peux extraire à partir de cette position+1 mais comment connaitre la
position du 2eme "/" ? Merci pour vos réponses.
Mauvais joueur, y'avait pas marqué Access 97 ;-)))
En tout cas merci pour ta fonction fSplit au passage
"Jessy Sempere [MVP]" a écrit dans le message de news: 41e3acad$
Bonjour
Et voilà c'est quand je voie des réponses comme ça que je me dis que je me casse vraiment trop la tête et qu'il y a plus simple... ;-))))
Bon aller pour me racheter si tu es sous Access 97, la fonction Split() n'existe pas donc tu me utiliser celle qui suit comme alternative :
***************************************************** Public Function fSplit(strSplit As String, strSep As String) As Variant
Dim L%, nb%, p% Dim strResult As String Dim varResult() As Variant
If IsNull(strSplit) Then fSplit = Null Else strResult = strSplit L = Len(strSep) p = InStr(1, strSplit, strSep) If p = 0 Then fSplit = strSplit Else Do While p > 0 nb = nb + 1 ReDim Preserve varResult(nb) varResult(nb - 1) = left(strResult, p - 1) strResult = Mid(strResult, p + L) p = InStr(1, strResult, strSep) If p = 0 Then varResult(nb) = strResult Loop fSplit = varResult() End If End If End Function *****************************************************
-- @+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Thierry Bertrand" <bertrand.thierry(nospam)@(nospam)numericable.fr> a écrit
dans le message news:
J'aime bien aussi la fonction Split
Dim S() as string
s = split(Chaine,"/")
Ainsi, s(0) contient le 1er champ s(1) contient le 2eme champ
etc...
D'où la "superbe fonction" qui renvoi le x eme élément
Function QuiQuestOu (Byval Chaine as string, byval Delimiteur as string, byval Index as integer) as string
Dim s() as string
s = split(Chaine,Delimiteur) if ubound(s) >= Index-1 then QuiQuestOu = s(index-1) else QuiQuestOu = "" end if end function
qui s'utilise comme suit:
s = QuiQuestOu("1/20/20","/",2) pour obtenir le 2eme élément de la chaine avec comme délimiteur "/"
"Valérie" a écrit dans le message de news: 41e3934b$0$6376$
Bonjour, J'ai une chaine de caractere de type 1/10/20 puis 2/20/30 puis 3/30/40.
Je
voudrais que cela devienne dans un champ "De 10 à 20", "De 20 à 30" .....DansChaîne me permet d'obtenir la position du premier "/" et donc je
peux extraire à partir de cette position+1 mais comment connaitre la position du 2eme "/" ? Merci pour vos réponses.