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

Concatener en inserant un carractere entre les cellules

  • Initiateur de la discussion Initiateur de la discussion Océane
  • 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 !

Océane

XLDnaute Impliqué
Bonjour
Comme dans l'exemple joint, je voudrais créer une liste de contact prête a recopier dans ma messagerie.
Pour cela la formule concatener fonctionne, mais il faudrait que je puisse ajouter un ; entre chaque adresse...
Cela est -il possible sans macro?
Merci d'avance
 

Pièces jointes

Re : Concatener en inserant un carractere entre les cellules

Bonjour à tous,

Une autre solution avec une fonction personnalisée CONCAT (qu'on trouvera aussi dans l'utilitaire de macros complémentaires "Morefunc" sous le même nom), son code est:
Code:
Function Concat(plage As Range, Optional séparateur As String) As String
    Dim rep As String, c As Range
    For Each c In plage
        If c.Value <> "" Then
            rep = rep & c.Value & séparateur
        End If
    Next c
    Concat = Left(rep, Len(rep) - Len(séparateur))
End Function

et en application dans le fichier attaché...

Cordialement
 

Pièces jointes

Re : Concatener en inserant un carractere entre les cellules

Bonjour Océane, camarchepas,

Voici deux fonctions macros :

Code:
Function CONCATV(plage As Variant) As String
plage = Application.Transpose(plage)
CONCATV = Join(plage, ";")
End Function

Function CONCATH(plage As Variant) As String
plage = Application.Transpose(plage)
plage = Application.Transpose(plage)
CONCATH = Join(plage, ";")
End Function
Fichier joint.

Edit : salut hbenalia

A+
 

Pièces jointes

Re : Concatener en inserant un carractere entre les cellules

Re, salut David 🙂

Quelques modifications qui permettent :

- d'utiliser des plages illimitées

- de ne pas tenir compte des cellules vides.

Code:
Function CONCATV(plage As Variant) As String
Set plage = Intersect(plage, ActiveSheet.UsedRange)
plage = Application.Transpose(plage)
CONCATV = Replace(Application.Trim(Join(plage)), " ", ";")
End Function

Function CONCATH(plage As Variant) As String
Set plage = Intersect(plage, ActiveSheet.UsedRange)
plage = Application.Transpose(plage)
plage = Application.Transpose(plage)
CONCATH = Replace(Application.Trim(Join(plage)), " ", ";")
End Function
Fichier (2).

A+
 

Pièces jointes

Re : Concatener en inserant un carractere entre les cellules

Bonjour à tous
Merci les spécialistes en macro, mais je ne suis pas très à l'aise, dans ce style, alors je choisir la solution : formule.
J'ai établi une règle dans l'exemple ci-joint, est-il possible de réaliser la même chose directement avec l'assistant ?
 

Pièces jointes

Re : Concatener en inserant un carractere entre les cellules

Re Océane,

Tant pis si vous n'aimez pas les macros...

Laurent Longre a créé une fonction MCONCAT dans Morefunc (voyez sur le web).

Elle concatène les éléments d'une matrice.

Cette fonction fait à peu près la même chose :

Code:
Function MATCONCAT$(plage, separateur$)
Dim tablo(), t, n&
Set plage = Intersect(plage, ActiveSheet.UsedRange)
ReDim tablo(Application.CountA(plage) - 1)
plage = plage 'matrice, plus rapide
For Each t In plage
  If Not IsEmpty(t) Then tablo(n) = t: n = n + 1
Next
MATCONCAT = Join(tablo, separateur)
End Function
Fichier (3).

PS : je n'ai jamais entendu parler de l'Assistant concaténer 😕

A+
 

Pièces jointes

Dernière édition:
Re : Concatener en inserant un carractere entre les cellules

Ce n’est pas que je déteste les macro, au contraire je trouve çà magique quand on ne peux pas faire autrement; c'est tout simplement que je ne les maitrises pas...
Effectivement il n'y a pas d'assistant "concatener"; je voulais parler de l'assistant en général pour établir une formule.



Toujours est-il que la fonction MATCONCAT correspond exactement à mon besoin. Merci encore
 
Re : Concatener en inserant un carractere entre les cellules

Re,

Notez que j'ai modifié la macro du post #8, une ligne était inutile.

Voyez aussi MCONCAT, on peut télécharger Morefunc gratuitement.

Mais pas sûr que ce soit possible sur Excel 2007/2010.

A+
 
Re : Concatener en inserant un carractere entre les cellules

En prenant modèle sur la formule en C3, de l'exemple joint, je voudrai en C11 créer la même chose avec les données de la plage A11:B13...
Comment faire, je dois avoir un Pb d syntaxe...
 

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

  • Question Question
Microsoft 365 Problème Code VBA
Réponses
9
Affichages
561
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…