VBA - Ajout d'une condition IF
Résolu
zekehel
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
zekehel Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
zekehel Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai récupéré des bouts de codes un peu partout afin de constituer une macro qui me convienne.
Découvrant ainsi ce monde vaste de Virtual Basic, je dois faire face à une colle.
J'ai un fichier de +- 700 lignes dans lequel je met en couleur des cases fusionnées sur une seule colonne en fonction d'un code couleur fixe.
Seulement, il se peut que nous rencontrions la même valeur d'une cellule à l'autre, et je souhaiterais ne pas incrémenter la couleur actuelle.
Alors j'ai pensé au rajout d'une condition IF :
"si la valeur de la case précédente est la même que l'actuelle, alors même couleur, sinon on continue le code couleur."
Tout cela sans modifier la mise en forme de la cellule.
Mais j'ai du mal à interpréter ce morceau de code pour en faire ce que j'en veux :
Auriez vous une idée ?
J'ai récupéré des bouts de codes un peu partout afin de constituer une macro qui me convienne.
Découvrant ainsi ce monde vaste de Virtual Basic, je dois faire face à une colle.
J'ai un fichier de +- 700 lignes dans lequel je met en couleur des cases fusionnées sur une seule colonne en fonction d'un code couleur fixe.
Seulement, il se peut que nous rencontrions la même valeur d'une cellule à l'autre, et je souhaiterais ne pas incrémenter la couleur actuelle.
Alors j'ai pensé au rajout d'une condition IF :
"si la valeur de la case précédente est la même que l'actuelle, alors même couleur, sinon on continue le code couleur."
Tout cela sans modifier la mise en forme de la cellule.
Mais j'ai du mal à interpréter ce morceau de code pour en faire ce que j'en veux :
'mettre des couleurs dans la colonne de droite 'compteur2 servira à compter le nombre de cases où on en est 'stock servira à garder en mémoire le nom de la cellule compteur2 = 0 stock = "" For i = 4 To 723 If Not (Split(pep.Cells(i, 6).MergeArea.Address, ":")(0) = stock) Then stock = Split(pep.Cells(i, 6).MergeArea.Address, ":")(0) If compteur2 = 12 Then comtpeur2 = 1 Else compteur2 = compteur2 + 1 End If pep.Range(Split(pep.Cells(i, 6).MergeArea.Address, ":")(0)).Interior.Color = choisir_couleur_modulo(compteur2) End If Next i
Auriez vous une idée ?
A voir également:
- VBA - Ajout d'une condition IF
- Excel cellule couleur si condition texte - Guide
- Demande d'ajout snap qui disparait ✓ - Forum Snapchat
- Ajout rapide snap - Forum Snapchat
- Ajout snap sans rien d'écrit - Forum Snapchat
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, en ligne 7, tu testes si tu restes ou pas dans la même case fusionnée.
je pense qu'il te suffit de tester ensuite si la valeur de la case est différente de la valeur de la case précédente, et ne modifier compteur2 que si la valeur a changé.
exemple:
je pense qu'il te suffit de tester ensuite si la valeur de la case est différente de la valeur de la case précédente, et ne modifier compteur2 que si la valeur a changé.
exemple:
compteur2 = 0 stock = "" ancienne="" For i = 4 To 723 If pep.Cells(i, 6).MergeArea.Address <> stock Then stock = pep.Cells(i, 6).MergeArea.Address if ancienne <> pep.Cells(i, 6).MergeArea.Cells(1, 1).Value then If compteur2 = 12 Then comtpeur2 = 1 Else compteur2 = compteur2 + 1 End If ancienne=pep.Cells(i, 6).MergeArea.Cells(1, 1).Value end if pep.Cells(i, 6).MergeArea.Interior.Color = choisir_couleur_modulo(compteur2) End If Next i