Code vba pour condition

Résolu
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. 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
    1. 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
      1. Bonjour Gyrus,

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

        Bonne journée.
        Pascal
        0
        1. 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
          1. 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