Comparer deux listes avec 'variable

Bonjour,

Je souhaiterais savoir s'il est possible de créer une macro pour comparer deux listes et en extraire les différences sous forme de msgbox.

J'ai un listing de plus de 600 lignes à vérifier régulièrement.

La colonne A correspond au nom du site

Les colonnes B & C correspondent à des semaines.

Dans l'exemple :

aaaa sera contrôle semaine 1

bbbb sera contrôlé semaine 2

cccc sera contrôle semaine 2

Ce que je souhaiterai, c'est m'assurer que le contrôle sur chaque site a bien été planifié et sortir sous forme de msgBox les sites qui ne le sont pas.

Ici par exemple gggg n'est pas planifié

Le problème c'est que chaque site peut être programmé soit en Semaine 1 ou 2

Ci-joint un exemple avec ce que j'ai déjà essayé de faire sans succès.

Merci pour votre aide

Jeremy

Bonjour voici une proposition

fred

Sub compare()
Dim i As Integer
Dim non_planifier As String

With Sheets(1)
For i = 2 To .Range("A65536").End(xlUp).Row
If IsEmpty(.Range("B" & i)) = True And IsEmpty(.Range("C" & i)) = True Then non_planifier = non_planifier & .Range("A" & i) & vbCr
Next
If non_planifier <> "" Then MsgBox ("PAS de PLANIFICATION pour le(s) site(s) suivant(s) :" & vbCr & non_planifier)
End With
End Sub

Bonjour Fred,

Proposition qui fonctionne parfaitement à une exception, que je n'ai pas pensé à mentionner.

En colonne A de la feuil1, je peux avoir des sites qui n'ont pas besoin d'être planifiés.

C'est pourquoi, je cherchais à comparer par rapport à la colonne A feuil2

En gros :

Les valeurs de la colonne A feuil2 doivent être trouvées en colonne A feuil1 avec en colonne B ou C la valeur "£" (carré en wingdings)

Le listing de la Feuil2 me sert de base pour trouver tous les sites qui doivent avoir été planifiés

la prochaine fois merci d'etre plus clair dès le départ....

voici une proposition

fred

Sub compare()
Dim i As Integer
Dim trouve As range
Dim non_planifier As String
On Error Resume Next
With Sheets(1)
For i = 2 To .Range("A65536").End(xlUp).Row

    Set trouve = Sheets(2).Columns("A:A").Cells.Find(.Range("A" & i), lookat:=xlWhole)
    If trouve Is Nothing Then 'si valeur non trouvée
    'rien faire
    Else 'sinon tester si planification a été faite
        If IsEmpty(.Range("B" & i)) = True And IsEmpty(.Range("C" & i)) = True Then non_planifier = non_planifier & .Range("A" & i) & vbCr
    End If

Next
'affiche message
If non_planifier <> "" Then MsgBox ("PAS de PLANIFICATION pour le(s) site(s) suivant(s) :" & vbCr & non_planifier)
'libératio de la mémoire
Set trouve = Nothing
End With
End Sub

Désolé de n'avoir été clair de suite.

Merci pour ton aide ca fonctionne parfaitement.

Bonne fin de journée

Jeremy

Rechercher des sujets similaires à "comparer deux listes variable"