Macro concaténation

Pierre1000 -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai un problème pour configurer une macro concaténation. Ayant une liste de plus de 1000 entrées, je ne peux pas concaténer ligne après ligne...

J'ai un tableau d'adresses de clients que j'aimerais pouvoir convertir en doc google pour en faire une carte. Mais pour cela, j'ai besoin d'une première colonne indiquant clairement l'adresse sous la forme suivante : 1 Rue de Paris, 75000 Paris, France.

Et actuellement: j'ai l'adresse divisée en 2 colonnes:
A: 1, Rue de Paris
B: 75000 Paris, France

J'aurais donc besoin de fusionner la colonne A et B en gardant le contenu, et en sachant que le contenu de la colonne B est toujours identique.

N'est-il pas simplement possible de faire répéter la formule Concaténer =CONCATENER(A; " "; B) tout au long d'une même colonne sans avoir à spécifier à chaque fois =CONCATENER(A13; " "; B13) etc. ???

Ou est-il possible de créer et exécuter une macro correspondante ?

Un grand merci d'avance !

pierre1000

A voir également:

2 réponses

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour

1/veux tu remplacer les colonne A & B par la cpncaténation dans col A ou veux tu concaténer dans une autre colonne que A et B ?

2/ quand tu écris:
le contenu de la colonne B est toujours identique.
cela veut il dire que l'on a toujours "75000 Paris, France " ?

3/ est on bien dans les colonnes A et B(une macro demande à être précis) ?
0
Pierre1000
 
Bonjour,
Merci de ta réponse:
pour répondre à tes questions:

1) Oui, idéalement, je voudrais remplacer les colonnes A et B par une concaténation dans la colonne A qui intégrerait le contenu de la colonne B.
Mais ce n'est pas très important : je pourrais créer une colonne C avec le résultat de la concaténation des colonnes A et B, lesquelles je supprimerais ensuite. Ainsi, lorsque j'utilise la formule simple =Concaténer, le résultat est dans une nouvelle colonne. C'est d'ailleurs ce que je ferais si je n'avais que quelques entrées et pas plus de 1000.

2) Oui, je confirme bien que le contenu de la colonne B est toujours le même comme tu as compris.

3) Oui, on est bien dans les colonnes A et B (ce n'est pas à titre d'exemple).
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
si tu utilises une formule dans colonne C, tu auras une surprise quand tu supprimeras les colonnes A et B :o)

je vais de proposer une macro ; je reviens...
0
Pierre1000
 
Effectivement... ;-)
Toutefois, c'est un document de travail personnel, ce ne serait pas très grave si certaines colonnes étaient redondantes...
Merci !
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
re

voici la macro à essayer
Const lig_dep As Byte = 2 'ligne de départ du tableau (après l'ent^te éventuelle) 

Sub concat_colA_colB() 
Dim ville As String, der_lig As Integer, tablo 

'collecte données 
ville = Cells(lig_dep, 2) 
der_lig = Columns(1).Find("*", , xlFormulas, , xlByRows, xlPrevious).Row 
tablo = Application.Transpose(Range(Cells(lig_dep, 1), Cells(der_lig, 1)).Value) 

'concaténation dans la variable tableau 
For cptr = 1 To UBound(tablo) 
     tablo(cptr) = tablo(cptr) & ", " & ville 
Next 

'restitution 
Application.ScreenUpdating = False 
Range(Cells(lig_dep, 1), Cells(der_lig, 2)).Clear 
Cells(lig_dep, 1).Resize(UBound(tablo), 1) = Application.Transpose(tablo) 
Columns(1).AutoFit 
Columns(2).Delete 
     

End Sub 

Michel
0