Copie de tableau sur fichier sans perturbation des colonnes non copié
Bonjour,
Cela fait 3 jours que j'essaye de crée un tableau mais je ne sais pas si ce que je veux faire est possible.
J'ai un classeur base de donnée, avec 3 colonnes A B et C (la référence du produit, le nom et le prix) cette base de donnée est utilisé dans plusieurs autre classeurs par la formule RechercheV mais j'ai besoin d'utilisé cette base de donnée pour une utilité mais je coince avec la limite des formules. J'aimerai crée un classeur inventaire, donc j'aimerai copier les produits de ma base de données sur mon fichier inventaire jusqu'à la pas de soucis mais le problème c'est que l'ajout de produit dans ma base de données ne se fait pas à la dernière ligne de mon tableau, je l'ai inséré a des endroit spécifique dans mon tableau, la mise à jour ce fait entre les 2 fichier mais dans mon fichier inventaire j'ai la colonne D avec mon inventaire lorsque la mise a jour ce fait les valeurs de ma colonne D n'est plus en adéquation avec les produits (ex si j'ajoute une ligne entre la ligne 3 et 4 de base de donnée, dans la fiche inventaire cette ligne va être ajouter aussi au même endroit mais les donnée qu'il y avait dans la cellule D4 vont rester dans la cellule D4 alors que le produit de la ligne 4 est passé à la ligne 5 et donc le dernier produit de mon tableau aura la case de la colonne D vide)
De plus, dans le fichiers base de données je dois pouvoir effacer des lignes et que ça m'efface aussi dans l'inventaire sans perturbé ma colonne D.
J'aimerai donc savoir si ce que je voudrais est réalisable ou pas
Merci de votre aide
Bonjour,
Voici une partie d'une solution possible.
Private Sub Worksheet_Change(ByVal Target As Range)
' Ce code s'exécute automatiquement chaque fois qu'il y a un changement dans la feuille de base de données.
Dim wsInventaire As Worksheet
Dim wsBaseDeDonnees As Worksheet
Dim lastRow As Long
' Assurez-vous que le changement a eu lieu dans la feuille "Base de Données"
Set wsBaseDeDonnees = ThisWorkbook.Sheets("Base de Données")
If Not Intersect(Target, wsBaseDeDonnees.UsedRange) Is Nothing Then
' Mettez à jour la feuille d'inventaire
Set wsInventaire = ThisWorkbook.Sheets("Inventaire")
wsInventaire.Cells.Clear ' Efface tout dans la feuille d'inventaire
' Copiez les données de la feuille "Base de Données" vers la feuille d'inventaire
wsBaseDeDonnees.UsedRange.Copy wsInventaire.Range("A1")
' Mettez à jour la colonne D de l'inventaire en fonction des nouvelles données
lastRow = wsInventaire.Cells(wsInventaire.Rows.Count, "A").End(xlUp).Row
' Ajoutez ici le code pour mettre à jour la colonne D en fonction de vos besoins
End If
End SubOiseau bleu
Merci pour votre aide, j'avais commencé a faire un code plus ou moins identique à la votre mais mon problème reste la colonne D qui est entrain manuellement car c'est un inventaire donc je le rentre moi même. C'est la que je coince, de plus en copiant le tableau comme ça, les lignes de ma colonne D ne va plus correspondre aux produits quand j'ajoute un produits dans base de données. J'aimerai que quand j'ajoute un produit dans ma base de donnée, ma fiche inventaire ajoute une ligne et rentre les informations du nouveau produits afin que ma colonne D reste en adéquation