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

2 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. 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
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
    3. Pierre1000
       
      Effectivement... ;-)
      Toutefois, c'est un document de travail personnel, ce ne serait pas très grave si certaines colonnes étaient redondantes...
      Merci !
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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