Macro suppression de ligne entre 2 feuilles

Bonjour a tous

Je recherche une solution, pour le problème suivant :

Je dispo d'un classeur avec 2 feuilles. La première feuille est ma feuille "data" elle rassemble les objets que je dispose , la seconde correspond aux "objets perdu".

Je souhaiterai créer une macro qui me permet de supprimer la ligne de mon objet dans la feuille "objet_Free" si celui se trouve dans la feuille "objet perdu"

PS: le critère serait le numéro de série et non pas le nom de l'objet

(Il s'agit d'un exemple, en réalité le tableau est bien plus important)

Merci par avance

Quentino

Bonjour,

Essayez ceci

Cdlt

C'est exactement ca dans idée, cependant je vois un problème.

Le premier c'est que l'ensemble de la ligne n'est pas supprimé. Ce qui engendre un problème dans mon tableau ,si j'ai plusieurs colones.

cependant je vois un problème. Le premier c'est que l'ensemble de la ligne n'est pas supprimé. Ce qui engendre un problème dans mon tableau ,si j'ai plusieurs colones.

Le problème surtout vient du fait que l'on se base à l'exemple que vous donnez, si vous ne décrivez pas le vrai contexte , vous n'obtiendrez que des solutions qui sont incomplètes ou du moins qui ne vous satisferont pas entièrement.

Alors mettez un tableau avec le nombre réel de colonnes.

C est une erreur de ma part. Mais dans cette situation je ne dispose pas d'un excel définitif.

J'aimerai si cela est possible le faire à travers un tableau, ce qu il me permettrai il me semble de modifier par la suite plus facilement.

merci avance

Quentino

Alors, si vous préférez un code plus simple, essayez celui-ci.

Le principe: A l'aide d'une formule ajoutée sur toute la colonne qui suit la dernière , on met la valeur "X" en face de chaque valeur absente de la liste des objets perdus, ensuite on fait un tri sur cette colonne, et il n'y a plus qu'à supprimer toutes les lignes qui ne comportent pas de "X"

Sub Objets_trouvés()
    Dim f1 As Worksheet
    Dim DerLig As Long, DerCol As Long
    Dim L As Range

    Application.ScreenUpdating = False
    Set f1 = Sheets("Objet_Free")
    DerLig = f1.Range("A" & Rows.Count).End(xlUp).Row
    DerCol = f1.Range("A1").End(xlToRight).Column
    f1.Range(Cells(2, DerCol + 1), Cells(DerLig, DerCol + 1)).FormulaR1C1 = "=IFERROR(MATCH(RC[-1],objet_Perdu!C2,0),""X"")"
    f1.Range(Cells(2, "A"), Cells(DerLig, DerCol + 1)).Sort [C1], 1
    Set L = f1.Columns(DerCol + 1).Find("X", LookIn:=xlValues, LookAt:=xlWhole)
    If Not L Is Nothing Then f1.Rows("2:" & L.Row - 1).Delete
    Columns(DerCol + 1).ClearContents
    Set f1 = Nothing
    Set L = Nothing
End Sub

Cdlt

Bonjour Quentino, Salut Arturo !

Je n'ai pas regardé le fichier mais je me dis que si vous mettiez votre tableau sous forme de tableau structuré, ça pourrait régler ce "problème" de gestion de dimension de la plage...

Cdlt,

Bonjour,

Une proposition Power Query à adapter !?

On ne supprime rien, on crée une nouvelle table.

Les données sont sous forme de tableaux structurés.

Cdlt.

Rechercher des sujets similaires à "macro suppression ligne entre feuilles"