Vba: comparaison de 2 fichiers distincts
pekin
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai un fichier excel prix.xls dans lequel j'ai dans ma colonne A des références et dans ma colonne B le prix associé à chaque référence.
j'ai aussi un fichier fournisseur.xls dans lequel j'ai dans ma colonne A les mêmes références que pour mon fichier prix.xls avec cette fois-ci des noms de fournisseurs dans ma colonne B.
je souhaiterais faire en macro vba des comparaisons entre les colonnes A de chacun de mes fichiers excel. Si 2 références sont identiques entre elles, je prends le fournisseur correspondant de mon fichier fournisseur.xls et je l'ecris dans la colonne C de mon fichier prix.xls à la ligne correspondante.
Seulement, je bloque dessus. Pourriez vous m'aider, svp ?
j'ai un fichier excel prix.xls dans lequel j'ai dans ma colonne A des références et dans ma colonne B le prix associé à chaque référence.
j'ai aussi un fichier fournisseur.xls dans lequel j'ai dans ma colonne A les mêmes références que pour mon fichier prix.xls avec cette fois-ci des noms de fournisseurs dans ma colonne B.
je souhaiterais faire en macro vba des comparaisons entre les colonnes A de chacun de mes fichiers excel. Si 2 références sont identiques entre elles, je prends le fournisseur correspondant de mon fichier fournisseur.xls et je l'ecris dans la colonne C de mon fichier prix.xls à la ligne correspondante.
Seulement, je bloque dessus. Pourriez vous m'aider, svp ?
A voir également:
- Vba: comparaison de 2 fichiers distincts
- Excel compter cellule couleur sans vba - Guide
- Find vba - Astuces et Solutions
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
3 réponses
Salut,
Tu bloques sur quoi ? Sur l'utilisation du second fichier Excel ? Sur la boucle pour passer sur toutes les lignes ?
Tu bloques sur quoi ? Sur l'utilisation du second fichier Excel ? Sur la boucle pour passer sur toutes les lignes ?
Bonjour
essaies cette macro
tite demo
https://www.cjoint.com/?3GujVZaJIen
Michel
essaies cette macro
Sub ajouter_nom()
Dim chemin As String, derlig As Integer
Dim D_fourn As Object
Dim cptr As Integer, nom As String, ref 'à compléter svt type de données
Dim T_nom() As String
Application.ScreenUpdating = False
'crée une liste des couples references et nom fournisseur
chemin = ThisWorkbook.Path 'A ADAPTER SI FOURNISSEUR N'EST PAS DANS LE MEME DOSSIER
Workbooks.Open Filename:=chemin & "\fournisseur.xls"
derlig = Columns(1).Find("*", Range("A1"), , , , xlPrevious).Row
Set D_fourn = CreateObject("scripting.dictionary")
For cptr = 2 To derlig
ref = Cells(cptr, 1)
nom = Cells(cptr, 2)
If Not D_fourn.exists(ref) Then D_fourn.Add ref, nom
Next
ActiveWorkbook.Close False
'comparaison
derlig = Columns(1).Find("*", Range("A1"), , , , xlPrevious).Row
ReDim T_nom(1 To derlig)
For cptr = 2 To derlig
ref = Cells(cptr, 1)
If D_fourn.exists(ref) Then T_nom(cptr - 1) = D_fourn(ref)
Next
'restitution
Range("C2:C" & derlig) = Application.Transpose(T_nom)
End Sub
tite demo
https://www.cjoint.com/?3GujVZaJIen
Michel