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

Position d'un caractère

10 réponses
Avatar
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

10 réponses

Avatar
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" a écrit dans le message de news:
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


Avatar
Infogroup
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" a écrit dans le message de
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" a écrit dans le message de news:
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






Avatar
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" a écrit dans le message de 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" a écrit dans le message de news:
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






Avatar
Sam
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" a écrit dans le message de news:
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


Avatar
garnote
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 écrit dans le message de news:

Ç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" a écrit dans le message de 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" a écrit dans le message de news:
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










Avatar
JB
Bonsoir,

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

JB
http://boisgontierjacques.free.fr


On 22 août, 17:46, "Infogroup" wrote:
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


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

Cdl

Infogroup


"JB" a écrit dans le message de
news:
Bonsoir,

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

JB
http://boisgontierjacques.free.fr


On 22 août, 17:46, "Infogroup" wrote:
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


Avatar
garnote
Ç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" a écrit dans le message de news:

Bonsoir,

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

JB
http://boisgontierjacques.free.fr


On 22 août, 17:46, "Infogroup" wrote:
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


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


Et surtout très ingénieux !

Tatanka a parlé ;-)
Avatar
Sam
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" a écrit dans le message de news:
%
>=CHERCHE("|";SUBSTITUE(A1;" ";"|";2))
Ça c'est simple et efficace !


Et surtout très ingénieux !

Tatanka a parlé ;-)