Concaténer une liste de mot rapidement

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 :eek:.

Merci d'avance :).
 

Pièces jointes

  • Mots_Concaténer_Tiret.xls
    26 KB · Affichages: 40
Dernière édition:

tototiti2008

XLDnaute Barbatruc
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:

Staple1600

XLDnaute Barbatruc
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 ;)
 

MJ13

XLDnaute Barbatruc
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 :eek:.

Je garde ceui de JM aussi :).
 

Discussions similaires

Réponses
4
Affichages
158

Membres actuellement en ligne

Statistiques des forums

Discussions
312 677
Messages
2 090 825
Membres
104 677
dernier inscrit
soufiane12