Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Position d'une ponctuation dans une chaine

6 réponses
Avatar
Frédo P
Bonsoir tous
Dans cette chaîne:"M80;C240;T22"
J'aimerais savoir comment l'on trouve la position du deuxième ";" en VBA

--
Fred
Réponses dans ma bal: ôtez "nsp-".
nsp-frdpst@9online.fr

6 réponses

Avatar
garnote
Salut Frédo,

Une suggestion:

Sub Trouve()
Dim chaine As String
chaine = "M80;C240;T22"
ch1 = Mid(chaine, 1 + InStr(1, chaine, ";"))
ch2 = InStr(1, chaine, ";") + InStr(1, ch1, ";")
MsgBox ch2
End Sub

Serge
Avatar
MichDenis
Bonjour Frédo,

Il y a aussi ceci :

Je crois cependant que la fonction InStrRev requiert au moins excel 2000 ou plus récent !

'---------------------
Sub JeTrouve()

Dim chaine As String
chaine = "M80;C240;T22"
MsgBox InStrRev(chaine, ";")

End Sub
'---------------------


Salutations!



"Frédo P" a écrit dans le message de news: %
Bonsoir tous
Dans cette chaîne:"M80;C240;T22"
J'aimerais savoir comment l'on trouve la position du deuxième ";" en VBA

--
Fred
Réponses dans ma bal: ôtez "nsp-".

Avatar
Philippe.R
Bonjour Denis,
Si je puis me permettre, cette formule trouve le dernier ";" de la chaîne et non le deuxième.
Pour vérifier :

Sub JeTrouve2()

Dim chaine As String
chaine = "M80;C240;T22;d789"
MsgBox InStrRev(chaine, ";")

End Sub
--
Amicales Salutations
XL 97 / 2000 / 2002

"MichDenis" a écrit dans le message de news:

Bonjour Frédo,

Il y a aussi ceci :

Je crois cependant que la fonction InStrRev requiert au moins excel 2000 ou plus récent !

'---------------------
Sub JeTrouve()

Dim chaine As String
chaine = "M80;C240;T22"
MsgBox InStrRev(chaine, ";")

End Sub
'---------------------


Salutations!



"Frédo P" a écrit dans le message de news:
%
Bonsoir tous
Dans cette chaîne:"M80;C240;T22"
J'aimerais savoir comment l'on trouve la position du deuxième ";" en VBA

--
Fred
Réponses dans ma bal: ôtez "nsp-".






Avatar
AV
Dans cette chaîne:"M80;C240;T22"
J'aimerais savoir comment l'on trouve la position du deuxième ";" en VBA


Sub zzzz()
x = "M80;C240;T22": y = Chr(34)
MsgBox Evaluate("find(""÷"",substitute(" & y & x & y & ","";"",""÷"",2))")
End Sub

Si la chaîne à évaluer est en B2 de "Feuil3" :
MsgBox Evaluate("find(""÷"",substitute(" & y & [Feuil3!B2] & y &
","";"",""÷"",2))")

AV

Avatar
Gaenonius
Une solution un peu 'tordue' (à partir d'Excel 2000) :

Sub essai()
Dim S As String
S = "M80;C240;T22"
MsgBox Len(Split(S, ";")(0)) + Len(Split(S, ";")(1)) + 2
End Sub

--
Gaenonius

Bonsoir tous
Dans cette chaîne:"M80;C240;T22"
J'aimerais savoir comment l'on trouve la position du deuxième ";" en VBA



Avatar
Frédo P
Bonjour AV , Philippe, Denis, Garnote et je suppose Gaétan .Merci à tous,
excusez mon retard à la détente.
Celui qui est tombé comme Obélix dans la potion magique est AV qui doit
savoir que je suis resté avec, dorénavant, une vieille version d'Excel,
celle de 97.


"AV" a écrit dans le message de
news:
Dans cette chaîne:"M80;C240;T22"
J'aimerais savoir comment l'on trouve la position du deuxième ";" en VBA


Sub zzzz()
x = "M80;C240;T22": y = Chr(34)
MsgBox Evaluate("find(""÷"",substitute(" & y & x & y & ","";"",""÷"",2))")
End Sub

Si la chaîne à évaluer est en B2 de "Feuil3" :
MsgBox Evaluate("find(""÷"",substitute(" & y & [Feuil3!B2] & y &
","";"",""÷"",2))")

AV