regrouper des valeurs depuis plusieurs feuilles

  • Initiateur de la discussion Initiateur de la discussion jph
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jph

Guest
bonjour à tous

après une lecture assidue de la macro excel de Michel sur le site, je me permets de vous poser une question complémentaire à savoir :
je veux 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 éclaircissements ...
merci d'avance !



la macro de base de Michel, qui ne récupère que cellule A1 :

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
 
bonjour Jph

j'espere que cette adaptation pourra t'aider ( j'ai supposé que toutes les données récupérées dans plusieurs classeurs s'affichaient à la suite dans les colonne B et C )
dans cet exemple les onglets de classuers fermés doivent imperativement etre nommés Feuil1 , Feuil2 et Feuil3


Sub chercheFichiersFermesV04()
Dim X As Integer, nbFichiers As Integer, Y As Integer
Dim j As Byte
Dim Tableau() As String
Dim Direction As String

Application.ScreenUpdating = False
Direction = Dir("C:\Documents and Settings\michel\dossier\*.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

For j = 1 To 3 'les noms de feuilles doivent imperativement etre du stye Feuil1,Feuil2...)
If Tableau(X) <> ThisWorkbook.Name Then
Y = Y + 1

With ActiveSheet.Cells(Y, 2)
.Formula = "='C:\Documents and Settings\michel\dossier\[" & Tableau(X) & "]Feuil" & j & "'!" & "C4"
.Value = .Value
End With

With ActiveSheet.Cells(Y, 3)
.Formula = "='C:\Documents and Settings\michel\dossier\[" & Tableau(X) & "]Feuil" & j & "'!" & "B3"
.Value = .Value
End With


End If
Next j

Next X

End If

Application.ScreenUpdating = True
End Sub


bon apres midi
MichelXld
 
Bonjour Michel

avant d'essayer cette macro dont je te remercie... pourquoi faut-il que chaque feuille est un N° different ?
la boucle qui incrémente de fichier ne permet-elle pas de distinguer la feuille1 du fichier 100.xls de celle (N°1 aussi) du fichier 101.xls ....?
merci de ta réponse!
jean philippe
 
rebonjour jean philippe

quand j'ai lu ...une donnée sur chaque feuille en c4... dans ton premier message , j'ai interpreté ( sans doute à tort ) que tu souhaitais récupérer des informations dans plusieurs onglets d'un meme classeur ...


bonne soiree
MichelXld
 
rebonjour Michel,

alors là je ne comprend plus...ca ne me donne plus les données en cellule A??? par contre je récupère les infos des autres cellules b3 et c4 pour l'exemple... toutes les 3 lignes ???
j'ai inséré dans ta dernière macro :

With ActiveSheet.Cells(Y, 1)
.Formula = "='C:\Documents and Settings\michel\dossier\general\excel\[" & Tableau(X) & "]Feuil1" & "'!" & "A1"
.Value = .Value
End With

au départ j'ai plusieurs feuilles N° 1 qui ont chacune une info dans A1, puis B3 et c4 par exemple. mais je veux que la synthese "mette" les infos des c4 en colonne B et celles des B3 en colonne C..
je dois oublier quelquechose... mais quoi ?
cela t'inspire ??
 
rebonsoir Michel,


après quelques tatonnements.... j'ai enfin réussi à obtenir le résulat souhaité !
j'ai supprimé la boucle j : for 1 to 3 relatif au feuille, et j'ai supprimé la réf au N) de feuille.... et c'est bon !
en tout cas merci beaucoup de ton aide.

JP
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
586
  • Question Question
Réponses
7
Affichages
377
Retour