Récupérer les valeurs de cellules de plusieurs fichier

manu

XLDnaute Nouveau
Bonjour à tous, je me tourne de nouveau vers vous pour m'aider à réaliser une macro, que je ne suis pas sure d'être réalisable ( pour moi en tout cas). J'ai créer une macro permettant de rassembler tous les fichier "xls" d'un même document en un seul. Mais en analysant mon problème je me rend compte que c'est pas vraiment ce que je veux comme résultat. J'aimerais en fait, pouvoir rassembler dans un tableau les références de chacun des fichier "xls" qu'il y aura dans un dossier. La ou je n'arrive pas à débuter est que je voudrais récupérer des informations contenu dans certaines cellules de ces fichiers afin de construire le tableau.

Je sais pas si j'ai été assé clair mais j'attend avec impatience vos réponse.
 

Dranreb

XLDnaute Barbatruc
Re : Récupérer les valeurs de cellules de plusieurs fichier

Bonjour.
Si vous ne savez par où commencer, c'est que vous n'avez pas bien en tête tous les éléments du problème. Et nous non plus. C'est très vague: Une boucle qui explore une liste de noms complets de fichiers dans une feuille, les ouvre l'un après l'autre et en copie certaines cellules dans un tableau.
Eh bien écrivez le, quelle instruction ne savez vous écrire ?
À+
 

manu

XLDnaute Nouveau
Re : Récupérer les valeurs de cellules de plusieurs fichier

Je vous joint un fichier montrant ce que je souhaite faire. j'amerais qua chaque nous fichier à mettre en référence, il le rajoute à la ligne suivante en concervant les bordure si possible.
 

Pièces jointes

  • Référencement constat.xls
    18.5 KB · Affichages: 65

Dranreb

XLDnaute Barbatruc
Re : Récupérer les valeurs de cellules de plusieurs fichier

Y a-t-il un moyen de reconnaitre ceux des autres classeurs ouverts dont des lignes sont à rajouter dans celui ci ?
Il pourrait être plus pratique de lancer la macro depuis le classeur actif en question à l'aide d'un bouton personnalisé d'une barre d'outils.
À+

C'est la méthode pour explorer les fichiers que je ne connais pas.
s'il s'agit de traiter tous les fichiers d'un même répertoire, voir dans l'aide la fonction Dir
À+
 
Dernière édition:

manu

XLDnaute Nouveau
Re : Récupérer les valeurs de cellules de plusieurs fichier

Tous les fichiers das lesquels se trouvent les informations à récupérer sont identiques, donc ça sera toujours les informatios situées dans les mêmes cellules, dans mon fichier joint il y a bien un bouton permettant une mise a jour du tableau, il devrait y avoir autant de lignes dans ce tableau qu'il y a de fichiers dans le dossier.
Quand je dit explorer, je veux dire en faites sélectionner des cellules et les copier dans le nouveau fichier
 
Dernière édition:

manu

XLDnaute Nouveau
Re : Récupérer les valeurs de cellules de plusieurs fichier

j'ai saisie le code suivant afin tout d'abord d'importer une première cellule:

Sub importer()

Dim Chemin$, Classeur$
Chemin = "I:\DDIV-DIESE\65690\Mulets\Base\Nouveau format Constat\Constat Diese\" 'indiquer le chemin
Classeur = Dir(Chemin & "\*.xls")
Do While Classeur <> Empty
With Workbooks.Open(Chemin & "\" & Classeur)
With .Sheets(1).Range("A2")
.Copy ThisWorkbook.Sheets(1).Range("A6")
End With
.Close False
End With
Classeur = Dir
Loop
Feuil1.Select


End Sub



Il fonctionne pour un seul fichier, mais je sais pas comment indiquer de sauter une ligne après chaque fichier.
 

Dranreb

XLDnaute Barbatruc
Re : Récupérer les valeurs de cellules de plusieurs fichier

Bon ben ça devrait être quelque chose de ce genre :
VB:
Private Sub CommandButton1_Click()
Dim L As Long, NomClass As String
Const SousDoss = "..."
ChDrive ThisWorkbook.Path
ChDir ThisWorkbook.Path & "\" & SousDoss
L = 0
NomClass = Dir("*.xls")
While NomClass <> ""
   Workbooks.Open NomClass
   L = L + 1
   Feuil1.[A5:E5].Offset(L).Value = ActiveWorkbook.Worksheets(1).[A6:E6].Value
   ActiveWorkbook.Close
   NomClass = Dir: Wend
End Sub
À+

P.S. Je n'avais pas vu votre code
Il fonctionne pour un seul fichier, mais je sais pas comment indiquer de sauter une ligne après chaque fichier.
Si c'est juste 1 seule cellule en A Commencez par L = 5 après L = L + 1:
VB:
Feuil1.Cells(L, 1).Value = ActiveWorkbook.Worksheets(1).[A2].Value
À+
 
Dernière édition:

manu

XLDnaute Nouveau
Re : Récupérer les valeurs de cellules de plusieurs fichier

je ne peut pas faire comme dans ton code, sur le fichier ou je récupère les informations, les cellules ne sont pas disposé à la suite, je doit faire cellule après cellule. En revanche je connaissais pas la function offset. j'essay de l'adapter à mon problème.
 

manu

XLDnaute Nouveau
Re : Récupérer les valeurs de cellules de plusieurs fichier

j'ai adapter avec la function offset, ça à l'air de bien fonctionner :)

With .Sheets(1).Range("A2")
.Copy ThisWorkbook.Sheets(1).Range("A6").Offset(L)
End With

With .Sheets(1).Range("B2")
.Copy ThisWorkbook.Sheets(1).Range("B6").Offset(L)
End With
L = L + 1
.Close False
End With
Classeur = Dir



Si je veux avoir une bordure tout autour des cellules rajoutées, comment je doit procéder?
 

Dranreb

XLDnaute Barbatruc
Re : Récupérer les valeurs de cellules de plusieurs fichier

Vos cellules sources et cible se suivent donc bien comme je l'avais supposé ?
Et votre code copierait d'éventuelles formules, non seulement les valeurs.
Si je veux avoir une bordure tout autour des cellules rajoutées, comment je doit procéder?
le plus simple c'est de copier les formats de la 1ère:
VB:
Feuil1.[A6:E6].Copy
Feuil1.[A6:E6].Resize(L - 5).PasteSpecial xlPasteFormats
À+
 

manu

XLDnaute Nouveau
Re : Récupérer les valeurs de cellules de plusieurs fichier

Actuellement elles ont touts le même format qui est celui des cellules sources, je cherche à modifier cela. Est-ce que avec la function .copy, il y a moyen d'indiquer qu'on ne souhaite pas conservé le format. Donc à ce moment le format sera celui de la cible
 

manu

XLDnaute Nouveau
Re : Récupérer les valeurs de cellules de plusieurs fichier

J'ai trouvé une solution en créant une variable public, qui correspond à la ligne ou je me situe ( il s'agit de "L", qui s'incrémente à chaque ligne), et je l'ai réutilisé dans le sub() du bouton. Tous sempble fonctionner parfaitement.
Merci de ton aide, depuis une semaine j'apprend à connaitre un peu mieu le VBA.
 

Discussions similaires

Réponses
7
Affichages
279

Statistiques des forums

Discussions
312 497
Messages
2 088 994
Membres
104 000
dernier inscrit
dinelcia