XL 2016 Comparaison de feuilles avec ajout / suppression de lignes

Denaizzz

XLDnaute Nouveau
Bonjour à tous.

Je pense que la question a déjà été posée 1000 fois, mais j’ai déjà tellement lu de post que je me suis perdu et je préfère repartir de zéro...

Dans un même fichier, j’ai une 1ère feuille nommé « Extraction ». Celle ci va chercher dans un autre fichier une liste des membres du personnel (issus de la RH et mis à jour en temps réels). Cette Extraction est faite via Power Query : Matricule, Nom, prénom, Ancienneté, site d’affectation.
Je souhaite ajouter d’autres colonnes mais avec Power Query, impossible.

J’ai donc, dans ce même fichier une Seconde feuille « Causeries » qui va me le permettre...

Je souhaite donc réaliser une macro en VBA qui va me permettre de comparer les deux feuilles (via le Num de Matricule en colonne A).

Si le num de Matricule disparaît de la feuille Extraction, on supprime toute la ligne correspondante sur la feuille Causeries.
Inversement, si un nouveau matricule apparaît dans la feuille Extraction, une nouvelle ligne contenant le matricule, le nom, prenom, etc... apparaît dans la feuille Causeries...


Merci d’avance, ça fait 1 semaine que je cherche ...

Cdt
Dénis
 

zebanx

XLDnaute Accro
Re

Modifié. A mettre dans ton code principal, tu dois pouvoir terminer ce travail ;)

@+

VB:
Sub Macro3()

With Sheets("Causeries")
.Activate
dercol = Range("A5").End(2).Column
derligne = Cells(Rows.Count, 1).End(3).Row
Range(Cells(5, 1), Cells(derligne, dercol)).Sort Key1:=Range("B6"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
.Cells(Cells(Rows.Count, 1).End(3).Row, 1).Select
End With

With Sheets("Extraction")
.Activate
dercol = Range("A5").End(2).Column
derligne = Cells(Rows.Count, 1).End(3).Row
Range(Cells(1, 1), Cells(derligne, dercol)).Sort Key1:=Range("B6"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
.Cells(Cells(Rows.Count, 1).End(3).Row, 1).Select
End With
 

Pièces jointes

  • fichier_v3.xls
    85.5 KB · Affichages: 31

Discussions similaires

Réponses
5
Affichages
102
Réponses
10
Affichages
213

Statistiques des forums

Discussions
312 161
Messages
2 085 852
Membres
103 005
dernier inscrit
gilles.hery