Conditions dans VBA

Etienne2323

XLDnaute Impliqué
Bonjour à vous tous,
merci une fois de plus de me lire et de me donner un coup de main. Je suis encore dans mes débuts dans vb et votre aide est pour moi un apport considérable. Voici ma question aujourd'hui. J'aimerais savoir s'il existe une possibilité dans VB de faire une action comme celle-ci. J'aurais besoin que dans ma macro, si une cellule dans le range est en couleur, qu'il mette la même couleur dans la cellule de destination. Donc, comme dans l'exemple suivant, si une cellule comprise dans les 12 dernières lignes possède la couleur 15, alors il faut que la cellule de destination, soit la cellule Cells(8,7), se voit attribuer la couleur 15 également. Le 15 est un ton de gris. Quelqu'un pourrait m'éclairer sur le code à utiliser ?
Voici mon bout de code :

a = Range("O3").End(xlDown).Row
b = WorksheetFunction.Product(Range(Cells(a - 11, 15), Cells(a, 15)))
Cells(8, 7) = b - 1

Merci à vous !

Etienne
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Conditions dans VBA

Bonjour Étienne, bonjour le forum,

Peut-être avec un code de ce style :
Code:
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim x As Integer 'déclare la variable x
 
dl = Range("A65536").End(xlUp).Row 'définit la variable dl (sur la colonne A est-ce bien la bonne ? À adapter...)
If dl < 13 Then Exit Sub 'sécurité pour éviter les erreurs
 
For x = dl - 12 To dl 'boucle sur les 12 dernières cellules
    If Cells(x, 1).Interior.ColorIndex = 15 Then 'condition : si la couleur de la cellule est la 15
        Cells(8, 7).Interior.ColorIndex = 15 'colorie de gris la cellule destination
        Exit For 'sort de la boucle
    End If 'fin de la condition
Next x 'prochaine cellule de la boucle
 
'ton code
a = Range("O3").End(xlDown).Row
b = WorksheetFunction.Product(Range(Cells(a - 11, 15), Cells(a, 15)))
Cells(8, 7) = b - 1
 

Discussions similaires

Réponses
0
Affichages
170

Statistiques des forums

Discussions
312 380
Messages
2 087 819
Membres
103 665
dernier inscrit
gjoanou