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
Bonjour Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc
"isabelle" a écrit dans le message de news:
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
Bonjour Isabelle
J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé.
Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH
Un gros merci pour ton aide
marc
"isabelle" <i@v> a écrit dans le message de news: Osy6pGi2JHA.5896@TK2MSFTNGP02.phx.gbl...
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" <i@v> a écrit dans le message de news: Owiqv5h2JHA.1864@TK2MSFTNGP02.phx.gbl...
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
Bonjour Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc
"isabelle" a écrit dans le message de news:
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
marc
Bonjour MichDenis et Serge Je dois être bête car rien ne fonctionne Voici un exemple de mon document Merci beaucoup de votre aide Marc
http://cjoint.com/?fvq34z64HH
"garnote" a écrit dans le message de news:
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
Bonjour MichDenis et Serge
Je dois être bête car rien ne fonctionne
Voici un exemple de mon document
Merci beaucoup de votre aide
Marc
http://cjoint.com/?fvq34z64HH
"garnote" <garnote3@videotron.ca> a écrit dans le message de news: O2JXhRi2JHA.4416@TK2MSFTNGP05.phx.gbl...
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
Bonjour MichDenis et Serge Je dois être bête car rien ne fonctionne Voici un exemple de mon document Merci beaucoup de votre aide Marc
http://cjoint.com/?fvq34z64HH
"garnote" a écrit dans le message de news:
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
isabelle
bonjour Marc,
voila,
Sub Macro1() For Each c In Selection For i = Len(c) To 1 Step -1 zz = Mid(c, i, 1) If Not c.Offset(0, 2) <> "" Then If Mid(c, i, 1) <> Chr(160) 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 Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc
bonjour Marc,
voila,
Sub Macro1()
For Each c In Selection
For i = Len(c) To 1 Step -1
zz = Mid(c, i, 1)
If Not c.Offset(0, 2) <> "" Then
If Mid(c, i, 1) <> Chr(160) 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 Isabelle
J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé.
Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH
Un gros merci pour ton aide
marc
Sub Macro1() For Each c In Selection For i = Len(c) To 1 Step -1 zz = Mid(c, i, 1) If Not c.Offset(0, 2) <> "" Then If Mid(c, i, 1) <> Chr(160) 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 Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc
marc
Bonjour Isabelle Ça fonctionne merveilleusement bien. Un gros merci pour ton aide et bonne journée Marc
"isabelle" a écrit dans le message de news: O9R$
bonjour Marc,
voila,
Sub Macro1() For Each c In Selection For i = Len(c) To 1 Step -1 zz = Mid(c, i, 1) If Not c.Offset(0, 2) <> "" Then If Mid(c, i, 1) <> Chr(160) 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 Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc
Bonjour Isabelle
Ça fonctionne merveilleusement bien.
Un gros merci pour ton aide et bonne journée
Marc
"isabelle" <i@v> a écrit dans le message de news: O9R$Rli2JHA.5896@TK2MSFTNGP02.phx.gbl...
bonjour Marc,
voila,
Sub Macro1()
For Each c In Selection
For i = Len(c) To 1 Step -1
zz = Mid(c, i, 1)
If Not c.Offset(0, 2) <> "" Then
If Mid(c, i, 1) <> Chr(160) 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 Isabelle
J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé.
Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH
Un gros merci pour ton aide
marc
Bonjour Isabelle Ça fonctionne merveilleusement bien. Un gros merci pour ton aide et bonne journée Marc
"isabelle" a écrit dans le message de news: O9R$
bonjour Marc,
voila,
Sub Macro1() For Each c In Selection For i = Len(c) To 1 Step -1 zz = Mid(c, i, 1) If Not c.Offset(0, 2) <> "" Then If Mid(c, i, 1) <> Chr(160) 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 Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc
garnote
Isabelle, explique-moi le Chr(160) SVP.
Cette macro ne fonctionne pas si je l'utilise sur le document de Marc mais si je réécris ses textes, ça fonctionne !
Sub villes_pays() For Each c In Selection t = Trim(c) L = Len(t) For i = L To 1 Step -1 If Mid(t, i, 1) = Chr(32) Then m = i Exit For End If Next i For i = L To 1 Step -1 If Mid(t, i, 1) = "," Then n = i Exit For End If Next i 'Ville c.Offset(0, 1) = Trim(Mid(t, n + 1, m - n - 1)) 'Pays c.Offset(0, 2) = Mid(t, m + 1) Next c End Sub
"isabelle" a écrit dans le message de news: O9R$
bonjour Marc,
voila,
Sub Macro1() For Each c In Selection For i = Len(c) To 1 Step -1 zz = Mid(c, i, 1) If Not c.Offset(0, 2) <> "" Then If Mid(c, i, 1) <> Chr(160) 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 Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc
Isabelle, explique-moi le Chr(160) SVP.
Cette macro ne fonctionne pas si je l'utilise sur le document de Marc
mais si je réécris ses textes, ça fonctionne !
Sub villes_pays()
For Each c In Selection
t = Trim(c)
L = Len(t)
For i = L To 1 Step -1
If Mid(t, i, 1) = Chr(32) Then
m = i
Exit For
End If
Next i
For i = L To 1 Step -1
If Mid(t, i, 1) = "," Then
n = i
Exit For
End If
Next i
'Ville
c.Offset(0, 1) = Trim(Mid(t, n + 1, m - n - 1))
'Pays
c.Offset(0, 2) = Mid(t, m + 1)
Next c
End Sub
"isabelle" <i@v> a écrit dans le message de news:
O9R$Rli2JHA.5896@TK2MSFTNGP02.phx.gbl...
bonjour Marc,
voila,
Sub Macro1()
For Each c In Selection
For i = Len(c) To 1 Step -1
zz = Mid(c, i, 1)
If Not c.Offset(0, 2) <> "" Then
If Mid(c, i, 1) <> Chr(160) 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 Isabelle
J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas
aussi bon qu'avec le fichier que tu m'as envoyé.
Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH
Un gros merci pour ton aide
marc
Cette macro ne fonctionne pas si je l'utilise sur le document de Marc mais si je réécris ses textes, ça fonctionne !
Sub villes_pays() For Each c In Selection t = Trim(c) L = Len(t) For i = L To 1 Step -1 If Mid(t, i, 1) = Chr(32) Then m = i Exit For End If Next i For i = L To 1 Step -1 If Mid(t, i, 1) = "," Then n = i Exit For End If Next i 'Ville c.Offset(0, 1) = Trim(Mid(t, n + 1, m - n - 1)) 'Pays c.Offset(0, 2) = Mid(t, m + 1) Next c End Sub
"isabelle" a écrit dans le message de news: O9R$
bonjour Marc,
voila,
Sub Macro1() For Each c In Selection For i = Len(c) To 1 Step -1 zz = Mid(c, i, 1) If Not c.Offset(0, 2) <> "" Then If Mid(c, i, 1) <> Chr(160) 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 Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc
garnote
Salut Marc,
En remplaçant Chr(32) par Chr(160), ça semble correct. Est-ce bien le cas ?
Sub villes_pays() For Each c In Selection t = Trim(c) L = Len(t) For i = L To 1 Step -1 If Mid(t, i, 1) = Chr(160) Then m = i Exit For End If Next i For i = L To 1 Step -1 If Mid(t, i, 1) = "," Then n = i Exit For End If Next i 'Ville c.Offset(0, 1) = Trim(Mid(t, n + 1, m - n - 1)) 'Pays c.Offset(0, 2) = Mid(t, m + 1) Next c End Sub
Serge
"marc" a écrit dans le message de news:
Bonjour Isabelle Ça fonctionne merveilleusement bien. Un gros merci pour ton aide et bonne journée Marc
"isabelle" a écrit dans le message de news: O9R$
bonjour Marc,
voila,
Sub Macro1() For Each c In Selection For i = Len(c) To 1 Step -1 zz = Mid(c, i, 1) If Not c.Offset(0, 2) <> "" Then If Mid(c, i, 1) <> Chr(160) 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 Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc
Salut Marc,
En remplaçant Chr(32) par Chr(160), ça semble correct.
Est-ce bien le cas ?
Sub villes_pays()
For Each c In Selection
t = Trim(c)
L = Len(t)
For i = L To 1 Step -1
If Mid(t, i, 1) = Chr(160) Then
m = i
Exit For
End If
Next i
For i = L To 1 Step -1
If Mid(t, i, 1) = "," Then
n = i
Exit For
End If
Next i
'Ville
c.Offset(0, 1) = Trim(Mid(t, n + 1, m - n - 1))
'Pays
c.Offset(0, 2) = Mid(t, m + 1)
Next c
End Sub
Serge
"marc" <test@test.com> a écrit dans le message de news:
Om8fsqi2JHA.6004@TK2MSFTNGP02.phx.gbl...
Bonjour Isabelle
Ça fonctionne merveilleusement bien.
Un gros merci pour ton aide et bonne journée
Marc
"isabelle" <i@v> a écrit dans le message de news:
O9R$Rli2JHA.5896@TK2MSFTNGP02.phx.gbl...
bonjour Marc,
voila,
Sub Macro1()
For Each c In Selection
For i = Len(c) To 1 Step -1
zz = Mid(c, i, 1)
If Not c.Offset(0, 2) <> "" Then
If Mid(c, i, 1) <> Chr(160) 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 Isabelle
J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas
aussi bon qu'avec le fichier que tu m'as envoyé.
Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH
Un gros merci pour ton aide
marc
En remplaçant Chr(32) par Chr(160), ça semble correct. Est-ce bien le cas ?
Sub villes_pays() For Each c In Selection t = Trim(c) L = Len(t) For i = L To 1 Step -1 If Mid(t, i, 1) = Chr(160) Then m = i Exit For End If Next i For i = L To 1 Step -1 If Mid(t, i, 1) = "," Then n = i Exit For End If Next i 'Ville c.Offset(0, 1) = Trim(Mid(t, n + 1, m - n - 1)) 'Pays c.Offset(0, 2) = Mid(t, m + 1) Next c End Sub
Serge
"marc" a écrit dans le message de news:
Bonjour Isabelle Ça fonctionne merveilleusement bien. Un gros merci pour ton aide et bonne journée Marc
"isabelle" a écrit dans le message de news: O9R$
bonjour Marc,
voila,
Sub Macro1() For Each c In Selection For i = Len(c) To 1 Step -1 zz = Mid(c, i, 1) If Not c.Offset(0, 2) <> "" Then If Mid(c, i, 1) <> Chr(160) 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 Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc
MichDenis
le Chr(160) SVP ce n'est pas un espace fait par la barre d'espacement mais un "espace insécable" fréquent lors d'un importation de données
"garnote" a écrit dans le message de groupe de discussion :
Isabelle, explique-moi le Chr(160) SVP.
Cette macro ne fonctionne pas si je l'utilise sur le document de Marc mais si je réécris ses textes, ça fonctionne !
Sub villes_pays() For Each c In Selection t = Trim(c) L = Len(t) For i = L To 1 Step -1 If Mid(t, i, 1) = Chr(32) Then m = i Exit For End If Next i For i = L To 1 Step -1 If Mid(t, i, 1) = "," Then n = i Exit For End If Next i 'Ville c.Offset(0, 1) = Trim(Mid(t, n + 1, m - n - 1)) 'Pays c.Offset(0, 2) = Mid(t, m + 1) Next c End Sub
"isabelle" a écrit dans le message de news: O9R$
bonjour Marc,
voila,
Sub Macro1() For Each c In Selection For i = Len(c) To 1 Step -1 zz = Mid(c, i, 1) If Not c.Offset(0, 2) <> "" Then If Mid(c, i, 1) <> Chr(160) 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 Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc
le Chr(160) SVP ce n'est pas un espace fait par la barre d'espacement
mais un "espace insécable" fréquent lors d'un importation de données
"garnote" <garnote3@videotron.ca> a écrit dans le message de groupe de discussion :
edIIqui2JHA.240@TK2MSFTNGP06.phx.gbl...
Isabelle, explique-moi le Chr(160) SVP.
Cette macro ne fonctionne pas si je l'utilise sur le document de Marc
mais si je réécris ses textes, ça fonctionne !
Sub villes_pays()
For Each c In Selection
t = Trim(c)
L = Len(t)
For i = L To 1 Step -1
If Mid(t, i, 1) = Chr(32) Then
m = i
Exit For
End If
Next i
For i = L To 1 Step -1
If Mid(t, i, 1) = "," Then
n = i
Exit For
End If
Next i
'Ville
c.Offset(0, 1) = Trim(Mid(t, n + 1, m - n - 1))
'Pays
c.Offset(0, 2) = Mid(t, m + 1)
Next c
End Sub
"isabelle" <i@v> a écrit dans le message de news:
O9R$Rli2JHA.5896@TK2MSFTNGP02.phx.gbl...
bonjour Marc,
voila,
Sub Macro1()
For Each c In Selection
For i = Len(c) To 1 Step -1
zz = Mid(c, i, 1)
If Not c.Offset(0, 2) <> "" Then
If Mid(c, i, 1) <> Chr(160) 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 Isabelle
J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas
aussi bon qu'avec le fichier que tu m'as envoyé.
Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH
Un gros merci pour ton aide
marc
le Chr(160) SVP ce n'est pas un espace fait par la barre d'espacement mais un "espace insécable" fréquent lors d'un importation de données
"garnote" a écrit dans le message de groupe de discussion :
Isabelle, explique-moi le Chr(160) SVP.
Cette macro ne fonctionne pas si je l'utilise sur le document de Marc mais si je réécris ses textes, ça fonctionne !
Sub villes_pays() For Each c In Selection t = Trim(c) L = Len(t) For i = L To 1 Step -1 If Mid(t, i, 1) = Chr(32) Then m = i Exit For End If Next i For i = L To 1 Step -1 If Mid(t, i, 1) = "," Then n = i Exit For End If Next i 'Ville c.Offset(0, 1) = Trim(Mid(t, n + 1, m - n - 1)) 'Pays c.Offset(0, 2) = Mid(t, m + 1) Next c End Sub
"isabelle" a écrit dans le message de news: O9R$
bonjour Marc,
voila,
Sub Macro1() For Each c In Selection For i = Len(c) To 1 Step -1 zz = Mid(c, i, 1) If Not c.Offset(0, 2) <> "" Then If Mid(c, i, 1) <> Chr(160) 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 Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc
isabelle
salut Serge,
c'est un caractère dans le texte que Marc a fourni,
j'ai mis le texte en A1 en B1 =CODE(STXT($A$1;LIGNE();1)) en C1 ÊR(B1) et recopier vers le bas pour trouver le fameux semblant d'espace qui est en réalité un code 160
isabelle
garnote a écrit :
Isabelle, explique-moi le Chr(160) SVP.
Cette macro ne fonctionne pas si je l'utilise sur le document de Marc mais si je réécris ses textes, ça fonctionne !
Sub villes_pays() For Each c In Selection t = Trim(c) L = Len(t) For i = L To 1 Step -1 If Mid(t, i, 1) = Chr(32) Then m = i Exit For End If Next i For i = L To 1 Step -1 If Mid(t, i, 1) = "," Then n = i Exit For End If Next i 'Ville c.Offset(0, 1) = Trim(Mid(t, n + 1, m - n - 1)) 'Pays c.Offset(0, 2) = Mid(t, m + 1) Next c End Sub
"isabelle" a écrit dans le message de news: O9R$
bonjour Marc,
voila,
Sub Macro1() For Each c In Selection For i = Len(c) To 1 Step -1 zz = Mid(c, i, 1) If Not c.Offset(0, 2) <> "" Then If Mid(c, i, 1) <> Chr(160) 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 Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc
salut Serge,
c'est un caractère dans le texte que Marc a fourni,
j'ai mis le texte en A1
en B1 =CODE(STXT($A$1;LIGNE();1))
en C1 ÊR(B1)
et recopier vers le bas pour trouver le fameux semblant d'espace qui est
en réalité un code 160
isabelle
garnote a écrit :
Isabelle, explique-moi le Chr(160) SVP.
Cette macro ne fonctionne pas si je l'utilise sur le document de Marc
mais si je réécris ses textes, ça fonctionne !
Sub villes_pays()
For Each c In Selection
t = Trim(c)
L = Len(t)
For i = L To 1 Step -1
If Mid(t, i, 1) = Chr(32) Then
m = i
Exit For
End If
Next i
For i = L To 1 Step -1
If Mid(t, i, 1) = "," Then
n = i
Exit For
End If
Next i
'Ville
c.Offset(0, 1) = Trim(Mid(t, n + 1, m - n - 1))
'Pays
c.Offset(0, 2) = Mid(t, m + 1)
Next c
End Sub
"isabelle" <i@v> a écrit dans le message de news:
O9R$Rli2JHA.5896@TK2MSFTNGP02.phx.gbl...
bonjour Marc,
voila,
Sub Macro1()
For Each c In Selection
For i = Len(c) To 1 Step -1
zz = Mid(c, i, 1)
If Not c.Offset(0, 2) <> "" Then
If Mid(c, i, 1) <> Chr(160) 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 Isabelle
J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas
aussi bon qu'avec le fichier que tu m'as envoyé.
Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH
Un gros merci pour ton aide
marc
c'est un caractère dans le texte que Marc a fourni,
j'ai mis le texte en A1 en B1 =CODE(STXT($A$1;LIGNE();1)) en C1 ÊR(B1) et recopier vers le bas pour trouver le fameux semblant d'espace qui est en réalité un code 160
isabelle
garnote a écrit :
Isabelle, explique-moi le Chr(160) SVP.
Cette macro ne fonctionne pas si je l'utilise sur le document de Marc mais si je réécris ses textes, ça fonctionne !
Sub villes_pays() For Each c In Selection t = Trim(c) L = Len(t) For i = L To 1 Step -1 If Mid(t, i, 1) = Chr(32) Then m = i Exit For End If Next i For i = L To 1 Step -1 If Mid(t, i, 1) = "," Then n = i Exit For End If Next i 'Ville c.Offset(0, 1) = Trim(Mid(t, n + 1, m - n - 1)) 'Pays c.Offset(0, 2) = Mid(t, m + 1) Next c End Sub
"isabelle" a écrit dans le message de news: O9R$
bonjour Marc,
voila,
Sub Macro1() For Each c In Selection For i = Len(c) To 1 Step -1 zz = Mid(c, i, 1) If Not c.Offset(0, 2) <> "" Then If Mid(c, i, 1) <> Chr(160) 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 Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc
marc
Bonjour Serge Effectivement, ça fonctionne bien. Je suis malheureusement pas assez fort en vba pour expliquer pourquoi, mais oui, ça fonctionne bien Merci Serge
"garnote" a écrit dans le message de news:
Salut Marc,
En remplaçant Chr(32) par Chr(160), ça semble correct. Est-ce bien le cas ?
Sub villes_pays() For Each c In Selection t = Trim(c) L = Len(t) For i = L To 1 Step -1 If Mid(t, i, 1) = Chr(160) Then m = i Exit For End If Next i For i = L To 1 Step -1 If Mid(t, i, 1) = "," Then n = i Exit For End If Next i 'Ville c.Offset(0, 1) = Trim(Mid(t, n + 1, m - n - 1)) 'Pays c.Offset(0, 2) = Mid(t, m + 1) Next c End Sub
Serge
"marc" a écrit dans le message de news:
Bonjour Isabelle Ça fonctionne merveilleusement bien. Un gros merci pour ton aide et bonne journée Marc
"isabelle" a écrit dans le message de news: O9R$
bonjour Marc,
voila,
Sub Macro1() For Each c In Selection For i = Len(c) To 1 Step -1 zz = Mid(c, i, 1) If Not c.Offset(0, 2) <> "" Then If Mid(c, i, 1) <> Chr(160) 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 Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc
Bonjour Serge
Effectivement, ça fonctionne bien.
Je suis malheureusement pas assez fort en vba pour expliquer pourquoi, mais oui, ça fonctionne bien
Merci Serge
"garnote" <garnote3@videotron.ca> a écrit dans le message de news: OEeACyi2JHA.5728@TK2MSFTNGP03.phx.gbl...
Salut Marc,
En remplaçant Chr(32) par Chr(160), ça semble correct.
Est-ce bien le cas ?
Sub villes_pays()
For Each c In Selection
t = Trim(c)
L = Len(t)
For i = L To 1 Step -1
If Mid(t, i, 1) = Chr(160) Then
m = i
Exit For
End If
Next i
For i = L To 1 Step -1
If Mid(t, i, 1) = "," Then
n = i
Exit For
End If
Next i
'Ville
c.Offset(0, 1) = Trim(Mid(t, n + 1, m - n - 1))
'Pays
c.Offset(0, 2) = Mid(t, m + 1)
Next c
End Sub
Serge
"marc" <test@test.com> a écrit dans le message de news: Om8fsqi2JHA.6004@TK2MSFTNGP02.phx.gbl...
Bonjour Isabelle
Ça fonctionne merveilleusement bien.
Un gros merci pour ton aide et bonne journée
Marc
"isabelle" <i@v> a écrit dans le message de news: O9R$Rli2JHA.5896@TK2MSFTNGP02.phx.gbl...
bonjour Marc,
voila,
Sub Macro1()
For Each c In Selection
For i = Len(c) To 1 Step -1
zz = Mid(c, i, 1)
If Not c.Offset(0, 2) <> "" Then
If Mid(c, i, 1) <> Chr(160) 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 Isabelle
J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé.
Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH
Un gros merci pour ton aide
marc
Bonjour Serge Effectivement, ça fonctionne bien. Je suis malheureusement pas assez fort en vba pour expliquer pourquoi, mais oui, ça fonctionne bien Merci Serge
"garnote" a écrit dans le message de news:
Salut Marc,
En remplaçant Chr(32) par Chr(160), ça semble correct. Est-ce bien le cas ?
Sub villes_pays() For Each c In Selection t = Trim(c) L = Len(t) For i = L To 1 Step -1 If Mid(t, i, 1) = Chr(160) Then m = i Exit For End If Next i For i = L To 1 Step -1 If Mid(t, i, 1) = "," Then n = i Exit For End If Next i 'Ville c.Offset(0, 1) = Trim(Mid(t, n + 1, m - n - 1)) 'Pays c.Offset(0, 2) = Mid(t, m + 1) Next c End Sub
Serge
"marc" a écrit dans le message de news:
Bonjour Isabelle Ça fonctionne merveilleusement bien. Un gros merci pour ton aide et bonne journée Marc
"isabelle" a écrit dans le message de news: O9R$
bonjour Marc,
voila,
Sub Macro1() For Each c In Selection For i = Len(c) To 1 Step -1 zz = Mid(c, i, 1) If Not c.Offset(0, 2) <> "" Then If Mid(c, i, 1) <> Chr(160) 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 Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc
isabelle
...un poil plus court,
Sub Macro3() For Each c In Selection For i = Len(c) To 1 Step -1 If Asc(Mid(c, i, 1)) = 160 And y = 0 Then a = i: y = 1 If Asc(Mid(c, i, 1)) = 44 Then b = i: Exit For Next c.Offset(0, 1) = Mid(c, b + 1, Len(c) - b) c.Offset(0, 2) = Right(c, Len(c) - a) a = 0 b = 0 y = 0 Next End Sub
isabelle
marc a écrit :
Bonjour Isabelle Ça fonctionne merveilleusement bien. Un gros merci pour ton aide et bonne journée Marc
"isabelle" a écrit dans le message de news: O9R$
bonjour Marc,
voila,
Sub Macro1() For Each c In Selection For i = Len(c) To 1 Step -1 zz = Mid(c, i, 1) If Not c.Offset(0, 2) <> "" Then If Mid(c, i, 1) <> Chr(160) 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 Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc
...un poil plus court,
Sub Macro3()
For Each c In Selection
For i = Len(c) To 1 Step -1
If Asc(Mid(c, i, 1)) = 160 And y = 0 Then a = i: y = 1
If Asc(Mid(c, i, 1)) = 44 Then b = i: Exit For
Next
c.Offset(0, 1) = Mid(c, b + 1, Len(c) - b)
c.Offset(0, 2) = Right(c, Len(c) - a)
a = 0
b = 0
y = 0
Next
End Sub
isabelle
marc a écrit :
Bonjour Isabelle
Ça fonctionne merveilleusement bien.
Un gros merci pour ton aide et bonne journée
Marc
"isabelle" <i@v> a écrit dans le message de news: O9R$Rli2JHA.5896@TK2MSFTNGP02.phx.gbl...
bonjour Marc,
voila,
Sub Macro1()
For Each c In Selection
For i = Len(c) To 1 Step -1
zz = Mid(c, i, 1)
If Not c.Offset(0, 2) <> "" Then
If Mid(c, i, 1) <> Chr(160) 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 Isabelle
J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé.
Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH
Un gros merci pour ton aide
marc
Sub Macro3() For Each c In Selection For i = Len(c) To 1 Step -1 If Asc(Mid(c, i, 1)) = 160 And y = 0 Then a = i: y = 1 If Asc(Mid(c, i, 1)) = 44 Then b = i: Exit For Next c.Offset(0, 1) = Mid(c, b + 1, Len(c) - b) c.Offset(0, 2) = Right(c, Len(c) - a) a = 0 b = 0 y = 0 Next End Sub
isabelle
marc a écrit :
Bonjour Isabelle Ça fonctionne merveilleusement bien. Un gros merci pour ton aide et bonne journée Marc
"isabelle" a écrit dans le message de news: O9R$
bonjour Marc,
voila,
Sub Macro1() For Each c In Selection For i = Len(c) To 1 Step -1 zz = Mid(c, i, 1) If Not c.Offset(0, 2) <> "" Then If Mid(c, i, 1) <> Chr(160) 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 Isabelle J'ai essayé ta macro sur un de mes fichiers et le résultat n'est pas aussi bon qu'avec le fichier que tu m'as envoyé. Voici un exemple d'un de mes fichiers.
http://cjoint.com/?fvq34z64HH Un gros merci pour ton aide marc