Code vba pour condition

Résolu
pascalou83400 Messages postés 285 Date d'inscription   Statut Membre Dernière intervention   -  
pascalou83400 Messages postés 285 Date d'inscription   Statut Membre Dernière intervention   -
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

5 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  2. Gyrus Messages postés 3360 Statut Membre 526
     
    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
  3. pascalou83400 Messages postés 285 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonjour Gyrus,

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

    Bonne journée.
    Pascal
    0
  4. pascalou83400 Messages postés 285 Date d'inscription   Statut Membre Dernière intervention  
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. pascalou83400 Messages postés 285 Date d'inscription   Statut Membre Dernière intervention  
     
    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