Code vba pour condition

Résolu/Fermé
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022 - 18 oct. 2015 à 10:38
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022 - 19 oct. 2015 à 12:19
Bonjour à tous,

Novice dans le code vba, je suis à la recherche pour une boucle déjà existante, qui récupére des données par des requêtes via query, le code pour réaliser la condition suivante :

Si dans les cellules de la colonne AK je rencontre "Notre Sélection", alors je colorie la cellule correspondante en C en vert.

Problème, j'ai beau récupérer toutes les infos à ce sujet, mais impossible de comprendre l'écriture du code.

je vous remercie pour votre aide.

Bon week end

Pascal
A voir également:

5 réponses

Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
Modifié par Mike-31 le 18/10/2015 à 11:22
Bonjour,
pourquoi veux tu passer par du VBA pour une mise en forme aussi simple, il suffit de sélectionner ta plage en C exemple C2:C30 et Mise en forme conditionnelle/ la formule est
=$AK2="Notre Sélection"
format/Remplissage/choisir la couleur
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
18 oct. 2015 à 11:38
Bonjour,

Voici un exemple de code avec commentaires
Sub Test()
Dim Cel As Range
'Nom de feuille à adapter
With Worksheets("Feuil1")
'Balayage de la colonne AK, jusqu'à la dernière cellule renseignée
For Each Cel In .Range("AK1:AK" & .Range("AK" & Rows.Count).End(xlUp).Row)
'Si la cellule contient "Notre Sélection"
If Cel.Value = "Notre Sélection" Then
'alors, remplir la cellule correspondante en colonne C en vert
.Cells(Cel.Row, 3).Interior.ColorIndex = 4
End If
Next Cel
End With
End Sub

A+
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
19 oct. 2015 à 08:47
Bonjour Gyrus,

Merci pour ta réponse, je vais essayer de mettre ce code dans la boucle.

Bonne journée.
Pascal
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
19 oct. 2015 à 11:22
Gyrus,


Bon j'ai réussi à l'inclure dans la boucle, mais mon problème est que quand j'actualiser les requêtes, cela me garde les cellules en vert même si je n'ai plus "notre sélection".
Donc j'ai écrit ce code , mais il n'en veut pas.

' Met les cellule en vert dans la colonne C si dans Colonne AK = "Notre Sélection"
Dim Cel As Range
'Nom de feuille à adapter ' Worksheets("Feuil1")'
With ActiveWorkbook.Worksheets(I)
'Balayage de la colonne AK, jusqu'à la dernière cellule renseignée
For Each Cel In .Range("AK18:AK" & .Range("AK" & Rows.Count).End(xlUp).Row)
'Si la cellule contient "Notre Sélection"
If Cel.Value = "Notre Sélection" Then
'alors, remplir la cellule correspondante en colonne C en vert
.Cells(Cel.Row, 3).Interior.ColorIndex = 4
Else
If Cel.Value = " " Then
.Cells(Cel.Row, 3).Interior.ColorIndex = xlNone
End If
Next Cel
End With


Et je profite de ce message pour un autre code qui ne fonctionne pas comme j'aurais voulu, je demande de mettre les filtres sur ma ligne 17, avec le code suivant :
Range("A17:A17").Select
With Selection
.AutoFilter
End With

Sauf que , comme je lui demande d'appuyer sur le bouton (enfin j'imagine) une fois il met le filtre et une fois il l'enlève.
Et je ne vois comment lui demandait de le mettre et basta ???

Merci pour ton aide.

A+

Pascal
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
19 oct. 2015 à 12:19
J'ai trouvé ce code , mais c'est toujours le même problème.

If Not Worksheets(I).AutoFilterMode Then Worksheets(I).[A17].AutoFilter


Et si dans le code .Cells(Cel.Row, 3).Interior.ColorIndex = 4 , je veux déclarer une plage de cellules (ex A à C), on l'écrit comment ?

Merci.
0