Bonsoir,
Voici une première ébauche,
Pour essayer appuyer sur le bouton ajout fichier dans le fichier base.
Pour le moment le fichier à ajouter devra être dans le même dossier que le dossier du fichier base.
Le fichier à ajouter devra comporter le mot ajout dans son nom.
Sub MiseAJour()
Dim Chemin As String
Dim Ajout As String, Quoi As String
Dim LigneFin As Long
Dim Tourne As Long, Lieu As Long
Dim Bingo As Range
'Mémorise le chemin du fichier base
Chemin = ThisWorkbook.Path
'Cherche un fichier comportant ajout dans son nom
Ajout = Dir(Chemin & "\" & "*Ajout*", vbNormal)
'Si fichier trouvé alors
If Ajout <> "" Then
'Ouverture du fichier ajout en lecture seul
Workbooks.Open Filename:=Chemin & "\" & Ajout, ReadOnly:=True
'Vérifie que l'entete de la colonne A s'appelle bien CODE EAN
If Range("A1") = "CODE EAN" Then
' Détermine la dernière ligne du fichier à ajouter
LigneFin = Range("A65536").End(xlUp).Row
' boucle de traitement de toutes les lignes
For Tourne = 2 To LigneFin
'Mémorise la clef code ean
Quoi = Range("A" & Tourne)
' Recherche de la clef dans le fichier base
Set Bingo = ThisWorkbook.Worksheets("Fichier base").Range("A:A").Find(Quoi, lookat:=xlWhole)
' Si le clef est trouvée dans base
If Not Bingo Is Nothing Then
' mémorise la ligne où la clef à été trouvée
Lieu = Bingo.Row
Else
' Si pas trouvée alors cherche la première ligne disponible dans base
Lieu = ThisWorkbook.Worksheets("Fichier base").Range("A65536").End(xlUp).Row + 1
End If
'Recopie de la ligne fichier ajout vers fichier base
Range("A" & Tourne & ":F" & Tourne).Copy Destination:=ThisWorkbook.Worksheets("Fichier base").Range("A" & Lieu & ":F" & Lieu)
' passe à la ligne suivante si pas fini
Next Tourne
Else
'si l'entête est incorrecte pas de traitement et message d'alerte utilisateur
MsgBox "L'entête de la colonne A de la feuille active du classeur ajout n'est pas conforme", vbCritical, "Alerte Application"
End If
'Fermeture du classeur ajout
Workbooks(Ajout).Close False
Else
'Si fichier ajout pas trouvé alors message d'alerte
MsgBox "Fichier ajout non trouvé, veuillez déposez les fichiers à ajouter dans le même répertoire que ce fichier", vbCritical, "Alerte application"
End If
End Sub
un tri sera certainement intéressant en fin d'ajout.
l'ajout de plusieurs fichiers peut être aussi envisageable : Ajout 1 , ajout2 etc
Je préfére y aller par étapes pour une meilleure compréhension
Mister Bru no