Récupérer données de plusieurs feuille excel

tofoo

XLDnaute Junior
Bonjour, :)

C'est un sujet récurrent mais je n'ai pas réussi à l'adapter a mon problème.
Le voici : J'ai un fichier (celui joint) qui devrait faire office de base de donnée commune.

Pour cela j'ai fais un bouton 'recovering data' avec dans la feuille "result" les champs que je veux collectés.

Les fichiers auront un nom lambda et seront a la racine du fichier et les fichiers présentés seront exclusivement des fichiers de collecte d'infos.
J'aimerai que le bouton ouvre les fichiers un à un et récupère chaque ligne remplis et incrémente jusqu'à la fin.

Je ne sais pas si je me fais comprendre, j'ai bidouillé le code mais ça plante...

merci de votre aide :p
 

Pièces jointes

  • Database Recovering.zip
    13.1 KB · Affichages: 57

Catrice

XLDnaute Barbatruc
Re : Récupérer données de plusieurs feuille excel

Bonjour,

Le mieux serait que tu donnes aussi un des fichiers à traiter.

Quelques coquilles dan ton code :

Sub import()
Dim derlig As Integer, i As Integer, mavar As String
derlig = Workbooks("Database Recovering.xls").Sheets("Result").Range("a65536").End(xlUp).Row + 1
For i = 2 To 7
mavar = Workbooks("*").Sheets("Result").Cells(i, 3).Value
Workbooks("Database Recovering.xls").Sheets("Feuil1"???).Cells(derlig + 1, i + 5).Value = mavar
Next
End Sub

Workbooks("*") ca ne fonctionne pas.
Ne faut il pas faire Derlig + 1 ? tu veux bien ecrire les données les unes sous les autres.
 
Dernière édition:

tofoo

XLDnaute Junior
Re : Récupérer données de plusieurs feuille excel

Salut Catrice,

Voici un échantillon de réponse : les champs sont les même et l'onglet possède le même nom.

Il peux y avoir 0 à + de 100 lignes.

J'aimerai pouvoir piocher une a une les lignes et les coller ensemble.
 

Pièces jointes

  • answer.zip
    21.8 KB · Affichages: 49

tofoo

XLDnaute Junior
Re : Récupérer données de plusieurs feuille excel

Hi,

Voici le code modifié mais il fait une erreur de compil...


Sub import()
Dim derlig As Integer, i As Integer, mavar As String
derlig = Workbooks("Database Recovering.xls").Sheets("Result").Range("a65536").End(xlUp).Row + 1
For i = 2 To 7
mavar = Workbooks("*.xls").Sheets("Result").Cells(i, 3).Value
Workbooks("Database Recovering.xls").Sheets("Result").Cells(derlig + 1, i + 5).Value = mavar
Next
End Sub

Je comprends pas tout ce que fais le code, j'aimerai bien que qq1 m'aide a le décrypter.

Merci
 

Catrice

XLDnaute Barbatruc
Re : Récupérer données de plusieurs feuille excel

Bonsoir,

si j'ai bien compris ce que tu voulais faire, ci-joint un exemple qui compile tous les fichier xls d'un dossier dans answer.xls.
Les fichiers ont tous le meme format et meme nom d'onglet.

Dis moi si c'est ce que tu veux faire et si tu veux que je commente le code.
 

Pièces jointes

  • compile.zip
    35.3 KB · Affichages: 75

tofoo

XLDnaute Junior
Re : Récupérer données de plusieurs feuille excel

Salut Catrice,

Merci pour ton aide

Answer était le fichier de réponse, ce n'est pas très grave reçus mais tu as compris l'idée.

Je veux que le bouton ouvre chaque fichier dans l'onglet result et scan de A2 à CJ100 (par exemple) pour mettre a la queue leu leu toutes les réponses reçus dans l'onglet result dans la BDD commune.

Par contre j'ai une erreur 1004 au moment du lancement de la macro....Je suis sous excel 2003, je pense que toi aussi non ?
 

Catrice

XLDnaute Barbatruc
Re : Récupérer données de plusieurs feuille excel

Bonsoir,

J'ai Excel 2002 mais je ne pense pas que cela ait une incidence.
Tu as une erreur en lançant la macro telle que (les 3 fichiers que j'ai mis dans le Zip) ?
A quel endroit de la macro quand tu appuis sur Deboguer ?

La Macro traite la zone complete de données trouvée dans la feuille (sans les titres).
Bien sur, il ne faut pas qu'il y ait de valeur "parasites".
C'est CurrentRegion qui fait ça.
Offset(1, 0) qui evite les titre.
On prend la zone sans les titre plus un ligne vide et on la copie dans le fichier de compile.
Le fait qu'il y ait une ligne vide ne pose pas de pb car le coup d'apres on copie à partir de la derniere ligne vide ...

En revanche dans le fichier source, il ne faut pas qu'il y ait une ligne completement vide.
Il faut au moins une cellule qui touche les autres en H, V ou diagonal.
S'il peut y avoir des lignes vides, dit le moi, il faut modifier le code.
 
Dernière édition:

tofoo

XLDnaute Junior
Re : Récupérer données de plusieurs feuille excel

Salut Catrice,

La ligne de l'erreur est :
Workbooks.Open Filename:=MonFichier

Pour les lignes vide, normalement la ligne 2 sera obligatoirement remplis et s'il y a plusieurs lignes, elles le seront à la suite donc je pense que c'est bon

Merci
 

Catrice

XLDnaute Barbatruc
Re : Récupérer données de plusieurs feuille excel

Bonjour,

Autant pour moi, une petite erreur à corriger comme ceci :
Workbooks.Open Filename:=Chemin & "\" & MonFichier

Corrigé dans le fichier joint.
 

Pièces jointes

  • compile2.zip
    32 KB · Affichages: 62

tofoo

XLDnaute Junior
Re : Récupérer données de plusieurs feuille excel

Merci Catrice !!!
C'est exactement ce que je cherchais à faire.
Je sais pas si tu as le temps mais j'aimerai bien pouvoir comprendre le code pour pouvoir l'ajuster si j'en ai besoin. Pourrais tu me le commenter, dis le moi si ça t'ennuis, je comprendrai. Tu m'a deja rendu un précieux service
 

Discussions similaires

Statistiques des forums

Discussions
312 496
Messages
2 088 978
Membres
103 996
dernier inscrit
KB4175