Bonsoir,
Pour le moment votre code reste un peu obscur et mon problème se complique..
Le traitement ne se fait plus sur 2 colonnes mais sur 5.
Je ne sais pas comment aligner le résultat obtenu via votre code avec les informations contenues en colonne [C, D, E] (elles sont toujours groupées).
Tout en ne faisant rien pour les résultats qui ne peuvent être associés à aucune autre information (Colonnes C, D, E vides) ou inversement : associer les infos des colonnes C, D, E à une cellule vide, si la cellule n'est pas remplie.
Ça se corse un peu plus, j'espère que ce que je cherche à faire n'est pas trop abstrait...
Je joins un fichier, sans modification du code, car j'avoue ne pas bien le comprendre... simplement en modifiant et ajoutant des données dans le tableau.
Ici je joins le code avec mes annotations (si vous souhaitez y répondre)
Sub group()
Dim aa, i&, a&, mem$, adr$
With Feuil1
aa = .Range("A2:C" & .UsedRange.Rows.Count)
End With
For i = 1 To UBound(aa) '(pourquoi utiliser UBound plutôt que simplement aa ?)
If aa(i, 2) <> "" Then
mem = aa(i, 2): aa(i, 2) = "" 'mem (mémoire) = ligne i (col2) jusqu'à ligne i (col 2) (pourquoi utiliser 2 fois i, qui semble être la même valeur ?)
For a = i + 1 To UBound(aa)
If aa(a, 1) <> "" Then aa(a, 2) = mem & aa(a, 1): aa(a, 1) = "" 'Si cellule A (i) <> "" alors B(i) = B(i) & A:i jusqu'à ce que A(i) = ""
If a = UBound(aa) Then i = a: GoTo 1 'A partir de là, je pense comprendre le processus de fin
If aa(a + 1, 2) <> "" Then i = a: GoTo 1
Next a
End If
1 Next i
Feuil2.Cells(2, "E").Resize(UBound(aa), UBound(aa, 2)) = aa
End Sub