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

trouver le texte à partir d'un espace via vba

24 réponses
Avatar
marc
Bonjour
J'aimerais être capable de sortir le texte à partir de la droite jusqu'à un espace

exemple:
A1= Fred Caillou Conseiller aux ventes, HANNOVER NIEDERSACHSEN GERMANY
J'aimerais avoir en B1
B1= Germany
Le texte est déjà importé en excel. Alors j'aimerais avoir une solution en VBA, mais si je sais qu'on peut le faire via une formule.
La macro devrait s'exécuter sur les cellules sélectionnés car chaque fichier n'ont pas le même nombre de ligne.
Merci de votre aide
Marc

10 réponses

1 2 3
Avatar
marc
Bonjour
Si je voulais avoir la ville dans la colonne B et le pays, dans la colonne C.
Il faudrait que la macro parte de la droite, cherhe la première virgule, en renvoie le texte jusqu'au dernier Espace.
Parceque dans certain cas, il est inscrit
Fred, Caillou, Conseiller, aux ventes, HANNOVER NIEDERSACHSEN GERMANY

J'aimerais avoir en B1 : HANNOVER NIEDERSACHSEN
et en C1: GERMANY
Merci de votre aide
Marc



"marc" a écrit dans le message de news:
Bonjour
J'aimerais être capable de sortir le texte à partir de la droite jusqu'à un espace

exemple:
A1= Fred Caillou Conseiller aux ventes, HANNOVER NIEDERSACHSEN GERMANY
J'aimerais avoir en B1
B1= Germany
Le texte est déjà importé en excel. Alors j'aimerais avoir une solution en VBA, mais si je sais qu'on peut le faire via une
formule.
La macro devrait s'exécuter sur les cellules sélectionnés car chaque fichier n'ont pas le même nombre de ligne.
Merci de votre aide
Marc





Avatar
isabelle
bonjour Marc,

j'ai mis le résultat dans la cellule voisine de droite, c.Offset(0, 1) = x

Sub Macro1()
For Each c In Selection
For i = Len(c) To 1 Step -1
If Mid(c, i, 1) <> " " Then
x = Mid(c, i, 1) & x
Else
Exit For
End If
Next
c.Offset(0, 1) = x
x = ""
Next
End Sub

isabelle

marc a écrit :
Bonjour
J'aimerais être capable de sortir le texte à partir de la droite jusqu'à un espace

exemple:
A1= Fred Caillou Conseiller aux ventes, HANNOVER NIEDERSACHSEN GERMANY
J'aimerais avoir en B1
B1= Germany
Le texte est déjà importé en excel. Alors j'aimerais avoir une solution en VBA, mais si je sais qu'on peut le faire via une formule.
La macro devrait s'exécuter sur les cellules sélectionnés car chaque fichier n'ont pas le même nombre de ligne.
Merci de votre aide
Marc






Avatar
Merguez07
Salut Marc

Dans le VBA de ta feuille tu mets ça

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
For i = 1 To Len(Target)
If Left(Right(Target, i), 1) = " " Then Target = Right(Target, i - 1)
Next
End Sub

Xavier


PS : Y a sans doute plus simple



marc a écrit :
Bonjour
Si je voulais avoir la ville dans la colonne B et le pays, dans la colonne C.
Il faudrait que la macro parte de la droite, cherhe la première virgule, en renvoie le texte jusqu'au dernier Espace.
Parceque dans certain cas, il est inscrit
Fred, Caillou, Conseiller, aux ventes, HANNOVER NIEDERSACHSEN GERMANY

J'aimerais avoir en B1 : HANNOVER NIEDERSACHSEN
et en C1: GERMANY
Merci de votre aide
Marc



"marc" a écrit dans le message de news:
Bonjour
J'aimerais être capable de sortir le texte à partir de la droite jusqu'à un espace

exemple:
A1= Fred Caillou Conseiller aux ventes, HANNOVER NIEDERSACHSEN GERMANY
J'aimerais avoir en B1
B1= Germany
Le texte est déjà importé en excel. Alors j'aimerais avoir une solution en VBA, mais si je sais qu'on peut le faire via une
formule.
La macro devrait s'exécuter sur les cellules sélectionnés car chaque fichier n'ont pas le même nombre de ligne.
Merci de votre aide
Marc









Avatar
Merguez07
J'ai pas précisé mais là ça marche quand on double clique sur la cellule
concernée


Xavier



marc a écrit :
Bonjour
Si je voulais avoir la ville dans la colonne B et le pays, dans la
colonne C.
Il faudrait que la macro parte de la droite, cherhe la première
virgule, en renvoie le texte jusqu'au dernier Espace.
Parceque dans certain cas, il est inscrit
Fred, Caillou, Conseiller, aux ventes, HANNOVER NIEDERSACHSEN GERMANY

J'aimerais avoir en B1 : HANNOVER NIEDERSACHSEN
et en C1: GERMANY
Merci de votre aide
Marc



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

Bonjour
J'aimerais être capable de sortir le texte à partir de la droite
jusqu'à un espace

exemple:
A1= Fred Caillou Conseiller aux ventes, HANNOVER NIEDERSACHSEN GERMANY
J'aimerais avoir en B1
B1= Germany
Le texte est déjà importé en excel. Alors j'aimerais avoir une
solution en VBA, mais si je sais qu'on peut le faire via une formule.
La macro devrait s'exécuter sur les cellules sélectionnés car chaque
fichier n'ont pas le même nombre de ligne.
Merci de votre aide
Marc











Avatar
marc
Bonjour Isabelle
Lorsque je fais le test de la macro sur un de mes fichiers, rien ne se passe. Pas de message d'erreur, rien du tout...
merci de ton aide
Marc

"isabelle" a écrit dans le message de news:
bonjour Marc,

j'ai mis le résultat dans la cellule voisine de droite, c.Offset(0, 1) = x

Sub Macro1()
For Each c In Selection
For i = Len(c) To 1 Step -1
If Mid(c, i, 1) <> " " Then
x = Mid(c, i, 1) & x
Else
Exit For
End If
Next
c.Offset(0, 1) = x
x = ""
Next
End Sub

isabelle

marc a écrit :
Bonjour
J'aimerais être capable de sortir le texte à partir de la droite jusqu'à un espace

exemple:
A1= Fred Caillou Conseiller aux ventes, HANNOVER NIEDERSACHSEN GERMANY
J'aimerais avoir en B1
B1= Germany
Le texte est déjà importé en excel. Alors j'aimerais avoir une solution en VBA, mais si je sais qu'on peut le faire via une
formule.
La macro devrait s'exécuter sur les cellules sélectionnés car chaque fichier n'ont pas le même nombre de ligne.
Merci de votre aide
Marc








Avatar
isabelle
bonjour Marc,

Sub Macro1()
For Each c In Selection
For i = Len(c) To 1 Step -1

If Not c.Offset(0, 2) <> "" Then
If Mid(c, i, 1) <> " " Then
x = Mid(c, i, 1) & x
Else
c.Offset(0, 2) = x
x = ""
GoTo suivant
End If

Else
suivant:
If Mid(c, i, 1) <> "," Then
x = Mid(c, i, 1) & x
Else
c.Offset(0, 1) = x
x = ""
Exit For
End If
End If

Next
Next
End Sub

isabelle

marc a écrit :
Bonjour
Si je voulais avoir la ville dans la colonne B et le pays, dans la colonne C.
Il faudrait que la macro parte de la droite, cherhe la première virgule, en renvoie le texte jusqu'au dernier Espace.
Parceque dans certain cas, il est inscrit
Fred, Caillou, Conseiller, aux ventes, HANNOVER NIEDERSACHSEN GERMANY

J'aimerais avoir en B1 : HANNOVER NIEDERSACHSEN
et en C1: GERMANY
Merci de votre aide
Marc



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

Bonjour
J'aimerais être capable de sortir le texte à partir de la droite jusqu'à un espace

exemple:
A1= Fred Caillou Conseiller aux ventes, HANNOVER NIEDERSACHSEN GERMANY
J'aimerais avoir en B1
B1= Germany
Le texte est déjà importé en excel. Alors j'aimerais avoir une solution en VBA, mais si je sais qu'on peut le faire via une
formule.
La macro devrait s'exécuter sur les cellules sélectionnés car chaque fichier n'ont pas le même nombre de ligne.
Merci de votre aide
Marc











Avatar
isabelle
au préalable, tu as sélectionner la plage ?

isabelle

marc a écrit :
Bonjour Isabelle
Lorsque je fais le test de la macro sur un de mes fichiers, rien ne se passe. Pas de message d'erreur, rien du tout...
merci de ton aide
Marc

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

bonjour Marc,

j'ai mis le résultat dans la cellule voisine de droite, c.Offset(0, 1) = x

Sub Macro1()
For Each c In Selection
For i = Len(c) To 1 Step -1
If Mid(c, i, 1) <> " " Then
x = Mid(c, i, 1) & x
Else
Exit For
End If
Next
c.Offset(0, 1) = x
x = ""
Next
End Sub

isabelle

marc a écrit :

Bonjour
J'aimerais être capable de sortir le texte à partir de la droite jusqu'à un espace

exemple:
A1= Fred Caillou Conseiller aux ventes, HANNOVER NIEDERSACHSEN GERMANY
J'aimerais avoir en B1
B1= Germany
Le texte est déjà importé en excel. Alors j'aimerais avoir une solution en VBA, mais si je sais qu'on peut le faire via une
formule.
La macro devrait s'exécuter sur les cellules sélectionnés car chaque fichier n'ont pas le même nombre de ligne.
Merci de votre aide
Marc














Avatar
isabelle
voila,

http://cjoint.com/?fvqK6k3SOB

isabelle

marc a écrit :
Bonjour Isabelle
Lorsque je fais le test de la macro sur un de mes fichiers, rien ne se passe. Pas de message d'erreur, rien du tout...
merci de ton aide
Marc

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

bonjour Marc,

j'ai mis le résultat dans la cellule voisine de droite, c.Offset(0, 1) = x

Sub Macro1()
For Each c In Selection
For i = Len(c) To 1 Step -1
If Mid(c, i, 1) <> " " Then
x = Mid(c, i, 1) & x
Else
Exit For
End If
Next
c.Offset(0, 1) = x
x = ""
Next
End Sub

isabelle

marc a écrit :

Bonjour
J'aimerais être capable de sortir le texte à partir de la droite jusqu'à un espace

exemple:
A1= Fred Caillou Conseiller aux ventes, HANNOVER NIEDERSACHSEN GERMANY
J'aimerais avoir en B1
B1= Germany
Le texte est déjà importé en excel. Alors j'aimerais avoir une solution en VBA, mais si je sais qu'on peut le faire via une
formule.
La macro devrait s'exécuter sur les cellules sélectionnés car chaque fichier n'ont pas le même nombre de ligne.
Merci de votre aide
Marc














Avatar
garnote
Salut Marc,

Une suggestion à adapter :

Sub ville_pays()
texte = Range("A1").Value
L = Len(texte)
For i = L To 1 Step -1
If Mid(texte, i, 1) = Chr(32) Then
m = i
Exit For
End If
Next i
For i = L To 1 Step -1
If Mid(texte, i, 1) = "," Then
n = i
Exit For
End If
Next i
'Ville
Range("B1").Value = Trim(Mid(texte, n + 1, m - n - 1))
'Pays
Range("C1").Value = Mid(texte, m + 1)
End Sub

Serge


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

Bonjour
Si je voulais avoir la ville dans la colonne B et le pays, dans la colonne
C.
Il faudrait que la macro parte de la droite, cherhe la première virgule,
en renvoie le texte jusqu'au dernier Espace.
Parceque dans certain cas, il est inscrit
Fred, Caillou, Conseiller, aux ventes, HANNOVER NIEDERSACHSEN GERMANY

J'aimerais avoir en B1 : HANNOVER NIEDERSACHSEN
et en C1: GERMANY
Merci de votre aide
Marc



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

Bonjour
J'aimerais être capable de sortir le texte à partir de la droite jusqu'à
un espace

exemple:
A1= Fred Caillou Conseiller aux ventes, HANNOVER NIEDERSACHSEN GERMANY
J'aimerais avoir en B1
B1= Germany
Le texte est déjà importé en excel. Alors j'aimerais avoir une solution
en VBA, mais si je sais qu'on peut le faire via une formule.
La macro devrait s'exécuter sur les cellules sélectionnés car chaque
fichier n'ont pas le même nombre de ligne.
Merci de votre aide
Marc









Avatar
garnote
Ou plus généralement, en supposant que tu sélectionnes
tes textes sur une colonne :

Sub villes_pays()
For Each texte In Selection
L = Len(texte)
For i = L To 1 Step -1
If Mid(texte, i, 1) = Chr(32) Then
m = i
Exit For
End If
Next i
For i = L To 1 Step -1
If Mid(texte, i, 1) = "," Then
n = i
Exit For
End If
Next i
'Ville
texte.Offset(0, 1) = Trim(Mid(texte, n + 1, m - n - 1))
'Pays
texte.Offset(0, 2) = Mid(texte, m + 1)
Next texte
End Sub

Serge
1 2 3