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

séparer en plusieurs cellules

14 réponses
Avatar
Philippe MERY
Bonjour.
J'ai un fichier de clients avec trop d'infos par cellule..
Par ex , j'ai un cellulle A1 qui contient
xx rue Gaston de Saporta 13100 Aix en Provence Tél: 04 42 xx xx xx

peut on séparer pour avoir
A1 qui contient xx rue Gaston de Saporta
A2 qui contient 13100 Aix en Provence
A3 qui contient Tél: 04 42 xx xx xx

Est ce possible?

Merci

Cordialement.
Philippe MERY
**pour m'écrire perso**
mery-ph -serveur- ifrance.com
www.freymille.com

10 réponses

1 2
Avatar
FFO
Salut Philippe

Soit la Feuil1 colonne A à traiter à partir de la ligne 2

Tous les éléments doivent être séparés par des espaces et la partie
téléphone débutant par "Tél:"

Je te propose ce code :

For Each c In Worksheets("Feuil1").Range("A2", "A" &
Sheets("Feuil1").Range("A65535").End(xlUp).Row)
For i = 0 To UBound(Split(c, " "))
If IsNumeric(Split(c, " ")(i)) = True And Len(Split(c, " ")(i)) = 5 Then
Ville = Mid(c, Car)
End If
If Split(c, " ")(i) = "Tél:" Then
c.Offset(0, 3) = Mid(c, Car)
Exit For
End If
Car = Car + Len(Split(c, " ")(i)) + 1
Next
c.Offset(0, 2) = Mid(Ville, 1, Len(Ville) - Len(c.Offset(0, 3)))
c.Offset(0, 1) = Mid(c, 1, Len(c) - (Len(c.Offset(0, 2)) + Len(c.Offset(0,
3))))
Car = 0
Next

Résultat colonne B/C/D

Celà devrait convenir
Dis moi !!!!
Avatar
Philippe MERY
"FFO" a écrit dans le message de news:

Salut Philippe

Soit la Feuil1 colonne A à traiter à partir de la ligne 2

Tous les éléments doivent être séparés par des espaces et la partie
téléphone débutant par "Tél:"

Je te propose ce code :

For Each c In Worksheets("Feuil1").Range("A2", "A" &
Sheets("Feuil1").Range("A65535").End(xlUp).Row)
For i = 0 To UBound(Split(c, " "))
If IsNumeric(Split(c, " ")(i)) = True And Len(Split(c, " ")(i)) = 5 Then
Ville = Mid(c, Car)
End If
If Split(c, " ")(i) = "Tél:" Then
c.Offset(0, 3) = Mid(c, Car)
Exit For
End If
Car = Car + Len(Split(c, " ")(i)) + 1
Next
c.Offset(0, 2) = Mid(Ville, 1, Len(Ville) - Len(c.Offset(0, 3)))
c.Offset(0, 1) = Mid(c, 1, Len(c) - (Len(c.Offset(0, 2)) + Len(c.Offset(0,
3))))
Car = 0
Next

Résultat colonne B/C/D

Celà devrait convenir
Dis moi !!!!



Merci de ton aide, mais je suis neuneuh ,et je ne sais pas utiliser cet
outil :-/
du coup je suis perdu...
Avatar
FFO
Rebonjour à toi

Dans un classeur tout neuf en Feuil1 colonne A rapporte toutes tes données à
partir de A2 (Mets en A1 un nom de colonne)


Crées une Macro :

Outil/Macro/Nouvelle Macro
Donnes un nom à ta Macro sans espace puis OK

Dans la petite fenêtre "Arr" cliques sur le carré bleu


Modifies la Macro créée en mettant mon code :

Outils/Macro/Macros
Sélectionnes la Macro et Modifier

Dans l'éditeur qui viens de souvrir entre Sub Mamacro et End Sub recopies
mon code

Fermes l'éditeur par la croix en haut à droite


Exécute la macro créée :

Outils/Macro/Macros
Sélectionnes la Macro et Exécuter

Va voir dans Feuil1 colonne B/C/D le résultat


Donnes moi des nouvelles !!!!!!
Avatar
FFO
Rebonjour à toi

Pour t'aider sur ce lien un exemple dont tu peux t'inspirer

Feuil1 actives la Macro "Traitement"

Donnes moi des nouvelles !!!!!
Avatar
FFO
Rebonjour à toi

Le lien est resté dans la souris !!!!

http://www.cijoint.fr/cjlink.php?file=cj200902/cijfBuYJm0.xls

Milles excuses
Avatar
milloche
Je prie Dieu qu'il n'y ait pas un Hubert-Charles de la Tarendière habitant 15 Avenue du lapin qui
fume à Saint-Remy-en-Bouzemont-Saint-Genest-et-Hisson dans la liste des clients.
(;o))

"Philippe MERY" a écrit dans le message de news:
4989b122$0$9377$
"FFO" a écrit dans le message de news:

Salut Philippe

Soit la Feuil1 colonne A à traiter à partir de la ligne 2

Tous les éléments doivent être séparés par des espaces et la partie
téléphone débutant par "Tél:"

Je te propose ce code :

For Each c In Worksheets("Feuil1").Range("A2", "A" &
Sheets("Feuil1").Range("A65535").End(xlUp).Row)
For i = 0 To UBound(Split(c, " "))
If IsNumeric(Split(c, " ")(i)) = True And Len(Split(c, " ")(i)) = 5 Then
Ville = Mid(c, Car)
End If
If Split(c, " ")(i) = "Tél:" Then
c.Offset(0, 3) = Mid(c, Car)
Exit For
End If
Car = Car + Len(Split(c, " ")(i)) + 1
Next
c.Offset(0, 2) = Mid(Ville, 1, Len(Ville) - Len(c.Offset(0, 3)))
c.Offset(0, 1) = Mid(c, 1, Len(c) - (Len(c.Offset(0, 2)) + Len(c.Offset(0,
3))))
Car = 0
Next

Résultat colonne B/C/D

Celà devrait convenir
Dis moi !!!!



Merci de ton aide, mais je suis neuneuh ,et je ne sais pas utiliser cet outil :-/
du coup je suis perdu...



Avatar
Albert
Bonjour

"FFO" a écrit dans le message de
news:
Rebonjour à toi

Dans un classeur tout neuf en Feuil1 colonne A rapporte toutes tes données
à
partir de A2 (Mets en A1 un nom de colonne)
Crées une Macro :
Outil/Macro/Nouvelle Macro
Donnes un nom à ta Macro sans espace puis OK

Dans la petite fenêtre "Arr" cliques sur le carré bleu



Ceci m'intéresse, mais avec Excel 2000 et 2007 je ne vois pas cette petite
fenêtre avec le carré bleu

Après le clic sur OK ma macro s'ouvre sur une cellule de la feuille.

C'est quoi cette petite fenêtre que je ne vois pas ?

Merci

--
albertri-at-videotron.ca.invalid
Avatar
FFO
Salut Albert

Normalement lorsque tu crées une macro aprés avoir fait ceci :

Outil/Macro/Nouvelle Macro
Donnes un nom à ta Macro sans espace puis OK

une petite fenêtre apparait quelque part sur la feuille active avec à
l'interieur un intitullé "Arr" et un carré bleu

Si ce n'est pas le cas il faut pour la faire apparaitre opérer cette
manipulation :

Affichage/Barres d'outils/
Selectionner "Arrêter l'enregistrement"

Fais la manipulation et dis moi !!!!!
Avatar
Philippe MERY
"FFO" a écrit dans le message de news:

Rebonjour à toi

Le lien est resté dans la souris !!!!

http://www.cijoint.fr/cjlink.php?file=cj200902/cijfBuYJm0.xls

Milles excuses



merci de ton aide, mais au lancement de la macro, un message d'erreur
apparait
"Erreur de compilation: sub ou functuion non definie"
Avatar
Albert
Bonjour

"FFO" a écrit dans le message de
news:
Salut Albert

Normalement lorsque tu crées une macro aprés avoir fait ceci :
Outil/Macro/Nouvelle Macro
Donnes un nom à ta Macro sans espace puis OK
une petite fenêtre apparait quelque part sur la feuille active avec à
l'interieur un intitullé "Arr" et un carré bleu



Après toutes ces années et quelques centaines de macros je ne connaissais
pas cette mini barre d'outil, jai toujours utilisé
Outils/Macro/Arrêter_l'enregistrement.

Si ce n'est pas le cas il faut pour la faire apparaitre opérer cette
manipulation :>
Affichage/Barres d'outils/
Selectionner "Arrêter l'enregistrement"


Lorsque la barre d'outil est cochée avec EXCEL2000 la barre est toujours
présente dans la feuille ou dans la barre d'outils en haut, et non pas
seulement lors d'un enregistrement de macro.

Merci beaucoup pour cette explication

Ici un beau ciel bleu et -19°C,

--
albertri-at-videotron.ca.invalid
1 2