Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres mise a jour automatique feuille excel vba

HANN

XLDnaute Nouveau
Bonjour, je cherche une macro pour mettre à jour automatiquement des données entre des fichiers Excel.

- Fichier 1 (qui est une consolidation des fichiers 2 et 3) contient la liste globale de clients : colonne A (Identifiant du client), colonne B (Nom du client), colonne C (Région), colonne D (Date), colonne E (Article), colonne F (Quantité).
- Fichier 2 contient la liste des clients de la région 1: colonne A (Identifiant du client), colonne B (Nom du client), colonne C (Région), colonne D (Date), colonne E (Article), colonne F (Quantité).
- Fichier 2 contient la liste des clients de la région 2: colonne A (Identifiant du client), colonne B (Nom du client), colonne C (Région), colonne D (Date), colonne E (Article), colonne F (Quantité).

Un même client peut acheter plusieurs articles différents. Et donc avoir plusieurs lignes dans une feuille.
L'idée est que lorsque je mets à jour le Fichier 1 et si l'identifiant du client (d'une région donnée) n'existait pas dans la Feuille 2 ou 3, alors la macro rajoute une ligne dans la feuille de la région concernée (Feuille 2 ou 3), dans le cas contraire, que la ligne se mette à jour en fonction des nouvelles données qui seront renseignées dans la feuille principale.

Et donc mon problème est qu'avec ma macro, c'est que lorsque je mets à jour le Fichier 1 pour un ancien client qui achète un nouvel article (donc rajout d'une nouvelle ligne) ou que je modifie la quantité d'un article d'un client, la macro ne rajoute pas de nouvelle ligne mais modifie l'ancienne donnée qui est dans la Feuille 2 ou 3.

- DONNEE FEUILLE 1

IDENTIFIANT NOM REGION DATE ARTICLE QUANTITE
P0054 BERTRAND FRANCOIS REGION 1 10/10/2022 COFFRET CADEAUX 1
P0055 DUPOND JEAN REGION 2 10/10/2022 COFFRET CADEAUX 1
P0055 DUPOND JEAN REGION 2 10/10/2022 PARFUM 1
P0056 VALLIN URBAIN REGION 2 27/10/2022 BOX 1
P0057 MICHOT LISA REGION 1 05/11/2022 PARFUM 1
P0058 VERNET JEAN REGION 2 05/11/2022 BOITE SURPRISE 1
P0059 LAMBREY HENRY REGION 1 05/11/2022 COFFRET CADEAUX 1
P0059 LAMBREY HENRY REGION 1 24/12/2022 BOITE SURPRISE 1
P0060 LAMBERT XAVIER REGION 2 25/11/2022 PARFUM 1

_ CODE VBA

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Dim REGION1 As Worksheet
Dim REGION2 As Worksheet

If Sh.Name = "Feuil1" And Sh.Range("A" & Target.Row) <> "" And Sh.Range("C" & Target.Row) = "REGION 1" Then
Set REGION1 = ThisWorkbook.Worksheets("Feuil2")
With REGION1
Set ID = .Columns("A").Find(Sh.Range("A" & Target.Row).Value, LookIn:=xlValues, lookat:=xlWhole)
If ID Is Nothing Then
Lastlig = .Cells(999999, 1).End(xlUp).Row
Sh.Range("A" & Target.Row & ":F" & Target.Row).Copy .Range("A" & Lastlig + 1)
Else
Sh.Range("A" & Target.Row & ":F" & Target.Row).Copy ID
End If
End With
End If
If Sh.Name = "Feuil1" And Sh.Range("A" & Target.Row) <> "" And Sh.Range("C" & Target.Row) = "REGION 2" Then
Set REGION2 = ThisWorkbook.Worksheets("Feuil3")
With REGION2
Set ID = .Columns("A").Find(Sh.Range("A" & Target.Row).Value, LookIn:=xlValues, lookat:=xlWhole)
If ID Is Nothing Then
Lastlig = .Cells(999999, 1).End(xlUp).Row
Sh.Range("A" & Target.Row & ":F" & Target.Row).Copy .Range("A" & Lastlig + 1)
Else
Sh.Range("A" & Target.Row & ":F" & Target.Row).Copy ID
End If
End With
End If

End Sub

Je vous remercie d'avance.
 

merinos-BernardEtang

XLDnaute Accro
@HANN

Come toujours ce serait sympa de donner un exemple simplifié de ce qui est dans le FNC ...
Sans exemple, la reponse a juste : oui c'est possible.

Tu ne voudrais quand même pas que nous créyons le fichier "dummy"?

Si répondre à une question prend du temps, la poser en prend aussi.
Si tu ne formules pas la question afin que nous puissions y repondre...

A+
Merinos
 

Discussions similaires

Réponses
26
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…