Copie entre deux feuilles qui ne tient pas compte du filtre d'un tableau

Bonjour à tous,

Je suis nouveau sur le forum et totalement débutant en VBA, je m'y suis mis hier matin grâce à des MOOC et aux cours de ce site.

J'ai fait une recherche sur le forum mais je n'ai pas trouvé de réponse à ma problématique pour le moment.

J'ai un fichier avec une feuille ETAT-STOCK et une feuille INVENTAIRE.

La feuille ETAT-STOCK comprend un tableau avec plusieurs références d'articles et est le fichier de travail principal sur lequel les utilisateurs peuvent filtrer les données. C'est un tableau "vivant" dans lequel des références peuvent parfois être ajoutées ou supprimées.

La feuille INVENTAIRE sert plutôt de base documentaire avec photo des articles présents dans la feuille ETAT-STOCK.

J'aimerais réaliser une macro permettant de copier toutes les "Référence PS" et "Désignation PS" de la feuille ETAT-STOCK dans les deux premières colonnes de la feuille INVENTAIRE.

J'ai donc écrit :

Sub cp_inv()

Worksheets("ETAT-STOCK").Range("C:D").Copy Destination:=Worksheets("INVENTAIRE").Range("A:B")

End Sub

Jusque là, ça tout va bien.

J'ai nommé une 3e colonne "Photo" dans INVENTAIRE et j'y ai renseigné le nom des photos correspondantes.

Le problème que je rencontre, c'est que, une fois la copie effectuée, si je fais un tri sur le tableau de ETAT-STOCK qui change l'ordre des références, et que je refais une MAJ Inventaire avec la macro, je m'aperçois que l'ordre est aussi changé et que les photos ne correspondent plus du tout aux références.

J'aimerais écrire une macro qui :

  • réalise une copie "figée" dans INVENTAIRE et qui ne soit pas dépendante des éventuels tris dans le tableau ETAT-STOCK
  • puisse ajouter à la fin de la liste dans INVENTAIRE les éventuels ajouts de références renseignées dans ETAT-STOCK

Je vous remercie d'avance pour votre aide.

Bonjour et bienvenue sur le forum

Un essai à tester. Te convient-il ?

Bye !

Bonjour gmb,

Super, ça fait le boulot, merci !!

Je comprends ce que tu as fait au début mais à partir de la moitié ça devient compliqué... ça viendra.

Je vais rajouter une petite chose. En cas de suppression d'une ou plusieurs Référence PS dans ETAT-STOCK, est-ce qu'il serait possible de faire apparaître une MsgBox indiquant que les références en question ont été supprimées ?

Nouvelle version.

Bye !

6inventaire-v2.xlsm (29.70 Ko)

Bonjour gmb,

Merci pour ton retour.

Ça fontionne très bien tout ça

J'ai noté seulement un scénario où il y a un petit problème :

  • Scénario 1 : dans ETAT-STOCK , suppression de la ligne entière => OK
  • Scénario 2 : dans ETAT-STOCK , suppression du contenu de la cellule de la colonne C => OK
  • Scénario 3 : dans ETAT-STOCK , suppression du contenu de toute la ligne, sans supprimer la ligne => Dans ce cas, le message indique la suppression de toutes les références depuis le début jusqu'à la référence en question.

Par exemple, si je supprime tout le contenu de la ligne dont la référence est 14, le message indique :

Références supprimées sur ETAT-STOCK :

  • 11
  • 12
  • 13
  • 14

J'ai réussi à comprendre tout ce que tu as fait jusqu'à présent, mais je t'avoue que quand il s'agit d'en modifier le fonctionnement, c'est encore assez flou.

Bonjour

Nouvelle version.

Bye !

13inventaire-v3.xlsm (29.89 Ko)

Super, c'est parfait !

Merci infiniment

Rechercher des sujets similaires à "copie entre deux feuilles qui tient pas compte filtre tableau"