Transposition d'une liste d'adresses en plusieurs colonnes.

  • Initiateur de la discussion Initiateur de la discussion sparga
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sparga

XLDnaute Nouveau
Bonjour à tous,
Nouveau sur le forum, j'espère que vous pourrez m'aider ! Je connais un peu Excel, mais je suis très loin d'être un expert !

Je vais présenter un peu le contexte de ma question :

Actuellement en stage, je dois récupérer des données sur les maisons de retraite (adresses) à l'échelle de la France.
J'ai pu, grâce a un annuaire en ligne, récupérer ces adresses sous forme de liste en les copiant directement dans Excel.

les adresses se présentent sous cette forme :

Numero de département
Titre
Nom de l'établissement
Adresse
Code postal Ville
Téléphone

Exemple :

18
Bourges : Etablissements d'hébergement
Maison de retraite XXX
18 rue des Lilas
18000 Bourges
0248.............

Une fois copiées dans Excel, toutes les adresses se retrouvent séparées par plusieurs espaces.

La pluspart de ces adresses commptent 6 lignes, mais certaines sont imprécises et en comptent 5 (seul le nom de la commune est présent, pas le numéro ou le nom de rue).

De plus, lors du copier-coller, des lignes vides (contenant en général un espace) se sont glissées dans la liste entre certaines adresses.

je joint un fichier "données de base", qui contient les données telles qu'elles se présentent après le copier-coller (elles ne sont bien sûr pas complètes).


Maintenant, mon (gros) problème :

Je dois transformer cette liste d'adresses en colonnes (la transposer en gros), afin voir une colonne pour chaque ligne de l'adresse.

J'ai commencé par utiliser la fonction TRANSPOSE(), mais je devais ensuite retoucher le fichier une fois la formule recopiée vers le bas car ca me transposait chaque ligne de l'adresse : La première niquel, les autres avec un bout en moins... du coup obligé de supprimer les lignes en trop manuellement

J'ai donc fait, aidé d'un collègue, une macro mais dès que celle-ci rencontre une anomalie dans une adresse (ligne en moins ou en trop), elle ne marche plus du tout et tout se retrouve décalé...

voila la macro en question :


Sub TRANSPOSE()

Dim i As Integer
Dim ligne As Integer

i = 1
ligne = 1

Do While i < 120



Range("A" & i).Select
Selection.Copy
Range("B" & ligne).Select
ActiveSheet.Paste
Range("A" & i + 1).Select
Application.CutCopyMode = False
Selection.Copy
Range("C" & ligne).Select
ActiveSheet.Paste
Range("A" & i + 2).Select
Application.CutCopyMode = False
Selection.Copy
Range("D" & ligne).Select
ActiveSheet.Paste
Range("A" & i + 3).Select
Application.CutCopyMode = False
Selection.Copy
Range("E" & ligne).Select
ActiveSheet.Paste
Range("A" & i + 4).Select
Application.CutCopyMode = False
Selection.Copy
Range("F" & ligne).Select
ActiveSheet.Paste
Range("A" & i + 5).Select
Application.CutCopyMode = False
Selection.Copy
Range("G" & ligne).Select
ActiveSheet.Paste

i = i + 6
ligne = ligne + 1

Loop


End Sub

en gros elle prend chaque ligne (cellule) de l'adresse et la copie dans une ligne, avant de passer a la suivante.

Je voulais savoir si il était possible d'améliorer cette macro afin qu'elle ne soit pas génée par les anomalies dans les adresses, ou alors s'il existe une autre solution sans utiliser de macro.

Un grand merci !

Bonne fin de journée
 

Pièces jointes

Re : Transposition d'une liste d'adresses en plusieurs colonnes.

Salut Sparga,
Peut être ici un élément de réponse. Voir ma macro transpose2
Cordialement
Lolote83
 

Pièces jointes

Re : Transposition d'une liste d'adresses en plusieurs colonnes.

Salut,
Merci pour ta réponse !
En effet cela résous mon problème de lignes en trop ou en moins, c'est parfait !
Pourrais-je te demander de m'expliquer quelque peu le fonctionnement de ta macro ?
Un grand merci d'avance !

Bonne soirée
 
Re : Transposition d'une liste d'adresses en plusieurs colonnes.

Salut Sparga,
Voici le fichier commenté.
En fait, je teste chaque cellule.
Si c'est un numéro, alors cela implique le début d'une nouvelle adresse, je commence alors à ligne+1 et à colonne 2
alors,
Si la cellule est vide, alors on passe à la suivante sinon,
on copie les données de la cellule et on la colle en fonction des variable de ligne et de colonne.
ainsi de suite jusqu'à la fin ....
Cordialement
Lolote83
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
455
Réponses
18
Affichages
134
Réponses
2
Affichages
214
Réponses
17
Affichages
878
Retour