Récupérer des tableaux de valeurs de plusieurs onglets sur une même feuille
4 réponses
petitanouk
Bonjour,
J'ai un petit souci sur Excel. Voici le problème.
J'ai un fichier Excel qui contient 100 onglets structurés de la même façon. Chaque onglet contient 96 valeurs organisées en tableau (12 colonnes x 8 lignes : de la colonne B à M et de la ligne 7 à 14).
Je souhaiterai "copier-coller" les 96 valeurs de chaque onglet sur une même feuille en mettant chaque tableau de 96 valeurs les uns en-dessous des autres.
Après, j'aurai à faire des calculs de moyenne, écart-type,...
Une possibilité serait de le faire manuellement mais c'est très fastidieux (environ 2h à faire du copier-coller).
Je me tourne vers vous pour savoir si l'on peut entrer une Macro ou un code VBA pour automatiser cette manœuvre, sachant que je suis complètement novice en programmation.
Si je ne suis pas clair, n'hésitez pas à me le dire.
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
DanielCo
Bonjour, Essaie :
Sub test1() Dim sh As Worksheet, Ctr As Integer Dim inCalculationMode As Integer Application.ScreenUpdating = False inCalculationMode = Application.Calculation Application.Calculation = xlCalculationManual Sheets.Add ActiveSheet.Name = "Récap" Ctr = 1 For Each sh In Worksheets If sh.Name <> "Récap" Then sh.[B7:M14].Copy Cells(Ctr, 1) Ctr = Ctr + 8 End If Next sh Application.Calculation = inCalculationMode Application.ScreenUpdating = True End Sub
Cordialement. Daniel
Bonjour,
J'ai un petit souci sur Excel. Voici le problème.
J'ai un fichier Excel qui contient 100 onglets structurés de la même façon. Chaque onglet contient 96 valeurs organisées en tableau (12 colonnes x 8 lignes
de la colonne B à M et de la ligne 7 à 14).
Je souhaiterai "copier-coller" les 96 valeurs de chaque onglet sur une même feuille en mettant chaque tableau de 96 valeurs les uns en-dessous des autres.
Après, j'aurai à faire des calculs de moyenne, écart-type,...
Une possibilité serait de le faire manuellement mais c'est très fastidieux (environ 2h à faire du copier-coller).
Je me tourne vers vous pour savoir si l'on peut entrer une Macro ou un code VBA pour automatiser cette man½uvre, sachant que je suis complètement novice en programmation.
Si je ne suis pas clair, n'hésitez pas à me le dire.
Je vous remercie de votre aide.
Bonjour,
Essaie :
Sub test1()
Dim sh As Worksheet, Ctr As Integer
Dim inCalculationMode As Integer
Application.ScreenUpdating = False
inCalculationMode = Application.Calculation
Application.Calculation = xlCalculationManual
Sheets.Add
ActiveSheet.Name = "Récap"
Ctr = 1
For Each sh In Worksheets
If sh.Name <> "Récap" Then
sh.[B7:M14].Copy Cells(Ctr, 1)
Ctr = Ctr + 8
End If
Next sh
Application.Calculation = inCalculationMode
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
Bonjour,
J'ai un petit souci sur Excel. Voici le problème.
J'ai un fichier Excel qui contient 100 onglets structurés de la même façon.
Chaque onglet contient 96 valeurs organisées en tableau (12 colonnes x 8
lignes
de la colonne B à M et de la ligne 7 à 14).
Je souhaiterai "copier-coller" les 96 valeurs de chaque onglet sur une même
feuille en mettant chaque tableau de 96 valeurs les uns en-dessous des
autres.
Après, j'aurai à faire des calculs de moyenne, écart-type,...
Une possibilité serait de le faire manuellement mais c'est très fastidieux
(environ 2h à faire du copier-coller).
Je me tourne vers vous pour savoir si l'on peut entrer une Macro ou un code
VBA pour automatiser cette man½uvre, sachant que je suis complètement novice
en programmation.
Si je ne suis pas clair, n'hésitez pas à me le dire.
Sub test1() Dim sh As Worksheet, Ctr As Integer Dim inCalculationMode As Integer Application.ScreenUpdating = False inCalculationMode = Application.Calculation Application.Calculation = xlCalculationManual Sheets.Add ActiveSheet.Name = "Récap" Ctr = 1 For Each sh In Worksheets If sh.Name <> "Récap" Then sh.[B7:M14].Copy Cells(Ctr, 1) Ctr = Ctr + 8 End If Next sh Application.Calculation = inCalculationMode Application.ScreenUpdating = True End Sub
Cordialement. Daniel
Bonjour,
J'ai un petit souci sur Excel. Voici le problème.
J'ai un fichier Excel qui contient 100 onglets structurés de la même façon. Chaque onglet contient 96 valeurs organisées en tableau (12 colonnes x 8 lignes
de la colonne B à M et de la ligne 7 à 14).
Je souhaiterai "copier-coller" les 96 valeurs de chaque onglet sur une même feuille en mettant chaque tableau de 96 valeurs les uns en-dessous des autres.
Après, j'aurai à faire des calculs de moyenne, écart-type,...
Une possibilité serait de le faire manuellement mais c'est très fastidieux (environ 2h à faire du copier-coller).
Je me tourne vers vous pour savoir si l'on peut entrer une Macro ou un code VBA pour automatiser cette man½uvre, sachant que je suis complètement novice en programmation.
Si je ne suis pas clair, n'hésitez pas à me le dire.
Je vous remercie de votre aide.
isabelle
bonjour petitanouk,
est ce que ce fichier comporte uniquement les 100 onglets en questions ?
isabelle
Le 2011-03-16 06:29, petitanouk a écrit :
Bonjour,
J'ai un petit souci sur Excel. Voici le problème.
J'ai un fichier Excel qui contient 100 onglets structurés de la même façon. Chaque onglet contient 96 valeurs organisées en tableau (12 colonnes x 8 lignes : de la colonne B à M et de la ligne 7 à 14). Je souhaiterai "copier-coller" les 96 valeurs de chaque onglet sur une même feuille en mettant chaque tableau de 96 valeurs les uns en-dessous des autres.
Après, j'aurai à faire des calculs de moyenne, écart-type,...
Une possibilité serait de le faire manuellement mais c'est très fastidieux (environ 2h à faire du copier-coller).
Je me tourne vers vous pour savoir si l'on peut entrer une Macro ou un code VBA pour automatiser cette manœuvre, sachant que je suis complètement novice en programmation.
Si je ne suis pas clair, n'hésitez pas à me le dire.
Je vous remercie de votre aide.
bonjour petitanouk,
est ce que ce fichier comporte uniquement les 100 onglets en questions ?
isabelle
Le 2011-03-16 06:29, petitanouk a écrit :
Bonjour,
J'ai un petit souci sur Excel. Voici le problème.
J'ai un fichier Excel qui contient 100 onglets structurés de la même façon.
Chaque onglet contient 96 valeurs organisées en tableau (12 colonnes x 8 lignes
: de la colonne B à M et de la ligne 7 à 14).
Je souhaiterai "copier-coller" les 96 valeurs de chaque onglet sur une même
feuille en mettant chaque tableau de 96 valeurs les uns en-dessous des autres.
Après, j'aurai à faire des calculs de moyenne, écart-type,...
Une possibilité serait de le faire manuellement mais c'est très fastidieux
(environ 2h à faire du copier-coller).
Je me tourne vers vous pour savoir si l'on peut entrer une Macro ou un code VBA
pour automatiser cette manœuvre, sachant que je suis complètement novice en
programmation.
Si je ne suis pas clair, n'hésitez pas à me le dire.
est ce que ce fichier comporte uniquement les 100 onglets en questions ?
isabelle
Le 2011-03-16 06:29, petitanouk a écrit :
Bonjour,
J'ai un petit souci sur Excel. Voici le problème.
J'ai un fichier Excel qui contient 100 onglets structurés de la même façon. Chaque onglet contient 96 valeurs organisées en tableau (12 colonnes x 8 lignes : de la colonne B à M et de la ligne 7 à 14). Je souhaiterai "copier-coller" les 96 valeurs de chaque onglet sur une même feuille en mettant chaque tableau de 96 valeurs les uns en-dessous des autres.
Après, j'aurai à faire des calculs de moyenne, écart-type,...
Une possibilité serait de le faire manuellement mais c'est très fastidieux (environ 2h à faire du copier-coller).
Je me tourne vers vous pour savoir si l'on peut entrer une Macro ou un code VBA pour automatiser cette manœuvre, sachant que je suis complètement novice en programmation.
Si je ne suis pas clair, n'hésitez pas à me le dire.
Je vous remercie de votre aide.
petitanouk
DanielCo a écrit le 16/03/2011 à 12h02 :
Bonjour, Essaie :
Sub test1() Dim sh As Worksheet, Ctr As Integer Dim inCalculationMode As Integer Application.ScreenUpdating = False inCalculationMode = Application.Calculation Application.Calculation = xlCalculationManual Sheets.Add ActiveSheet.Name = "Récap" Ctr = 1 For Each sh In Worksheets If sh.Name <> "Récap" Then sh.[B7:M14].Copy Cells(Ctr, 1) Ctr = Ctr + 8 End If Next sh Application.Calculation = inCalculationMode Application.ScreenUpdating = True End Sub
Cordialement. Daniel
Bonjour,
J'ai un petit souci sur Excel. Voici le problème.
J'ai un fichier Excel qui contient 100 onglets structurés de la même façon. Chaque onglet contient 96 valeurs organisées en tableau (12 colonnes x 8 lignes
de la colonne B à M et de la ligne 7 à 14).
Je souhaiterai "copier-coller" les 96 valeurs de chaque onglet sur une même feuille en mettant chaque tableau de 96 valeurs les uns en-dessous des autres.
Après, j'aurai à faire des calculs de moyenne, écart-type,...
Une possibilité serait de le faire manuellement mais c'est très fastidieux (environ 2h à faire du copier-coller).
Je me tourne vers vous pour savoir si l'on peut entrer une Macro ou un code VBA pour automatiser cette man½uvre, sachant que je suis complètement novice en programmation.
Si je ne suis pas clair, n'hésitez pas à me le dire.
Je vous remercie de votre aide.
Bonjour DanielCo,
J'ai essayé la Macro sur un des fichiers et cela marche sans problème. C'est magnifique !!!
Par contre, serait-il possible de détailler, si tu as le temps bien-sûr, les différents lignes de la macro afin de comprendre ? C'est de la curiosité personnelle et cela peut me servir au cas où j'aurai à changer la macro.
Encore merci infiniment pour l'aide apportée.
Bien cordialement,
tan
DanielCo a écrit le 16/03/2011 à 12h02 :
Bonjour,
Essaie :
Sub test1()
Dim sh As Worksheet, Ctr As Integer
Dim inCalculationMode As Integer
Application.ScreenUpdating = False
inCalculationMode = Application.Calculation
Application.Calculation = xlCalculationManual
Sheets.Add
ActiveSheet.Name = "Récap"
Ctr = 1
For Each sh In Worksheets
If sh.Name <> "Récap" Then
sh.[B7:M14].Copy Cells(Ctr, 1)
Ctr = Ctr + 8
End If
Next sh
Application.Calculation = inCalculationMode
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
Bonjour,
J'ai un petit souci sur Excel. Voici le problème.
J'ai un fichier Excel qui contient 100 onglets structurés de la
même façon.
Chaque onglet contient 96 valeurs organisées en tableau (12 colonnes x
8
lignes
de la colonne B à M et de la ligne 7 à 14).
Je souhaiterai "copier-coller" les 96 valeurs de chaque onglet sur
une même
feuille en mettant chaque tableau de 96 valeurs les uns en-dessous des
autres.
Après, j'aurai à faire des calculs de moyenne,
écart-type,...
Une possibilité serait de le faire manuellement mais c'est très
fastidieux
(environ 2h à faire du copier-coller).
Je me tourne vers vous pour savoir si l'on peut entrer une Macro ou un code
VBA pour automatiser cette man½uvre, sachant que je suis
complètement novice
en programmation.
Si je ne suis pas clair, n'hésitez pas à me le dire.
Je vous remercie de votre aide.
Bonjour DanielCo,
J'ai essayé la Macro sur un des fichiers et cela marche sans problème. C'est magnifique !!!
Par contre, serait-il possible de détailler, si tu as le temps bien-sûr, les différents lignes de la macro afin de comprendre ?
C'est de la curiosité personnelle et cela peut me servir au cas où j'aurai à changer la macro.
Sub test1() Dim sh As Worksheet, Ctr As Integer Dim inCalculationMode As Integer Application.ScreenUpdating = False inCalculationMode = Application.Calculation Application.Calculation = xlCalculationManual Sheets.Add ActiveSheet.Name = "Récap" Ctr = 1 For Each sh In Worksheets If sh.Name <> "Récap" Then sh.[B7:M14].Copy Cells(Ctr, 1) Ctr = Ctr + 8 End If Next sh Application.Calculation = inCalculationMode Application.ScreenUpdating = True End Sub
Cordialement. Daniel
Bonjour,
J'ai un petit souci sur Excel. Voici le problème.
J'ai un fichier Excel qui contient 100 onglets structurés de la même façon. Chaque onglet contient 96 valeurs organisées en tableau (12 colonnes x 8 lignes
de la colonne B à M et de la ligne 7 à 14).
Je souhaiterai "copier-coller" les 96 valeurs de chaque onglet sur une même feuille en mettant chaque tableau de 96 valeurs les uns en-dessous des autres.
Après, j'aurai à faire des calculs de moyenne, écart-type,...
Une possibilité serait de le faire manuellement mais c'est très fastidieux (environ 2h à faire du copier-coller).
Je me tourne vers vous pour savoir si l'on peut entrer une Macro ou un code VBA pour automatiser cette man½uvre, sachant que je suis complètement novice en programmation.
Si je ne suis pas clair, n'hésitez pas à me le dire.
Je vous remercie de votre aide.
Bonjour DanielCo,
J'ai essayé la Macro sur un des fichiers et cela marche sans problème. C'est magnifique !!!
Par contre, serait-il possible de détailler, si tu as le temps bien-sûr, les différents lignes de la macro afin de comprendre ? C'est de la curiosité personnelle et cela peut me servir au cas où j'aurai à changer la macro.
Encore merci infiniment pour l'aide apportée.
Bien cordialement,
tan
Jacquouille
Bonsoir
Bien que jamais marié au grand breton, je m'en vais tenter d'expliquer (dans le texte)
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
Bonjour, Essaie :
Sub test1() Dim sh As Worksheet, Ctr As Integer Dim inCalculationMode As Integer 'sont des déclarations de variables Application.ScreenUpdating = False inCalculationMode = Application.Calculation Application.Calculation = xlCalculationManual ' il met le calcul sur "manuel" pour pas fatiguer la bête
Sheets.Add 'Insérer une feuille ActiveSheet.Name = "Récap" '...et la baptiser "Récap" Ctr = 1 'Donne la valeur 1 à la var CTR. Si tu veux recopier à partir de la ligne 2 , tu donnes 2 à CTR For Each sh In Worksheets ' Pour chaque feuille dans fichier If sh.Name <> "Récap" Then ' si le nom de la feuille est différent de "Récap" sh.[B7:M14].Copy Cells(Ctr, 1) 'copie la plage B7:M14 de la feuille analysée à la cellule(CTR,1)de la feuille "Récap"--> cells(1,1) au premier coup Ctr = Ctr + 8 'quand c'est fait, ajoute 8 à la var CTR de manière à copier la plage sivante sous la précédente End If 'fin des conditions Next sh ' feuille suivante Application.Calculation = inCalculationMode Application.ScreenUpdating = True 'remet tout en l'état (calcul auto .... End Sub ' fin des haricots.
Cordialement. Daniel
Bonsoir
Bien que jamais marié au grand breton, je m'en vais tenter d'expliquer (dans
le texte)
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
Bonjour,
Essaie :
Sub test1()
Dim sh As Worksheet, Ctr As Integer
Dim inCalculationMode As Integer 'sont des déclarations de variables
Application.ScreenUpdating = False
inCalculationMode = Application.Calculation
Application.Calculation = xlCalculationManual ' il met le calcul sur
"manuel" pour pas fatiguer la bête
Sheets.Add 'Insérer une feuille
ActiveSheet.Name = "Récap" '...et la baptiser "Récap"
Ctr = 1 'Donne la valeur 1 à la var CTR. Si tu veux recopier à partir de
la ligne 2 , tu donnes 2 à CTR
For Each sh In Worksheets ' Pour chaque feuille dans fichier
If sh.Name <> "Récap" Then ' si le nom de la feuille est différent de
"Récap"
sh.[B7:M14].Copy Cells(Ctr, 1) 'copie la plage B7:M14 de la feuille
analysée à la cellule(CTR,1)de la feuille "Récap"--> cells(1,1) au premier
coup
Ctr = Ctr + 8 'quand c'est fait, ajoute 8 à la var CTR de manière à
copier la plage sivante sous la précédente
End If 'fin des conditions
Next sh ' feuille suivante
Application.Calculation = inCalculationMode
Application.ScreenUpdating = True 'remet tout en l'état (calcul auto ....
End Sub ' fin des haricots.
Bien que jamais marié au grand breton, je m'en vais tenter d'expliquer (dans le texte)
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
Bonjour, Essaie :
Sub test1() Dim sh As Worksheet, Ctr As Integer Dim inCalculationMode As Integer 'sont des déclarations de variables Application.ScreenUpdating = False inCalculationMode = Application.Calculation Application.Calculation = xlCalculationManual ' il met le calcul sur "manuel" pour pas fatiguer la bête
Sheets.Add 'Insérer une feuille ActiveSheet.Name = "Récap" '...et la baptiser "Récap" Ctr = 1 'Donne la valeur 1 à la var CTR. Si tu veux recopier à partir de la ligne 2 , tu donnes 2 à CTR For Each sh In Worksheets ' Pour chaque feuille dans fichier If sh.Name <> "Récap" Then ' si le nom de la feuille est différent de "Récap" sh.[B7:M14].Copy Cells(Ctr, 1) 'copie la plage B7:M14 de la feuille analysée à la cellule(CTR,1)de la feuille "Récap"--> cells(1,1) au premier coup Ctr = Ctr + 8 'quand c'est fait, ajoute 8 à la var CTR de manière à copier la plage sivante sous la précédente End If 'fin des conditions Next sh ' feuille suivante Application.Calculation = inCalculationMode Application.ScreenUpdating = True 'remet tout en l'état (calcul auto .... End Sub ' fin des haricots.