Concaténer une liste de mot rapidement

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

MJ13

XLDnaute Barbatruc
Bonjour à tous

J'ai une liste de mots avec pour certains des tirets pour les mots composés les uns au desus des autres. Comment rapidement en VBA puis-je ajouter en colonne B les mots à reconstituer quand il y a un tiret?

Il doit s'agir d'un tableau, mais cela me dépasse un peu 😱.

Merci d'avance 🙂.
 

Pièces jointes

Dernière édition:
Re : Concaténer une liste de mot rapidement

Bonjour Michel,

Peut-être

Code:
Sub TestConcatener()
Dim Mots, i As Long, Mots2() As String
    Mots = Range("A1").CurrentRegion.Value
    ReDim Mots2(1 To 1)
    For i = LBound(Mots) To UBound(Mots)
        If i < UBound(Mots) Then
            If Mots(i + 1, 1) = "-" Then
                Mots2(UBound(Mots2)) = Mots(i, 1) & Mots(i + 1, 1) & Mots(i + 2, 1)
                ReDim Preserve Mots2(1 To UBound(Mots2) + 1)
            Else
                If Mots(i, 1) <> "-" Then
                    If i > LBound(Mots) Then
                        If Mots(i - 1, 1) <> "-" Then
                            Mots2(UBound(Mots2)) = Mots(i, 1)
                            ReDim Preserve Mots2(1 To UBound(Mots2) + 1)
                        End If
                    Else
                        Mots2(UBound(Mots2)) = Mots(i, 1)
                        ReDim Preserve Mots2(1 To UBound(Mots2) + 1)
                    End If
                End If
            End If
        End If
    Next i
    If Mots(UBound(Mots) - 1, 1) <> "-" Then Mots2(UBound(Mots2)) = Mots(UBound(Mots), 1)
    Range("B1:B" & UBound(Mots2)).Value = Application.Transpose(Mots2)
End Sub

Edit : Bonjour Staple, pas compris la même chose mais je ne suis pas sûr que ce soit ça de mon côté non plus 😉
 
Dernière édition:
Re : Concaténer une liste de mot rapidement

Bonjour

Si j'ai bien compris , essais ceci
Code:
Sub a()
Dim arrCel, StrC$
arrCel = Range([A1], [A65536].End(xlUp)).Value
StrC = Join(Application.Transpose(arrCel), "-")
MsgBox StrC 'pour test
[B1] = StrC
End Sub

EDITION: Bonjour tototiti2008, je crois que tu as eu la comprenette plus facile que moi sur ce coup là, bravo 😉
 
Re : Concaténer une liste de mot rapidement

Bonjour Tototiti, Jean-Marie

Merci à vous deux pour ces codes 🙂.

J'ai pris celui de Tototiti (que j'engrange bien évidemment) qui en 0,2 seconde me traite plus de 30 000 cellules, ça décoiffe 😱.

Je garde ceui de JM aussi 🙂.
 
- 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

Réponses
4
Affichages
320
Réponses
1
Affichages
499
Retour