Vba: comparaison de 2 fichiers distincts
pekin
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 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
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
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