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 !!

Bonsoir,

Est-ce que ce que tu veux obtenir correspond à ça ? (Si la couleur de A change ?)

sans titre 1

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 , j'oublie les lettres rouges précédentes et je recommence pour les prochaines lettres rouges (ex F et E) que j'ajoute à la liste commencée ci-dessus.

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

Rechercher des sujets similaires à "condition vba"