[Excel 2007] Mise en forme cond.. et liste

Résolu
Bonjour,

Je fait appel à vous afin de m'aider dans la création d'un tableau excel.

J'ai donc 2 tableaux (2 onglets).

- un ou je rentre des données sources à vérifer (à l'aide de l'autre tableau)
- l'autre est une référence

Dans le premier tableau j'ai par exemple dans la colonne A une liste de prénoms.
Je cherche à mettre en vert la cellule si le prénom se trouve également dans l'autre tableau (la référence) et en rouge si le prénom est nouveau.

Merci de votre aide :)

12 réponses

  1. Merci pour le fichier, par contre j'ai un petit problème. Je n'y vois ni formule, ni mise en forme conditionnelle.

    De plus, quand je saisie un prénom de la référence ou non, il met toujours en vert.

    Comment as-tu procéder pour mettre la "formule"?

    Merci :)
    0
    1. En fait, le code est dans une macro. Dans Affichage/Macro ou bien Developpeur/Macros, tu peux voir le code qui est exécuté.

      Pour préciser, le code qui est exécuté est le suivant :

      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim i, imax
      Dim j, jmax
      Dim trouve
      
          If Target.Column = 1 Then
              imax = Range("A65536").End(xlUp).Row
              jmax = Range("B65536").End(xlUp).Row
          
              For i = 2 To imax
              trouve = False
                  For j = 2 To jmax
                      If Cells(i, 1).Value = Cells(j, 2).Value Then
                          trouve = True
                      End If
                  Next j
                  If trouve Then
                      Cells(i, 1).Interior.ColorIndex = 4
                  Else
                      Cells(i, 1).Interior.ColorIndex = 3
                  End If
              Next i
          End If
      End Sub

      0
      1. ah d'accord, par contre je ne vois pas la Macro dans la liste.

        Sinon, comment puis-je la modifier pour qu'elle fasse appel à la colonne 2 de la feuille 2 dans Excel?

        Sinon une dernière chose, éxiste-t-il une alternative avec des formules?

        Merci.
        0
        1. Pour voir la macro,

          Fichier > Options > Personnaliser le ruban > Onglets Principaux > Sélectionner l'onglet Développeur > Valider

          Dans l'onglet Développeur > Visual Basic

          Après d'un point de vue formule, je n'ai pas encore trouvé le moyen de faire la même chose :/
          0
          1. ok merci, je la vois ce coup-ci :)
            Et donc maintenant, comment je pourrai la modifier pour qu'elle fasse appel à la colonne B de la feuille 2?

            Merci :)
            0
            1. Si tu souhaites travailler avec plusieurs feuille, il te faut préciser le "worksheet" depuis lequel tu récupères la donnée.

              Ainsi :
              - Worksheets(1) est ta première feuille
              - Worksheets(2) est ta deuxième feuille
              - Worksheets(2).Range("B2") est la cellule B2 de ta deuxième feuille etc...

              Attention! Si tu ne précises pas la feuille dont tu prends le Range(), ton code plantera.
              0
              1. En gros

                Private Sub Worksheet_Change(ByVal Target As Range)
                Dim i, imax
                Dim j, jmax
                Dim trouve
                
                    If Target.Column = 1 Then
                        imax = Worksheets(1).Range("A65536").End(xlUp).Row
                        jmax = Worksheets(2).Range("B65536").End(xlUp).Row
                    
                        For i = 2 To imax
                        trouve = False
                            For j = 2 To jmax
                                If Worksheets(1).Cells(i, 1).Value = Worksheets(2).Cells(j, 2).Value Then
                                    trouve = True
                                End If
                            Next j
                            If trouve Then
                                Worksheets(1).Cells(i, 1).Interior.ColorIndex = 4
                            Else
                                Worksheets(1).Cells(i, 1).Interior.ColorIndex = 3
                            End If
                        Next i
                    End If
                End Sub
                0
                1. OK merci beaucoup !

                  Par contre j'aurais une dernière question et pas des moindres (désolé je suis nul en macro ^^)

                  Comment je l'active ou je la rajoute dans l'onglet macro afin de la faire fonctionner?

                  Merci encore une fois :)
                  0
                  1. Dans Fichier > Options > Personnalisation du ruban > Onglets Principaux > Sélection de l'onglet Développeur

                    Une fois validé, l'onglet est apparu. Tu vas sur Visual Basic. Une nouvelle fenêtre va s'afficher. Double-clic sur la feuille 1 dans l'arborescence, cela va ouvrir une feuille.

                    Normalement, le code que j'y ai inscrit apparaitra.
                    0
                    1. Contributeur
                      bonjour
                      Solution sans macro avec des Mises en forme conditionnelles
                      https://www.cjoint.com/?3IpmmVZ0l0I

                      et si on tient à du VBA, pas besoin de boucles!!!

                      a moins que je n'ai pa compris la demande
                      0
                      1. La solution sans VBA me paraît plus simple à adapter à mon tableau.
                        Pour un novice comme moi, je pense que c'est la meilleure solution.
                        Merci à toi Heremion, cela dis :)

                        la formule de michel correspond tout à fait à ce que je voulais, merci beaucoup !
                        0