Position d'un caractère

Le
Infogroup
Bonjour à toutes et à tous

j'ai dans une cellule la chaîne de caractères suivante :

"La maison située au sud est peinte en verte"

J'aurais besoin de connaître la position, à l'intérieur de cette chaîne,
du 2ième, 4ième et 7ième espace.

Merci par avance pour votre aide

Cdl

Infogroup
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
garnote
Le #19970861
Ave,

À titre indicatif selement. Il y a sûrement quelque
chose de plus pratique.

Sub Cherche_Position_Espace()
Dim p()
texte = ActiveCell.Value
L = Len(texte)
ReDim p(1 To L)
For i = 1 To L
If Asc(Mid(texte, i, 1)) = 32 Then
j = j + 1
p(j) = i
End If
Next i
MsgBox p(2) & vbLf & p(4) & vbLf & p(7)
End Sub

Serge


"Infogroup" OtLt3%
Bonjour à toutes et à tous

j'ai dans une cellule la chaîne de caractères suivante :

"La maison située au sud est peinte en verte"

J'aurais besoin de connaître la position, à l'intérieur de cette chaîne,
du 2ième, 4ième et 7ième espace.

Merci par avance pour votre aide

Cdl

Infogroup


Infogroup
Le #19971021
Merci garnote,
comme solution pratique, la tienne est déjà pas mal
en tout cas cela me convient.

merci et bonne fin de journée

Infogroup

"garnote" news:
Ave,

À titre indicatif selement. Il y a sûrement quelque
chose de plus pratique.

Sub Cherche_Position_Espace()
Dim p()
texte = ActiveCell.Value
L = Len(texte)
ReDim p(1 To L)
For i = 1 To L
If Asc(Mid(texte, i, 1)) = 32 Then
j = j + 1
p(j) = i
End If
Next i
MsgBox p(2) & vbLf & p(4) & vbLf & p(7)
End Sub

Serge


"Infogroup" OtLt3%
Bonjour à toutes et à tous

j'ai dans une cellule la chaîne de caractères suivante :

"La maison située au sud est peinte en verte"

J'aurais besoin de connaître la position, à l'intérieur de cette chaîne,
du 2ième, 4ième et 7ième espace.

Merci par avance pour votre aide

Cdl

Infogroup






garnote
Le #19971011
Ça pourrait aussi prendre cette forme :

Function posesp(ici As Range)
Dim p()
texte = ici.Value
L = Len(texte)
ReDim p(1 To L)
For i = 1 To L
If Asc(Mid(texte, i, 1)) = 32 Then
j = j + 1
p(j) = i
End If
Next i
posesp = p(2) & "-" & p(4) & "-" & p(7)
End Function

Reste à adapter et à généraliser.

Serge

"garnote"
Ave,

À titre indicatif selement. Il y a sûrement quelque
chose de plus pratique.

Sub Cherche_Position_Espace()
Dim p()
texte = ActiveCell.Value
L = Len(texte)
ReDim p(1 To L)
For i = 1 To L
If Asc(Mid(texte, i, 1)) = 32 Then
j = j + 1
p(j) = i
End If
Next i
MsgBox p(2) & vbLf & p(4) & vbLf & p(7)
End Sub

Serge


"Infogroup" OtLt3%
Bonjour à toutes et à tous

j'ai dans une cellule la chaîne de caractères suivante :

"La maison située au sud est peinte en verte"

J'aurais besoin de connaître la position, à l'intérieur de cette chaîne,
du 2ième, 4ième et 7ième espace.

Merci par avance pour votre aide

Cdl

Infogroup






Sam
Le #19971001
Bonjour, voici une formule
pour 2eme : =CHERCHE(" ";A4;1+CHERCHE(" ";A4;1))
pour le 4 eme : =CHERCHE(" ";A4;1+CHERCHE(" ";A4;1+CHERCHE("
";A4;1+CHERCHE(" ";A4;1))))
pour le 7 eme : =CHERCHE(" ";A4;1+CHERCHE(" ";A4;1+CHERCHE("
";A4;1+CHERCHE(" ";A4;1+CHERCHE(" ";A4;1+CHERCHE(" ";A4;1+CHERCHE("
";A4;1)))))))

Bien sûr en réutilisant la cellule donnant le 2eme on peut simplifier le 4
eme, et en utilisant la cellule donnant le 4 eme on peut simplifier le 7
eme.

A mon avis, il doit y avoir d'autres méthodes plus originales

Michel dit "Sam"

"Infogroup" OtLt3%
Bonjour à toutes et à tous

j'ai dans une cellule la chaîne de caractères suivante :

"La maison située au sud est peinte en verte"

J'aurais besoin de connaître la position, à l'intérieur de cette chaîne,
du 2ième, 4ième et 7ième espace.

Merci par avance pour votre aide

Cdl

Infogroup


garnote
Le #19971091
Ou bien :

Function posesp(ici As Range, ParamArray ch() As Variant)
Dim p()
texte = ici.Value
L = Len(texte)
ReDim p(1 To L)
For i = 1 To L
If Asc(Mid(texte, i, 1)) = 32 Then
j = j + 1
p(j) = i
End If
Next i
For j = 0 To UBound(ch)
posesp = posesp & p(ch(j)) & "-"
Next j
End Function

Exemple :
=posesp(A1;2;4;7)

Serge




"garnote"
Ça pourrait aussi prendre cette forme :

Function posesp(ici As Range)
Dim p()
texte = ici.Value
L = Len(texte)
ReDim p(1 To L)
For i = 1 To L
If Asc(Mid(texte, i, 1)) = 32 Then
j = j + 1
p(j) = i
End If
Next i
posesp = p(2) & "-" & p(4) & "-" & p(7)
End Function

Reste à adapter et à généraliser.

Serge

"garnote"
Ave,

À titre indicatif selement. Il y a sûrement quelque
chose de plus pratique.

Sub Cherche_Position_Espace()
Dim p()
texte = ActiveCell.Value
L = Len(texte)
ReDim p(1 To L)
For i = 1 To L
If Asc(Mid(texte, i, 1)) = 32 Then
j = j + 1
p(j) = i
End If
Next i
MsgBox p(2) & vbLf & p(4) & vbLf & p(7)
End Sub

Serge


"Infogroup" OtLt3%
Bonjour à toutes et à tous

j'ai dans une cellule la chaîne de caractères suivante :

"La maison située au sud est peinte en verte"

J'aurais besoin de connaître la position, à l'intérieur de cette chaîne,
du 2ième, 4ième et 7ième espace.

Merci par avance pour votre aide

Cdl

Infogroup










JB
Le #19971081
Bonsoir,

=CHERCHE("|";SUBSTITUE(A1;" ";"|";2))
=CHERCHE("|";SUBSTITUE(A1;" ";"|";7))

JB
http://boisgontierjacques.free.fr


On 22 août, 17:46, "Infogroup"
Bonjour à toutes et à tous

j'ai dans une cellule la chaîne de caractères suivante :

"La maison située au sud est peinte en verte"

J'aurais besoin de connaître la position, à l'intérieur de cette ch aîne,
du 2ième, 4ième et 7ième espace.

Merci par avance pour votre aide

Cdl

Infogroup


Infogroup
Le #19971161
Un grand merci à garnote, Sam et JB, vous êtes formidables pour votre
disponibilité.
Un grand coup de chapeau !
Encore merci à tous

Cdl

Infogroup


"JB" news:
Bonsoir,

=CHERCHE("|";SUBSTITUE(A1;" ";"|";2))
=CHERCHE("|";SUBSTITUE(A1;" ";"|";7))

JB
http://boisgontierjacques.free.fr


On 22 août, 17:46, "Infogroup"
Bonjour à toutes et à tous

j'ai dans une cellule la chaîne de caractères suivante :

"La maison située au sud est peinte en verte"

J'aurais besoin de connaître la position, à l'intérieur de cette chaîne,
du 2ième, 4ième et 7ième espace.

Merci par avance pour votre aide

Cdl

Infogroup


garnote
Le #19971251
Ça c'est simple et efficace !

Donc :

=CHERCHE("|";SUBSTITUE(A1;" ";"|";{2.4.7}))
sur trois cellules adjacentes d'une même ligne.
ou bien :
=CHERCHE("|";SUBSTITUE(A1;" ";"|";{2;4;7}))
sur trois cellules adjacentes d'une même colonne.

(à valider par Ctrl+Maj+Entrée)

Serge

"JB"
Bonsoir,

=CHERCHE("|";SUBSTITUE(A1;" ";"|";2))
=CHERCHE("|";SUBSTITUE(A1;" ";"|";7))

JB
http://boisgontierjacques.free.fr


On 22 août, 17:46, "Infogroup"
Bonjour à toutes et à tous

j'ai dans une cellule la chaîne de caractères suivante :

"La maison située au sud est peinte en verte"

J'aurais besoin de connaître la position, à l'intérieur de cette chaîne,
du 2ième, 4ième et 7ième espace.

Merci par avance pour votre aide

Cdl

Infogroup


garnote
Le #19972471
>=CHERCHE("|";SUBSTITUE(A1;" ";"|";2))
Ça c'est simple et efficace !


Et surtout très ingénieux !

Tatanka a parlé ;-)
Sam
Le #19976461
oui mais celle-ci est plus originale
=CHERCHE("garnote&JB&Sam";SUBSTITUE(A1;" ";"garnote&JB&Sam";2))
car quand Infogroupe nous cherche, il nous trouve !
;-)
Cordialement
Michel dit "Sam"

"garnote" %
>=CHERCHE("|";SUBSTITUE(A1;" ";"|";2))
Ça c'est simple et efficace !


Et surtout très ingénieux !

Tatanka a parlé ;-)



Publicité
Poster une réponse
Anonyme