Concaténation automatique de plusieurs cellules

ghaisse

XLDnaute Nouveau
Bonjour à tous,

Voici ce que je souhaite faire :
Concaténer le contenu des cellules de ma colonne A, dont le nombre de lignes peut varier, pour avoir le résultat de cette concaténation dans ma cellule C1.

Chaque cellule de ma colonne A contient une adresse email (terminée par un point-virgule) que je souhaite rassembler en C1 dans le but de faire une liste de destinataires que je collerai ensuite dans le champ destinataire d'Outlook pour l'envoi d'un email.

Pouvez-vous m'aider, svp ?
 

Modeste

XLDnaute Barbatruc
Re : Concaténation automatique de plusieurs cellules

Bonjour ghaisse,

Si tu acceptes de sortir d'Excel provisoirement, voici une solution:
- copier ta colonne A
- ouvrir Word --> Edition --> Collage spécial --> Texte sans mise en forme
- Edition --> Remplacer (Ctrl+H)
- dans la zone rechercher: ^p
- dans la zone remplacer: rien du tout, puisque tu as déjà les ';' après chaque adresse
- Remplacer tout

D'autres propositions suivront sans doute ... ou précéderont

Modeste
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Concaténation automatique de plusieurs cellules

Bonjour ghaisse , modeste,

une solution par macro en fichier joint
 

Pièces jointes

  • a1.xls
    25.5 KB · Affichages: 295
  • a1.xls
    25.5 KB · Affichages: 242
  • a1.xls
    25.5 KB · Affichages: 240
Dernière édition:

tbft

XLDnaute Accro
Re : Concaténation automatique de plusieurs cellules

Bonjour

On peut aussi faire une fonction. Il reste plus qu'a l'utiliser comme une fonction native d'excel...

Code:
Function concatenation(liste, separateur)
Dim res As String
Dim i As Long, nb As Long
  nb = UBound(liste.Value)
  For i = 1 To nb
    If liste(i, 1).Value <> "" Then
      If res <> "" Then res = res + separateur
      res = res + liste(i, 1).Value
    End If
  Next i
  concatenation = res
End Function
 

GCFRG

XLDnaute Occasionnel
Re : Concaténation automatique de plusieurs cellules

Salut, tu peux faire çà aussi.
Sub essai()
Dim Tmp As String, Temp As String, i As Integer
With Sheets("Feuil1")
For i = 1 To .Range("a" & .Rows.Count).End(xlUp).Row
If .Range("a" & i).Value = vbNullString Then GoTo suite
Tmp = .Range("a" & i).Value
Temp = Temp & ";" + Tmp
suite:
Next i
.Range("C1").Value = Temp
End With
End Sub

Gilbert
 

Discussions similaires

Réponses
3
Affichages
194

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz