Vba: comparaison de 2 fichiers distincts

Fermé
pekin - 20 juil. 2011 à 08:50
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 20 juil. 2011 à 09:45
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 ?

3 réponses

Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
20 juil. 2011 à 09:15
Salut,
Tu bloques sur quoi ? Sur l'utilisation du second fichier Excel ? Sur la boucle pour passer sur toutes les lignes ?
0
il me faut juste un moyen pour passer d'un fichier à l'autre. pour le code, y'a pas de problème.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 306
Modifié par michel_m le 20/07/2011 à 09:48
Bonjour

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
0