Regrouper des valeurs depuis plusieurs fichiers

  • Initiateur de la discussion Vin100
  • Date de début
V

Vin100

Guest
Bonjour tout le monde !

Je débute en programmation sous Excel, et je me pose plein de petites questions, comme celle-ci :


J'ai un dossier qui contient un certain nombre de fichiers excel. J'aimerais créer une macro telle que, dans un nouveau fichier, en colonne A, on retrouve les valeurs des cellules A1 des divers fichiers du dossier.

Par exemple, dans le dossier, j'ai ces fichiers :
fichier-a.xls, qui a, en cellule A1, la valeur "bleu"
fichier-b.xls, qui a, en cellule A1, la valeur "rouge"
fichier-c.xls, qui a, en cellule A1, la valeur "vert"
etc...

J'aimerais que mon nouveau fichier se compose alors ainsi :
en A1, "bleu"
en A2, "rouge"
en A3, "vert"
(peu importe l'ordre des fichiers...)


Cela ne doit pas être bien compliqué, mais je bloque lamentablement :)

Merci pour vos réponses ! Vin100.
 
M

michel

Guest
bonsoir Vin100

la macro jointe permet de lister tous les classeurs d'un répertoire et récupère les données de la cellule A1(Feuil1) de chaque fichier sans l'ouvrir


Sub chercheFichiersFermesV03()
Dim X As Integer, nbFichiers As Integer, Y As Integer
Dim Tableau() As String
Dim Direction As String

Application.ScreenUpdating = False
Direction = Dir("C:\Documents and Settings\michel\dossier\general\excel\*.xls") 'adapter chemin repertoire

Do While Len(Direction) > 0
nbFichiers = nbFichiers + 1
ReDim Preserve Tableau(1 To nbFichiers)
Tableau(nbFichiers) = Direction
Direction = Dir()
Loop

If nbFichiers > 0 Then
For X = 1 To nbFichiers
If Tableau(X) <> ThisWorkbook.Name Then
Y = Y + 1
With ActiveSheet.Cells(Y, 1)
.Formula = "='C:\Documents and Settings\michel\dossier\general\excel\[" & Tableau(X) & "]Feuil1" & "'!" & "A1"
.Value = .Value
End With
End If
Next X
End If

Application.ScreenUpdating = True
End Sub


bonne soiree
MichelXld
 
T

tracor

Guest
salut à tous

je profite de ce fil pour demander à michel si il lui serait possible de regarder le fil "calcul délai"
j'aurai besoin des lumières d'un connaisseur VBA

je sais que ce n'est pas conforme à la charte xld mais je suis desesperé

merci d'avance

tracor
 
M

michir

Guest
Bonsoir Vin100

Je te propose aussi une formule 3D, si j'ai compris ton problème.
En A1 de ta feuille de consolidation, tu saisis:
= somme(Trois_D)
Ensuite tu définis un nom (Insertion, Nom...) Trois_D qui fait référence à
='01:100'!A1
si tes feuilles sont portent les noms '01', '02'...'100'
Tu peux copier coller cette formule elle s'adaptera aux cellule homologues des feuilles que tus as désignées.
A+
Michel,
 
J

jph

Guest
bonjour à tous,

après une lecture assidue de la macro excel de Michel sur le site, je me permet de vos poser une question complémentaireà savoir :
je veus faire la même chose, donc la macro me va bien sauf que j'ai par exemple :
une donnée sur chaque feuille en c4 que je veux récupérer en colonne B1, puis B2....etc
une autre donnée en B3 que je veux récupérer en colonne C1, puis C2.... etc

étant nul en macro excel, merci de vos éclaicissements ...
merci d'avance !
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 145
Membres
103 130
dernier inscrit
FRCRUNGR