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

Résolu
Kenshin -  
 Kenshin -
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. Kenshin
     
    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
  2. Heremion Messages postés 564 Statut Membre 102
     
    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
  3. Kenshin
     
    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Heremion Messages postés 564 Statut Membre 102
     
    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
  6. Kenshin
     
    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
  7. Heremion Messages postés 564 Statut Membre 102
     
    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
  8. Heremion Messages postés 564 Statut Membre 102
     
    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
  9. Kenshin
     
    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
  10. Heremion Messages postés 564 Statut Membre 102
     
    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
  11. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  12. Kenshin
     
    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