Copier des lignes d'un tableau selon une valeur

Bonsoir,

Je débute le VBA et je me heurt à un cas pratique qui pourtant peut paraître simple.

J'ai un tableau où je répercute toutes les livraisons fournisseurs (tous frns confondu). Chaque mois, j'envois leur performance.

L'idée est d'avoir pour chaque fournisseur un fichier (identique au fichier de base) mais avec seulement les réceptions le concernant.

Pour ce faire, j'ai le fichier général qui alimentera chaque fichier "fournisseur". Quand j'ouvre le fichier du fournisseur A, je souhaite activer une macro permettant de copier toutes les lignes du fournisseur A sur le fichier concerné (je pense insérer plus tard l'action qui se déroule dès l'ouverture du fichier).

Dans le fichier joint, j'ai mis l'exemple sur 3 colonnes. L'onglet "Data" qui représente le fichier général et l'onglet "Cible" qui représente le fichier du fournisseur A. Le but est de copier toutes les lignes du fournisseur A.

Pour ma part, je bloque sur la structure du code, j'imagine que je dois imbriquer une boucle, une variable et une condition (c'est le cumul de tout ça qui me jette un froid )

Je vous remercie pour votre aide (à terme j'aurais cette manip sur une centaine de fournisseur )

14supplier-test.xlsm (66.73 Ko)

Bonjour,

à tester,

Sub transfert()
Dim lignes_visibles  As Range, Var As String

  Var = "A"
  Sheets("Data").ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:="A"

  With Sheets("Data").ListObjects("Tableau1")
    .Range.AutoFilter Field:=1, Criteria1:=Var
    Set lignes_visibles = .DataBodyRange.SpecialCells(xlCellTypeVisible)

    k = Sheets("Cible").Cells(Rows.Count, 1).End(xlUp).Row + 1
    Sheets("Data").Range(lignes_visibles.Address).Copy Sheets("Cible").Range("A" & k)
  End With
End Sub

Bonsoir,

Merci pour ton retour. Cependant la macro génère une erreur, je ne sais pas vraiment sa signification. A priori il ne reconnait pas ListObjects("Tableau1")

re,

as-tu le même problème avec ce fichier ?

Bonsoir,

Désolé du retard

J'ai testé ta seconde version qui fonctionne parfaitement. Cependant dans mon entreprise on est pas très fan des "formats tableau automatique" (déjà que pour vendre une macro c'est chaud).

Entre temps j'ai retravaillé mon code est pu obtenir un bout de résultat. Cependant, pour reprendre ton travail, si je clique 2 fois, il recolle les données en dessous du premier collage, on a donc des doublons.

Est-ce possible de faire une boucle (ou une autre fonction), quand on lance la macro, vérifie si les lignes on déjà été copiée, si oui on passe à la suivante, si non on colle

Normalement ça contraint à créer une clé en concaténant 2 cellules pour avoir une valeur clé sur les deux tableaux.

Rechercher des sujets similaires à "copier lignes tableau valeur"