Comparer Deux feuilles Excel

solobomb

XLDnaute Nouveau
Bonjour alors je vous explique mon problème (j'ai déjà fait des recherches et je n'ai pas réussi à le résoudre). Je dois comparer deux bases de données sur deux feuilles différentes en faisant ressortir automatiquement les lignes qui ont disparu ou apparu (qui corresponde à une arrivée/départ d'un employé) et aussi les différences dans une colonne spécifique.

Voici un fichier similaire à celui que je dois comparer (même si il est beaucoup plus long en vrai).Comme vous le voyez LELIEVRE est parti, LEBOUC est arrivé, et LEBOEUF a changé d'agence. Voila ce que je voudrais faire ressortir automatiquement.


Si vous pouviez m'expliquer comment faire ce serait super cool parce que je dois faire une maccro qui fasse ça automatiquement. merci d'avance
 

Pièces jointes

  • Classeur1.xlsx
    9.1 KB · Affichages: 130
  • Classeur1.xlsx
    9.1 KB · Affichages: 129
  • Classeur1.xlsx
    9.1 KB · Affichages: 136

solobomb

XLDnaute Nouveau
Re : Comparer Deux feuilles Excel

Tu vas me prendre pour un débile mais la j'essaie de mettre un autre fichier à la place de PRESENT IND AVRIL donc je le met dans le même dossier comme tu m'as dit et je remplace ça Set wbks = Workbooks.Open(chemin & "\PRESENT IND AVRIL2011.xls") par ça Set wbks = Workbooks.Open(chemin & "\Effectif 01.2011 .xls.xls") c'est le nom de mon nouveau dossier et après je pense qui doit encore faire des manip pour la structure mais je sais pas trop quoi... Et je voulais savoir si c'était possible de faire une autre maccro permettant de masquer des colonnes en fonctions de leurs noms (par ex je ne garde que les colonnes nommées : nom , prénom , matricule et toutes les autres sont masquées )
 

solobomb

XLDnaute Nouveau
Re : Comparer Deux feuilles Excel

Mais le truc c'est que j'aurais bien aimer comprendre ce que tu fais parce que le truc que tu m'as déja fait est super mais je peux pas le montrer à mon chef je saurais rien lui expliquer . Donc voila un exemple de ce que je t'ai dit (c'est pour adapter la macro que tu as déja fait) et si tu pouvais me dire les manip a faire pour changer de feuill2 (j'ai essayé d'enlever le guillemet mais ca fait rien)
 

Pièces jointes

  • Effectif 01.2011.xls
    63.5 KB · Affichages: 111

Paritec

XLDnaute Barbatruc
Re : Comparer Deux feuilles Excel

Bonjour Solobomb le forum
que veux-tu que je te dise? tu veux des choses précises je te l'ai fait maintenant si tu veux faire croire à ton chef que c’est toi qui l'a réalisé !!!
je ne peux hélas rien pour toi, de deux choses l'une ou tu te mets au vba et là tu vas comprendre ma macro ou tu attends que cela tombe du ciel et là tu vas attendre à mon avis longtemps!!!
En plus à chaque fois que tu renvois un fichier, tu as l'intelligence de ne même pas remettre la macro, si tu penses que je vais la refaire à chaque fois là tu te mets le doigt dans l’œil, t'aider oui être pris pour un idiot non. (c'est la deuxième fois que je refais tout alors là stop)
bonne journée
a+
papou:)
 
Dernière édition:

bestsh

XLDnaute Nouveau
Re : Comparer Deux feuilles Excel

Bonsoir le forum, Bonsoir Paritec et solobomb.

tout d'abord je rejoins solobomb sur l'appropriation du travail ça m'a fait sourire lol
j'ai lu rapidement ton second problème paritec et ça viendrait peut être de l'espace dans ton fichier et du double xls non?

J'ai un autre problème en ce qui concerne la comparaison de fichiers pour ma part mais plus simple apparamment (quoique...je cherche encore :))

- J'ai une BDD avec un champ email
- J'ai un fichier qui regroupe des emails (Feuil1) et des domaines (Feuil2) à exclure

je souhaite mettre une macro qui va regarder dans le 2e fichier et qui m'efface toutes les lignes de ma bdd contenant l'email ou le domaine présent dans ce 2e fichier.

Pour que ce soit plus clair je vous joint un fichier si vous avez une idée.

Merci d'avance.
 

Pièces jointes

  • Exemple.xls
    21.5 KB · Affichages: 51
  • Exemple.xls
    21.5 KB · Affichages: 57
  • Exemple.xls
    21.5 KB · Affichages: 60

Paritec

XLDnaute Barbatruc
Re : Comparer Deux feuilles Excel

bonjour bestch le forum
il serait peut-être bon que tu lises les réponses afin de ne pas répondre à coté !!!
PHP:
tout d'abord je rejoins solobomb sur l'appropriation
je ne suis pas le demandeur mais celui qui répond alors que tu sois du coté Solobomb !!!
pour ta demande j'ai traité les domaines tu peux t'en inspirer pour faire l'autre feuille
Important: il faut que tes deux fichiers soit dans le même dossier
a+
papou:)
VB:
Sub supprimer()
    Dim i&, fin&, fin1&, wbks As Workbook, wbkc As Workbook, chemin$, aa As Variant, a&
    Set wbkc = ThisWorkbook
    chemin = ThisWorkbook.Path
    fin = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
    Set wbks = Workbooks.Open(chemin & "\Exclus.xls")
    aa = wbks.Sheets("Feuil1").Range("A2:A" & wbks.Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row)
    wbks.Close 0
    With ActiveSheet
        For a = fin to 2 step -1
            For i = 1 To UBound(aa)
                If Split(.Cells(a, 1), "@")(1) = aa(i, 1) Then .Cells(a, 1).Delete shift:=xlUp: GoTo 1
            Next i
1        Next a
    End With
End Sub
 
Dernière édition:

solobomb

XLDnaute Nouveau
Re : Comparer Deux feuilles Excel

C'est pas pour m'approprier ton travail mais pour savoir le refaire une prochaine fois sans avoir besoin de demander et j'ai vérifier ta macro c'est bizare des fois elle se trompe je comprends pas pourquoi Par ex elle affiche Mr ZHU parti alors qu'il est toujours la et n'a pas changé d'Agence et c'est pareil pour trois quatre autres.
 

Paritec

XLDnaute Barbatruc
Re : Comparer Deux feuilles Excel

Re Solobomb le forum
de toutes façons je te disais cela mais je m'en moque complètement, j'ai fait la macro pour toi pas pour moi !!!
par contre pour les erreurs éventuelles est-ce que tu n'as pas des différences d'orthographe ou d'espace ou ????
car je ne vois pas autre chose la macro si elle marche pour certain et pas pour d'autre ??
a te relire
a+
papou:)
 

Paritec

XLDnaute Barbatruc
Re : Comparer Deux feuilles Excel

Re Solobomb le forum
bah oui tu as raison il y avait une petite erreur dans le dimensionnement d'un des tableaux j'avais mis fin à la place de fin1 !!!
voilà c'est rentré dans l'ordre enfin vérifie
a+
papou:)
 

Pièces jointes

  • SolobombV2.zip
    173.1 KB · Affichages: 62
  • SolobombV2.zip
    173.1 KB · Affichages: 62
  • SolobombV2.zip
    173.1 KB · Affichages: 61

bestsh

XLDnaute Nouveau
Re : Comparer Deux feuilles Excel

Bonsoir le forum, papou, solobomb,


j'ai essayé ta macro pour ma part papou et j'ai quelques questions :

- Je souhaite vérifier la présence du domaine peu importe la ligne où il se trouve
>> Si abc@aaa.com dans la bdd en A10 et que aaa.com apparait en A2022, la macro efface la ligne.
- Lorsque je lance la macro elle m'a l'air de boucler sur une seule case (la dernière) et ne remonte pas car en mettant un msgbox sur la valeur de a on me ressort toujours la valeur de la dernière cellule..
- Je vois que tu refermes le fichier d'exclusion.. cela garde les valeurs en mémoire où?


code (personnalisé sur la colonne H):

Code:
Sub supprimer()
    Dim i&, fin&, fin1&, wbks As Workbook, wbkc As Workbook, chemin$, aa As Variant, a&
    Set wbkc = ThisWorkbook
    chemin = "C:\Users\user1\Documents\" 'ThisWorkbook.Path
    fin = ActiveSheet.Range("H" & Rows.Count).End(xlUp).Row
    Set wbks = Workbooks.Open(chemin & "bddexclu.xls")
    aa = wbks.Sheets("Feuil1").Range("A1:A" & wbks.Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row)
    wbks.Close 0
    With ActiveSheet
        For a = fin To 2 Step -1
            For i = 1 To UBound(aa)
            MsgBox Cells(a, 8).Value
                If Split(.Cells(a, 8), "@")(1) = aa(i, 1) Then .Cells(a, 8).Delete shift:=xlUp: GoTo 1
1            Next i
        Next a
    End With
End Sub
 

Paritec

XLDnaute Barbatruc
Re : Comparer Deux feuilles Excel

Bonjour Bestsh le forum
Mon cher Bestsh, tu te poses des questions sur ma macro?? Arrêtes de t'en poser et apprend déjà à recopier la macro que je t'ai envoyé comme il faut et après on reparlera de problème dans la macro si tu veux.
ce que j'ai écris ci-dessous:
Code:
If Split(.Cells(a, 8), "@")(1) = aa(i, 1) Then .Cells(a, 8).Delete shift:=xlUp: GoTo 1
            Next i
1        Next a
Ce que tu as recopié !!! si tu penses que c'est pareil, pas moi.
Code:
If Split(.Cells(a, 8), "@")(1) = aa(i, 1) Then .Cells(a, 8).Delete shift:=xlUp: GoTo 1
1            Next i
        Next a

Voilà rectifie et après teste et tu rediras si cela marche mieux.
a+
papou:)
 

Discussions similaires

Statistiques des forums

Discussions
312 377
Messages
2 087 745
Membres
103 658
dernier inscrit
Laurent2017