Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Concaténation automatique de plusieurs cellules

  • Initiateur de la discussion Initiateur de la discussion ghaisse
  • 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 !

G

ghaisse

Guest
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 ?
 
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
 
Re : Concaténation automatique de plusieurs cellules

Les 2 solutions me conviennent.
J'ai quand même une préférence pour le VBA qui évite beaucoup de manipulations, et qui est plus fiable.
Merci beaucoup pour votre aide.
 
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
 
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
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
12
Affichages
650
Réponses
1
Affichages
189
Réponses
4
Affichages
248
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…