fonction découpage de chaine de caractère

romjn

XLDnaute Nouveau
Bonjour

J'aimerais découper une chaîne de caractère en fonction des espaces. il me semble que la fonction MID faisait cela mai je ne le retrouver pas sur Excel/Office365.

Pour exemple j'ai en A1 la chaine : 445 Avenue du Général de Gaulle

L'idée est que la fonction fasse ceci : Fonction(A1," ", 2) et m'affiche Avenue ou Fonction(A1," ", 1) m'affiche 445

D'avance merci pour votre aide.
 

Gégé-45550

XLDnaute Accro
Bonjour,
la fonction Mid est une fonction VBA.
En VBA, pour faire ce que vous voulez, regardez plutôt la fonction Split.
Sinon, en fonction Excel, c'est STXT qu'il faut utiliser, couplée éventuellement avec CHERCHE ou TROUVE.
Cordialement
 
Dernière édition:

Gégé-45550

XLDnaute Accro
Alors, en Excel, pour le résultat "Avenue", c'est :
VB:
=GAUCHE(STXT(A1;CHERCHE(" ";A1)+1;255); CHERCHE(" ";STXT(A1;CHERCHE(" ";A1)+1;255);1)-1)
et pour le résultat "445", c'est :
Code:
=GAUCHE(A1; CHERCHE(" ";A1;1)-1)
mais, si j'ai bien compris votre demande :
découper une chaîne de caractère en fonction des espaces
le mieux est d'utiliser VBA avec la fonction 'Split'
Code:
Sub toto()
Dim MaChaine$, Morceaux_de_Chaine, i%
    MaChaine = Worksheets("Feuil1").Range("A1").Value
    Morceaux_de_Chaine = Split(MaChaine, Chr(32))
For i = 0 To 5
    Debug.Print Morceaux_de_Chaine(i)
Next i
End Sub
Cordialement
 

ALS35

XLDnaute Occasionnel
Bonjour à tous de nouveau,
Si tu as un environnement Excel 365 tu peux aussi utiliser cette formule pour le premier mot:
VB:
=SIERREUR(CHOISIRCOLS(FRACTIONNER.TEXTE(A1;" ");1);"")
pour le deuxième
Code:
=SIERREUR(CHOISIRCOLS(FRACTIONNER.TEXTE(A1;" ");2);"")
etc
On purrait transformer en LAMBDA pour un peu plus de facilité
Cordialement
 

Discussions similaires