trouver le texte à partir d'un espace via vba

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
marc
Le #19381921
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"
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





isabelle
Le #19381911
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






Merguez07
Le #19381901
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"
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









Merguez07
Le #19381891
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"
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











marc
Le #19381881
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








isabelle
Le #19381871
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"
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











isabelle
Le #19381861
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














isabelle
Le #19381851
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














garnote
Le #19381831
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"
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"
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









garnote
Le #19382031
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
Publicité
Poster une réponse
Anonyme