Macro recherche et importation de données entre fichiers excel

sunnydab

XLDnaute Nouveau
Bonjour,

Après des tentatives infructueuses pour trouver et mettre au point une solution, je vous livre mon problème.

Je dois agréger sur un tableau excel des données excel qui me sont fournis par plusieurs sources.
Ainsi, et pour simplifier sous forme d'exemple, je maintiens un fichier qui comprend pour un produit identifié par un numéro unique (ligne) des données relatives au fournisseur (colonne 5 à 10) et des caractéristiques techniques (colonnes 11 à 15). Je reçois d'une personne un fichier excel contenant les données fournisseurs et d'une autre les données "caractéristiques techniques". Je souhaite faire des macros (associé à un formulaire pour taper l'identifiant unique) pour aller chercher dans ces fichiers les données d'intérêts correspondantes.
Par avance merci de votre aide.
 

Atro

XLDnaute Nouveau
Re : Macro recherche et importation de données entre fichiers excel

Bonsoir à tous!
Je me permet de remonter ce sujet car j'ai un peu le même problème que Sunnydab :

J'ai 1 fichier "récap" qui regroupe toutes les références (des centaines), et d'autres info utiles.
J'ai aussi plusieurs autres fichiers (disons A, B, C...), qui reprennent chacun une partie des références, et donnent d'autres info.

Mon objectif est d'arriver à extraire une info particulière de ces fichiers (A ,B, C...), et l'intégrer à mon premier fichier.

Plus précisément :
Disons que pour la référence 1234 dans "récap", je recherche le nom du client, qui est dans un des fichier A, B, C ...
Le nom du client est toujours dans la colonne 5 de ces fichiers, par contre la référence n'est pas toujours dans la même colonne (à cause des différents niveaux d'importances).
Ce que j'aimerai c'est une macro qui puisse aller me chercher ces noms de clients pour toutes les références et me le mettre dans la bonne colonne du fichier "récap".

Voila mon soucis, vu que je ne m'y connais pas vraiment en VBA, j’espérai que quelqu'un pourrait me montrer un code pas trop complexe que je puisse adapter à mon cas.

Merci de votre aide !
 

Atro

XLDnaute Nouveau
Re : Macro recherche et importation de données entre fichiers excel

Re !
Après quelques essais j'ai réussi à créer une macro qui me fait un copier coller des noms d'un fichier "A" au fichier "récap".
Maintenant j'aimerai pouvoir sélectionner plus précisement les cellules à copier et les coller au bon endroit selon les références.

Quelqu'un pourrait m'aider pour cela s'il vous plait?

Merci
 

Atro

XLDnaute Nouveau
Re : Macro recherche et importation de données entre fichiers excel

Je vous joint les fichiers tests que je suis en train de faire.
 

Pièces jointes

  • ref1.xls
    28 KB · Affichages: 71
  • ref2.xls
    27.5 KB · Affichages: 63
  • centralisation.xls
    42 KB · Affichages: 118
  • ref1.xls
    28 KB · Affichages: 77
  • ref1.xls
    28 KB · Affichages: 80

Atro

XLDnaute Nouveau
Re : Macro recherche et importation de données entre fichiers excel

Voici l'état de ma macro à l'heure actuelle, évidement elle ne marche pas, j'aurai vraiment besoin d'un coups de main s'il vous plait :

Sub recherche()
Dim classeurref1 As Workbook, classeurcentralisation As Workbook
Dim Zone As Range
Dim Cel As Range
Dim dlg As Integer
Dim MyValue As Integer

'ouvrir le classeur ref1 (en lecture seule))
Set classeurref1 = Application.Workbooks.Open("C:\Users\st14591\Desktop\ref1.xls", , True)
'définir le classeur de destination
Set classeurcentralisation = ThisWorkbook
'définition de la zone de recherche
Set Zone = classeurref1.Sheets("feuil1").Range("A65536").End(xlUp)
'longueur de la recherche
dlg = Sheets("Feuil1").Range("c65536").End(xlUp).Row
'boucle de recherche
classeurcentralisation.Sheets("feuil1").Activate
MyValue = classeurcentralisation.Sheets("feuil1").Range("c3")
For i = MyValue To dlg
classeurref1.Sheets("feuil1").Activate
For Each Cel In Zone
If ActiveCell.Value = MyValue Then GoTo Fin1
If ActiveCell.Value = "" Then GoTo Fin2
Fin1:
'copier les données de la feuil1 du classeur source vers la feuil1 du classeur centralisation
classeurref1.Sheets("feuil1").Range("H2").Select
Selection.Copy

classeurcentralisation.Sheets("feuil1").Activate
Range("D3").Select
ActiveSheet.Paste
i = i + 1
Fin2:
Next Cel
Next

End Sub
 
Dernière édition:

Atro

XLDnaute Nouveau
Re : Macro recherche et importation de données entre fichiers excel

J'ai fais quelques modifications, sans grand résultats.
Je vois à peut près où sont les problèmes, sauf que mes pauvres connaissances en VBA font que je n'arrive pas à les résoudre:

Sub recherche()
Dim classeurref1 As Workbook, classeurcentralisation As Workbook
Dim Zone As Range
Dim Cel As Range
Dim dlg As Integer
Dim MyValue As Integer
Dim a As Integer

'ouvrir le classeur ref1 (en lecture seule))
Set classeurref1 = Application.Workbooks.Open("C:\Users\st14591\Desktop\ref1.xls", , True)
'définir le classeur de destination
Set classeurcentralisation = ThisWorkbook
'définition de la zone de recherche
Set Zone = classeurref1.Sheets("feuil1").Range("a1:h9").End(xlUp)
classeurref1.Sheets("feuil1").Activate
For Each Cel In Zone
If Cel = classeurcentralisation.Sheets("feuil1").Range("c3").Value Then
classeurcentralisation.Sheets("feuil1").Activate
classeurcentralisation.Sheets("feuil1").Range("d3").Value = classeurref1.Sheets("feuil1").Range("h2").Value
End If
Next Cel
End Sub
 
Dernière édition:

Atro

XLDnaute Nouveau
Re : Macro recherche et importation de données entre fichiers excel

Grande nouvelle ! (oui j'ai l'impression de parler tout seul sur ce forum ^^)
La recherche de nom en fonction de la référence marche... pour la première ligne XD
Maintenant il faudrait que j'arrive à mettre en place un système d'incrémentation/boucle qui passe en revue toutes les références du fichier "centralisation".

Au cas où quelqu'un voudrait m'aider (ou s'en servir) je laisse le code :

Sub recherche()
Dim classeurref1 As Workbook, classeurcentralisation As Workbook
Dim Zone As Range
Dim Cel As Range
Dim dlg As Integer
Dim MyValue As Integer
Dim a As Integer

'ouvrir le classeur ref1 (en lecture seule))
Set classeurref1 = Application.Workbooks.Open("C:\Users\st14591\Desktop\ref1.xls", , True)
'définir le classeur de destination
Set classeurcentralisation = ThisWorkbook
'définition de la zone de recherche
Set Zone = classeurref1.Sheets("feuil1").Range("a1:h9")
classeurref1.Sheets("feuil1").Select
For Each Cel In Zone
If Cel = classeurcentralisation.Sheets("feuil1").Range("c3").Value Then
classeurcentralisation.Sheets("feuil1").Range("d3").Value = classeurref1.Sheets("feuil1").Range("h2").Value
End If
Next Cel

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 294
Messages
2 086 884
Membres
103 404
dernier inscrit
sultan87