XL 2013 Macro qui compare deux tableaux et supprime des lignes selon un critère.

manu49300

XLDnaute Nouveau
Bonjour à tous.

Je recherche, s'il vous plaît, une macro qui permet de comparer deux tableaux.
Dans un premier tableau, j'ai la totalité de mes points de livraisons (variable sur le long terme) (onglet Total), avec un identifiant chiffré. Dans un deuxième tableau, j'ai mes points de livraisons déclarés ouverts à J+2 (onglet ouv). Il faudrait que la macro mise dans un bouton sur un troisième onglet, compare les identifiants des points de livraison et supprime dans le premier onglet, les lignes correspondantes aux identifiants qu'elle n'a pas trouvé dans le deuxième (donc les points de livraisons fermés).
La difficulté étant, que l'ordre des identifiants n'est pas le même.
En vous remerciant par avance.
 

Pièces jointes

  • Classeur3.xlsx
    9.7 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Manu,
Un essai en PJ avec :
VB:
Sub Worksheet_Activate()
    Dim Formule$, DL%
    Application.ScreenUpdating = False
    Cells.Clear
    With Sheets("Total")
        DL = .Cells(.Cells.Rows.Count, "B").End(xlUp).Row
        .Range("B1:G" & DL).Copy
        [B1].Select: ActiveSheet.Paste
    End With
    [A1].Select
    With Range("A2:A" & DL)
        Formule = "=SI(NB.SI(OUV!D:D;B2)>0;CAR(1);0)"
        .FormulaLocal = Formule
        .EntireRow.Sort .Cells, xlDescending
        .SpecialCells(xlCellTypeFormulas, 2).EntireRow.Delete
        .ClearContents
    End With
End Sub
La macro s'exécute automatiquement lorsqu'on sélectionne la feuille PARAM.
 

Pièces jointes

  • Manu.xlsm
    16.7 KB · Affichages: 2

manu49300

XLDnaute Nouveau
Bonjour Manu,
Un essai en PJ avec :
VB:
Sub Worksheet_Activate()
    Dim Formule$, DL%
    Application.ScreenUpdating = False
    Cells.Clear
    With Sheets("Total")
        DL = .Cells(.Cells.Rows.Count, "B").End(xlUp).Row
        .Range("B1:G" & DL).Copy
        [B1].Select: ActiveSheet.Paste
    End With
    [A1].Select
    With Range("A2:A" & DL)
        Formule = "=SI(NB.SI(OUV!D:D;B2)>0;CAR(1);0)"
        .FormulaLocal = Formule
        .EntireRow.Sort .Cells, xlDescending
        .SpecialCells(xlCellTypeFormulas, 2).EntireRow.Delete
        .ClearContents
    End With
End Sub
La macro s'exécute automatiquement lorsqu'on sélectionne la feuille PARAM.
Bonjour Sylvanu, merci pour ta proposition. Ce n'est pas vraiment ce que je recherche, mais je n'ai peut-être pas été clair. En effet, il faudrait vraiment que la macro supprime les lignes dans le premier onglet. Là je retrouves dans l'onglet param mes points de livraisons fermés. Et si possible, mettre la macro dans un bouton sur l'onglet Param, car cela va s'insérer dans un fichier excel beaucoup plus gros. Merci
 

Pièces jointes

  • Manu.xlsm
    17.1 KB · Affichages: 2

Discussions similaires

Statistiques des forums

Discussions
313 225
Messages
2 096 345
Membres
106 581
dernier inscrit
Mado777