Condition VBA
Bonjour à tous,
déjà désolé si la question a été posée et pour le titre pas super explicite, j'ai pas vraiment trouvé mieux.
En fait mon problème est super simple, mais je cale dessus depuis un petit temps déjà, je vous explique (de manière simplifiée):
J'ai dans une colonne les 26 lettres de l'alphabet, certaines en noir, d'autres en rouge. Je voudrais obtenir le résultat tel que je l'ai commencé dans le fichier. C'est-à-dire que lorsque je trouve une lettre rouge, je vérifie les suivantes et si elles sont rouges, j'écris quelque part toutes les combinaisons (par 2) des lettres rouges successives, jusqu'à la prochaine lettre noire qui ne rentre pas dans ces combinaisons.
Ensuite, je cherche la prochaine lettre rouge, et ainsi de suite jusqu'à la fin de ma liste. Je sais pas si c'est super explicite, mais l'exemple dans le fichier doit être plus clair
J'ai déjà essayé pas mal de truc avec des boucles, mais impossible d'écrire toutes les combinaisons quelque part. SI quelqu'un avait un peu de temps à me consacrer pour régler ça, ça m'aiderait grandement !!
Merci de ta réponse. Je ne pense pas non, si la couleur de A devenait rouge, je voudrais rajouter à ma liste la combinaison ab et ac en fait.
En gros, si j'ai 3 rouges d'affilé (ex. a, b et c), il faut que j'arrive à ça (dans les colonnes C et D par exemple)
Colonne C Colonne D
A B
A C
B D
Ensuite si j'ai une seule lettre noire
N'hésite pas à me dire si ce n'est toujours pas clair pour toi
SI jamais je peux donner le code que j'ai commencé à écrire, mais il est pas fort concluant
Bon à force de persévérance j'y suis arrivé seul
Voici le code pour ceux à qui ça pourrait servir dans le futur:
Sub tri()
Dim ligne As Integer, i As Integer, j As Integer
j = 1
For ligne = 1 To Sheets("feuil1").Range("A1").End(xlDown).Row - 1
If Sheets("feuil1").Cells(ligne, 1).Font.ColorIndex = 3 Then
i = ligne + 1
Do Until Sheets("feuil1").Cells(i, 1).Font.ColorIndex <> 3
Sheets("feuil1").Cells(j, 7).Value = Sheets("feuil1").Cells(ligne, 1).Value
Sheets("feuil1").Cells(j, 8).Value = Sheets("feuil1").Cells(i, 1).Value
i = i + 1
j = j + 1
Loop
End If
Next
End Sub
