bonsoir
pour plusieurs classeurs dans un répertoire je voudrai récupérer une
quinzaine de valeurs
dans des cellules ; par exemple le valeurs de A4, A9, A13, B5, C6 D8 etc...
au lieu d'ouvrir les classeurs un par un et copier les valeurs dans une
feuille
j'avais l'idée de les stocker dans un tableau temporaire et de copier ce
tableau dans la feuille
(chaque donnée d'un classeur dans une ligne différente)
en cherchant un peu j'ai fait la macro ci dessous qui ne marche pas
évidemment
merci de votre aide
ptck
Sub Macro1()
Dim a(1 To 6)
For Each c In Range("A4,A9,A11,A13,A18,A25")
For i = 1 To 6
a(i, 1) = c
Next i
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jac
... et si, sans macro, tu faisais un calcul multi-classeurs ? Tu ouvres ton classeur de résultats et tu copies les valeurs d'un classeur cible puis tu passes par collage spécial, collage avec liaison dans le classeur de résultats. Eventuellement, tu déplaces tes formules pour obtenir ce que tu veux. Eventuellement tu les dupliques et tu remplaces le nom du classeur par le nom d'un autre classeur s'il ont tous la même structure. Conseil : dans chaque classeur tu fais écrire la date de la dernière modif que tu ramènes dans ton classeur de résultats afin de voir si certains classeurs n'ont pas été mis à jour, par exemple.
On en reparle quand tu veux.
Jac
ptck avait soumis l'idée :
bonsoir pour plusieurs classeurs dans un répertoire je voudrai récupérer une quinzaine de valeurs dans des cellules ; par exemple le valeurs de A4, A9, A13, B5, C6 D8 etc... au lieu d'ouvrir les classeurs un par un et copier les valeurs dans une feuille j'avais l'idée de les stocker dans un tableau temporaire et de copier ce tableau dans la feuille (chaque donnée d'un classeur dans une ligne différente)
en cherchant un peu j'ai fait la macro ci dessous qui ne marche pas évidemment merci de votre aide ptck
Sub Macro1()
Dim a(1 To 6) For Each c In Range("A4,A9,A11,A13,A18,A25") For i = 1 To 6 a(i, 1) = c Next i End Sub
... et si, sans macro, tu faisais un calcul multi-classeurs ?
Tu ouvres ton classeur de résultats et tu copies les valeurs d'un
classeur cible puis tu passes par collage spécial, collage avec liaison
dans le classeur de résultats. Eventuellement, tu déplaces tes formules
pour obtenir ce que tu veux. Eventuellement tu les dupliques et tu
remplaces le nom du classeur par le nom d'un autre classeur s'il ont
tous la même structure.
Conseil : dans chaque classeur tu fais écrire la date de la dernière
modif que tu ramènes dans ton classeur de résultats afin de voir si
certains classeurs n'ont pas été mis à jour, par exemple.
On en reparle quand tu veux.
Jac
ptck avait soumis l'idée :
bonsoir
pour plusieurs classeurs dans un répertoire je voudrai récupérer une
quinzaine de valeurs
dans des cellules ; par exemple le valeurs de A4, A9, A13, B5, C6 D8 etc...
au lieu d'ouvrir les classeurs un par un et copier les valeurs dans une
feuille
j'avais l'idée de les stocker dans un tableau temporaire et de copier ce
tableau dans la feuille
(chaque donnée d'un classeur dans une ligne différente)
en cherchant un peu j'ai fait la macro ci dessous qui ne marche pas
évidemment
merci de votre aide
ptck
Sub Macro1()
Dim a(1 To 6)
For Each c In Range("A4,A9,A11,A13,A18,A25")
For i = 1 To 6
a(i, 1) = c
Next i
End Sub
... et si, sans macro, tu faisais un calcul multi-classeurs ? Tu ouvres ton classeur de résultats et tu copies les valeurs d'un classeur cible puis tu passes par collage spécial, collage avec liaison dans le classeur de résultats. Eventuellement, tu déplaces tes formules pour obtenir ce que tu veux. Eventuellement tu les dupliques et tu remplaces le nom du classeur par le nom d'un autre classeur s'il ont tous la même structure. Conseil : dans chaque classeur tu fais écrire la date de la dernière modif que tu ramènes dans ton classeur de résultats afin de voir si certains classeurs n'ont pas été mis à jour, par exemple.
On en reparle quand tu veux.
Jac
ptck avait soumis l'idée :
bonsoir pour plusieurs classeurs dans un répertoire je voudrai récupérer une quinzaine de valeurs dans des cellules ; par exemple le valeurs de A4, A9, A13, B5, C6 D8 etc... au lieu d'ouvrir les classeurs un par un et copier les valeurs dans une feuille j'avais l'idée de les stocker dans un tableau temporaire et de copier ce tableau dans la feuille (chaque donnée d'un classeur dans une ligne différente)
en cherchant un peu j'ai fait la macro ci dessous qui ne marche pas évidemment merci de votre aide ptck
Sub Macro1()
Dim a(1 To 6) For Each c In Range("A4,A9,A11,A13,A18,A25") For i = 1 To 6 a(i, 1) = c Next i End Sub
FFO
Salut à toi L'onglet de chaque classeur ayant le même nom je te propose ce code :
Cellule = "A4,A9,A13, B5,C6,D8" For i = 0 To UBound(Split(Cellule, ",")) Dossier = "C:Chemin" Fichier = Dir(Dossier & "*.xls") Do While Fichier <> "" VALEUR = ExecuteExcel4Macro("'" & Dossier & "[" & Fichier & "]Feuil1'!" & Range(Split(Cellule, ",")(i)).Address(ReferenceStyle:=xlR1C1)) Range("A65535").End(xlUp).Offset(1, 0) = VALEUR Fichier = Dir Loop Next
Résultat colonne A du classeur actif
Actualises : Dossier = "C:Chemin" du chemin du dossier de tes classeurs
Cellule = "A4,A9,A13, B5,C6,D8" des cellules dont tu souhaites récupérer les valeurs
VALEUR = ExecuteExcel4Macro("'" & Dossier & "[" & Fichier & "]Feuil1'!" du nom de l'onglet identique à chaque classeur (ici Feuil1)
Range("A65535").End(xlUp).Offset(1, 0) = VALEUR de la colonne du classeur actif qui reçoit les données (ici colonne A)
Fais des essais et dis moi !!!!!
Salut à toi
L'onglet de chaque classeur ayant le même nom je te propose ce code :
Cellule = "A4,A9,A13, B5,C6,D8"
For i = 0 To UBound(Split(Cellule, ","))
Dossier = "C:Chemin"
Fichier = Dir(Dossier & "*.xls")
Do While Fichier <> ""
VALEUR = ExecuteExcel4Macro("'" & Dossier & "[" & Fichier & "]Feuil1'!" &
Range(Split(Cellule, ",")(i)).Address(ReferenceStyle:=xlR1C1))
Range("A65535").End(xlUp).Offset(1, 0) = VALEUR
Fichier = Dir
Loop
Next
Résultat colonne A du classeur actif
Actualises :
Dossier = "C:Chemin"
du chemin du dossier de tes classeurs
Cellule = "A4,A9,A13, B5,C6,D8"
des cellules dont tu souhaites récupérer les valeurs
VALEUR = ExecuteExcel4Macro("'" & Dossier & "[" & Fichier & "]Feuil1'!"
du nom de l'onglet identique à chaque classeur (ici Feuil1)
Range("A65535").End(xlUp).Offset(1, 0) = VALEUR
de la colonne du classeur actif qui reçoit les données (ici colonne A)
Salut à toi L'onglet de chaque classeur ayant le même nom je te propose ce code :
Cellule = "A4,A9,A13, B5,C6,D8" For i = 0 To UBound(Split(Cellule, ",")) Dossier = "C:Chemin" Fichier = Dir(Dossier & "*.xls") Do While Fichier <> "" VALEUR = ExecuteExcel4Macro("'" & Dossier & "[" & Fichier & "]Feuil1'!" & Range(Split(Cellule, ",")(i)).Address(ReferenceStyle:=xlR1C1)) Range("A65535").End(xlUp).Offset(1, 0) = VALEUR Fichier = Dir Loop Next
Résultat colonne A du classeur actif
Actualises : Dossier = "C:Chemin" du chemin du dossier de tes classeurs
Cellule = "A4,A9,A13, B5,C6,D8" des cellules dont tu souhaites récupérer les valeurs
VALEUR = ExecuteExcel4Macro("'" & Dossier & "[" & Fichier & "]Feuil1'!" du nom de l'onglet identique à chaque classeur (ici Feuil1)
Range("A65535").End(xlUp).Offset(1, 0) = VALEUR de la colonne du classeur actif qui reçoit les données (ici colonne A)
Fais des essais et dis moi !!!!!
AnB
Merci mais la macro met dans la feuille récap la valeur de la cellule A4 du classeur 1 puis en dessous la valeur de la cellule A4 du classeur 2 puis en dessous la valeur de la cellule A4 du classeur 3 etc
et passe à la cellule A9 et fait la même chose
il faudrait dans la feuille récap les cellules en ligne et une ligne par classeur entre temps j'essaie de comprendre Merci
"FFO" a écrit dans le message de news:
Salut à toi L'onglet de chaque classeur ayant le même nom je te propose ce code :
Cellule = "A4,A9,A13, B5,C6,D8" For i = 0 To UBound(Split(Cellule, ",")) Dossier = "C:Chemin" Fichier = Dir(Dossier & "*.xls") Do While Fichier <> "" VALEUR = ExecuteExcel4Macro("'" & Dossier & "[" & Fichier & "]Feuil1'!" & Range(Split(Cellule, ",")(i)).Address(ReferenceStyle:=xlR1C1)) Range("A65535").End(xlUp).Offset(1, 0) = VALEUR Fichier = Dir Loop Next
Résultat colonne A du classeur actif
Actualises : Dossier = "C:Chemin" du chemin du dossier de tes classeurs
Cellule = "A4,A9,A13, B5,C6,D8" des cellules dont tu souhaites récupérer les valeurs
VALEUR = ExecuteExcel4Macro("'" & Dossier & "[" & Fichier & "]Feuil1'!" du nom de l'onglet identique à chaque classeur (ici Feuil1)
Range("A65535").End(xlUp).Offset(1, 0) = VALEUR de la colonne du classeur actif qui reçoit les données (ici colonne A)
Fais des essais et dis moi !!!!!
Merci
mais la macro met dans la feuille récap
la valeur de la cellule A4 du classeur 1
puis en dessous la valeur de la cellule A4 du classeur 2
puis en dessous la valeur de la cellule A4 du classeur 3 etc
et passe à la cellule A9 et fait la même chose
il faudrait dans la feuille récap les cellules en ligne et une ligne par
classeur
entre temps j'essaie de comprendre
Merci
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
1A9F291D-3313-4EFA-827E-36EF2927E846@microsoft.com...
Salut à toi
L'onglet de chaque classeur ayant le même nom je te propose ce code :
Cellule = "A4,A9,A13, B5,C6,D8"
For i = 0 To UBound(Split(Cellule, ","))
Dossier = "C:Chemin"
Fichier = Dir(Dossier & "*.xls")
Do While Fichier <> ""
VALEUR = ExecuteExcel4Macro("'" & Dossier & "[" & Fichier & "]Feuil1'!" &
Range(Split(Cellule, ",")(i)).Address(ReferenceStyle:=xlR1C1))
Range("A65535").End(xlUp).Offset(1, 0) = VALEUR
Fichier = Dir
Loop
Next
Résultat colonne A du classeur actif
Actualises :
Dossier = "C:Chemin"
du chemin du dossier de tes classeurs
Cellule = "A4,A9,A13, B5,C6,D8"
des cellules dont tu souhaites récupérer les valeurs
VALEUR = ExecuteExcel4Macro("'" & Dossier & "[" & Fichier & "]Feuil1'!"
du nom de l'onglet identique à chaque classeur (ici Feuil1)
Range("A65535").End(xlUp).Offset(1, 0) = VALEUR
de la colonne du classeur actif qui reçoit les données (ici colonne A)
Merci mais la macro met dans la feuille récap la valeur de la cellule A4 du classeur 1 puis en dessous la valeur de la cellule A4 du classeur 2 puis en dessous la valeur de la cellule A4 du classeur 3 etc
et passe à la cellule A9 et fait la même chose
il faudrait dans la feuille récap les cellules en ligne et une ligne par classeur entre temps j'essaie de comprendre Merci
"FFO" a écrit dans le message de news:
Salut à toi L'onglet de chaque classeur ayant le même nom je te propose ce code :
Cellule = "A4,A9,A13, B5,C6,D8" For i = 0 To UBound(Split(Cellule, ",")) Dossier = "C:Chemin" Fichier = Dir(Dossier & "*.xls") Do While Fichier <> "" VALEUR = ExecuteExcel4Macro("'" & Dossier & "[" & Fichier & "]Feuil1'!" & Range(Split(Cellule, ",")(i)).Address(ReferenceStyle:=xlR1C1)) Range("A65535").End(xlUp).Offset(1, 0) = VALEUR Fichier = Dir Loop Next
Résultat colonne A du classeur actif
Actualises : Dossier = "C:Chemin" du chemin du dossier de tes classeurs
Cellule = "A4,A9,A13, B5,C6,D8" des cellules dont tu souhaites récupérer les valeurs
VALEUR = ExecuteExcel4Macro("'" & Dossier & "[" & Fichier & "]Feuil1'!" du nom de l'onglet identique à chaque classeur (ici Feuil1)
Range("A65535").End(xlUp).Offset(1, 0) = VALEUR de la colonne du classeur actif qui reçoit les données (ici colonne A)
Fais des essais et dis moi !!!!!
Ptck
rebonsoir
suite à vos conseil je suis arriver à ceci peut être y a t il mieux à faire merci encore ptck
Public Sub xx() Cellule = "A4,A9,A13, B5,C6,D8" lign = 1 col = 0 Dossier = "C:Chemin" Fichier = Dir(Dossier & "*.xls") Do While Fichier <> "" lign = lign + 1 For i = 0 To UBound(Split(Cellule, ",")) col = col + 1 valeur = ExecuteExcel4Macro("'" & Dossier & "[" & Fichier & "]Feuil1'!" & _ Range(Split(Cellule, ",")(i)).Address(ReferenceStyle:=xlR1C1)) Range(Cells(lign, col), Cells(lign, col)) = valeur Next col = 0 Fichier = Dir Loop
End Sub
rebonsoir
suite à vos conseil je suis arriver à ceci
peut être y a t il mieux à faire
merci encore
ptck
Public Sub xx()
Cellule = "A4,A9,A13, B5,C6,D8"
lign = 1
col = 0
Dossier = "C:Chemin"
Fichier = Dir(Dossier & "*.xls")
Do While Fichier <> ""
lign = lign + 1
For i = 0 To UBound(Split(Cellule, ","))
col = col + 1
valeur = ExecuteExcel4Macro("'" & Dossier & "[" & Fichier & "]Feuil1'!" & _
Range(Split(Cellule, ",")(i)).Address(ReferenceStyle:=xlR1C1))
Range(Cells(lign, col), Cells(lign, col)) = valeur
Next
col = 0
Fichier = Dir
Loop
suite à vos conseil je suis arriver à ceci peut être y a t il mieux à faire merci encore ptck
Public Sub xx() Cellule = "A4,A9,A13, B5,C6,D8" lign = 1 col = 0 Dossier = "C:Chemin" Fichier = Dir(Dossier & "*.xls") Do While Fichier <> "" lign = lign + 1 For i = 0 To UBound(Split(Cellule, ",")) col = col + 1 valeur = ExecuteExcel4Macro("'" & Dossier & "[" & Fichier & "]Feuil1'!" & _ Range(Split(Cellule, ",")(i)).Address(ReferenceStyle:=xlR1C1)) Range(Cells(lign, col), Cells(lign, col)) = valeur Next col = 0 Fichier = Dir Loop
End Sub
FFO
Rebonjour à toi
Je reprends le cour de ce fil Effectivement dans ma proposition je me suis simplement attaché à ramener les données de chaque classeur sans chercher à les ordonner dans la feuille de destination
Ton adaptation me semble correct compte tenu de la manière dont tu souhaites récupérer tes données
Je ne vois pas d'amélioration éventuelle
Au plaisir
Rebonjour à toi
Je reprends le cour de ce fil
Effectivement dans ma proposition je me suis simplement attaché à ramener
les données de chaque classeur sans chercher à les ordonner dans la feuille
de destination
Ton adaptation me semble correct compte tenu de la manière dont tu souhaites
récupérer tes données
Je reprends le cour de ce fil Effectivement dans ma proposition je me suis simplement attaché à ramener les données de chaque classeur sans chercher à les ordonner dans la feuille de destination
Ton adaptation me semble correct compte tenu de la manière dont tu souhaites récupérer tes données
Je ne vois pas d'amélioration éventuelle
Au plaisir
Jac
... as-tu essayé sans macro ?
Jac a présenté l'énoncé suivant :
... et si, sans macro, tu faisais un calcul multi-classeurs ? Tu ouvres ton classeur de résultats et tu copies les valeurs d'un classeur cible puis tu passes par collage spécial, collage avec liaison dans le classeur de résultats. Eventuellement, tu déplaces tes formules pour obtenir ce que tu veux. Eventuellement tu les dupliques et tu remplaces le nom du classeur par le nom d'un autre classeur s'il ont tous la même structure. Conseil : dans chaque classeur tu fais écrire la date de la dernière modif que tu ramènes dans ton classeur de résultats afin de voir si certains classeurs n'ont pas été mis à jour, par exemple.
On en reparle quand tu veux.
Jac
ptck avait soumis l'idée :
bonsoir pour plusieurs classeurs dans un répertoire je voudrai récupérer une quinzaine de valeurs dans des cellules ; par exemple le valeurs de A4, A9, A13, B5, C6 D8 etc... au lieu d'ouvrir les classeurs un par un et copier les valeurs dans une feuille j'avais l'idée de les stocker dans un tableau temporaire et de copier ce tableau dans la feuille (chaque donnée d'un classeur dans une ligne différente)
en cherchant un peu j'ai fait la macro ci dessous qui ne marche pas évidemment merci de votre aide ptck
Sub Macro1()
Dim a(1 To 6) For Each c In Range("A4,A9,A11,A13,A18,A25") For i = 1 To 6 a(i, 1) = c Next i End Sub
... as-tu essayé sans macro ?
Jac a présenté l'énoncé suivant :
... et si, sans macro, tu faisais un calcul multi-classeurs ?
Tu ouvres ton classeur de résultats et tu copies les valeurs d'un classeur
cible puis tu passes par collage spécial, collage avec liaison dans le
classeur de résultats. Eventuellement, tu déplaces tes formules pour obtenir
ce que tu veux. Eventuellement tu les dupliques et tu remplaces le nom du
classeur par le nom d'un autre classeur s'il ont tous la même structure.
Conseil : dans chaque classeur tu fais écrire la date de la dernière modif
que tu ramènes dans ton classeur de résultats afin de voir si certains
classeurs n'ont pas été mis à jour, par exemple.
On en reparle quand tu veux.
Jac
ptck avait soumis l'idée :
bonsoir
pour plusieurs classeurs dans un répertoire je voudrai récupérer une
quinzaine de valeurs
dans des cellules ; par exemple le valeurs de A4, A9, A13, B5, C6 D8 etc...
au lieu d'ouvrir les classeurs un par un et copier les valeurs dans une
feuille
j'avais l'idée de les stocker dans un tableau temporaire et de copier ce
tableau dans la feuille
(chaque donnée d'un classeur dans une ligne différente)
en cherchant un peu j'ai fait la macro ci dessous qui ne marche pas
évidemment
merci de votre aide
ptck
Sub Macro1()
Dim a(1 To 6)
For Each c In Range("A4,A9,A11,A13,A18,A25")
For i = 1 To 6
a(i, 1) = c
Next i
End Sub
... et si, sans macro, tu faisais un calcul multi-classeurs ? Tu ouvres ton classeur de résultats et tu copies les valeurs d'un classeur cible puis tu passes par collage spécial, collage avec liaison dans le classeur de résultats. Eventuellement, tu déplaces tes formules pour obtenir ce que tu veux. Eventuellement tu les dupliques et tu remplaces le nom du classeur par le nom d'un autre classeur s'il ont tous la même structure. Conseil : dans chaque classeur tu fais écrire la date de la dernière modif que tu ramènes dans ton classeur de résultats afin de voir si certains classeurs n'ont pas été mis à jour, par exemple.
On en reparle quand tu veux.
Jac
ptck avait soumis l'idée :
bonsoir pour plusieurs classeurs dans un répertoire je voudrai récupérer une quinzaine de valeurs dans des cellules ; par exemple le valeurs de A4, A9, A13, B5, C6 D8 etc... au lieu d'ouvrir les classeurs un par un et copier les valeurs dans une feuille j'avais l'idée de les stocker dans un tableau temporaire et de copier ce tableau dans la feuille (chaque donnée d'un classeur dans une ligne différente)
en cherchant un peu j'ai fait la macro ci dessous qui ne marche pas évidemment merci de votre aide ptck
Sub Macro1()
Dim a(1 To 6) For Each c In Range("A4,A9,A11,A13,A18,A25") For i = 1 To 6 a(i, 1) = c Next i End Sub