Rassembler dans une seule feuille d'un même classeur les 7 feuilles
arrivant des mes 7 vendeurs de manière hbdomadaire.
Toutes ces différentes feuilles ont le même nombre de colonnes et arrive
donc toutes avec le même format.
Pour l'instant j'utilise le copier collez des ces 7 feuilles dans une
seule et même feuille pour traiter ensuite ces infos dans un tableau
croisé dynamique, et ces 7 manipulations me gonfle, je suis sur que
Excel dans sa toute puissance doit pouvoir faire cela pour avec une
commande spécifique.
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
JB
Bonjour,
Sub essai() hauteur = 20 largeur = 4 Sheets.Add For i = 2 To Sheets.Count Sheets(i).[A1].Resize(hauteur, largeur).Copy ActiveCell ActiveCell.Offset(hauteur, 0).Select Next i End Sub
Cordialement JB
Bonjour,
Sub essai()
hauteur = 20
largeur = 4
Sheets.Add
For i = 2 To Sheets.Count
Sheets(i).[A1].Resize(hauteur, largeur).Copy ActiveCell
ActiveCell.Offset(hauteur, 0).Select
Next i
End Sub
Sub essai() hauteur = 20 largeur = 4 Sheets.Add For i = 2 To Sheets.Count Sheets(i).[A1].Resize(hauteur, largeur).Copy ActiveCell ActiveCell.Offset(hauteur, 0).Select Next i End Sub
Cordialement JB
Sou PULL
Je vais paraître grossier, mais tout d'abord merci pour votre réponse rapide...par contre, qu'est ce que je dois faire avec votre réponse....créer une nouvelle macro et copiez simplement ce texte dedeans...quelles sont les zones à paramétrer pour les adapterà mon cas ?
Merci d'avance
Bonjour,
Sub essai() hauteur = 20 largeur = 4 Sheets.Add For i = 2 To Sheets.Count Sheets(i).[A1].Resize(hauteur, largeur).Copy ActiveCell ActiveCell.Offset(hauteur, 0).Select Next i End Sub
Cordialement JB
Je vais paraître grossier, mais tout d'abord merci pour votre réponse
rapide...par contre, qu'est ce que je dois faire avec votre
réponse....créer une nouvelle macro et copiez simplement ce texte
dedeans...quelles sont les zones à paramétrer pour les adapterà mon cas ?
Merci d'avance
Bonjour,
Sub essai()
hauteur = 20
largeur = 4
Sheets.Add
For i = 2 To Sheets.Count
Sheets(i).[A1].Resize(hauteur, largeur).Copy ActiveCell
ActiveCell.Offset(hauteur, 0).Select
Next i
End Sub
Je vais paraître grossier, mais tout d'abord merci pour votre réponse rapide...par contre, qu'est ce que je dois faire avec votre réponse....créer une nouvelle macro et copiez simplement ce texte dedeans...quelles sont les zones à paramétrer pour les adapterà mon cas ?
Merci d'avance
Bonjour,
Sub essai() hauteur = 20 largeur = 4 Sheets.Add For i = 2 To Sheets.Count Sheets(i).[A1].Resize(hauteur, largeur).Copy ActiveCell ActiveCell.Offset(hauteur, 0).Select Next i End Sub
Cordialement JB
JB
Voir PJ
http://cjoint.com/?cwje1MYoiU
-ALT+F11 -Insertion/Module -Dessiner un bouton avec la barre d'outils Formulaires et lui affecter la macro.
-largeur représente le nb de colonnes -hauteur le nb de lignes
Sub syntèseFeuilles() hauteur = 20 largeur = 4 Sheets.Add For i = 2 To Sheets.Count Sheets(i).[A1].Resize(hauteur, largeur).Copy ActiveCell ActiveCell.Offset(hauteur, 0).Select Next i End Sub
JB
Voir PJ
http://cjoint.com/?cwje1MYoiU
-ALT+F11
-Insertion/Module
-Dessiner un bouton avec la barre d'outils Formulaires et lui affecter
la macro.
-largeur représente le nb de colonnes
-hauteur le nb de lignes
Sub syntèseFeuilles()
hauteur = 20
largeur = 4
Sheets.Add
For i = 2 To Sheets.Count
Sheets(i).[A1].Resize(hauteur, largeur).Copy ActiveCell
ActiveCell.Offset(hauteur, 0).Select
Next i
End Sub
-ALT+F11 -Insertion/Module -Dessiner un bouton avec la barre d'outils Formulaires et lui affecter la macro.
-largeur représente le nb de colonnes -hauteur le nb de lignes
Sub syntèseFeuilles() hauteur = 20 largeur = 4 Sheets.Add For i = 2 To Sheets.Count Sheets(i).[A1].Resize(hauteur, largeur).Copy ActiveCell ActiveCell.Offset(hauteur, 0).Select Next i End Sub
JB
Sou PULL
Ce n'est pas tout a fait que je cherchait car en fait mes 7 feuilles ont un nombre de lignes variable. Mais j'a tout de même trouvé une solution dans un autre post, la ligne :
Range("H65000").End(xlUp).Offset(1, 0).Select
Ainsi, je sélectionne dans chaque classeur que m'envoi les vendeurs toute les cellules de A1 à Uxx que je copie/colle dans ma feuille de synthèse, à partir de la colone H et la ligne 5 qui est le début de la plage de données dans laquelle vient ensuite piochez un tableau croisé dynamique et le copiez collez suivant démarre tout seul à la première ligne vide.
Je vous livre le résultat de ma macro, au cas ou cela pourrait aider d'autres personnes. Si vous voyez une amélioration possible, je suis preneur...:
-ALT+F11 -Insertion/Module -Dessiner un bouton avec la barre d'outils Formulaires et lui affecter la macro.
-largeur représente le nb de colonnes -hauteur le nb de lignes
Sub syntèseFeuilles() hauteur = 20 largeur = 4 Sheets.Add For i = 2 To Sheets.Count Sheets(i).[A1].Resize(hauteur, largeur).Copy ActiveCell ActiveCell.Offset(hauteur, 0).Select Next i End Sub
JB
Ce n'est pas tout a fait que je cherchait car en fait mes 7 feuilles ont
un nombre de lignes variable. Mais j'a tout de même trouvé une solution
dans un autre post, la ligne :
Range("H65000").End(xlUp).Offset(1, 0).Select
Ainsi, je sélectionne dans chaque classeur que m'envoi les vendeurs
toute les cellules de A1 à Uxx que je copie/colle dans ma feuille de
synthèse, à partir de la colone H et la ligne 5 qui est le début de la
plage de données dans laquelle vient ensuite piochez un tableau croisé
dynamique et le copiez collez suivant démarre tout seul à la première
ligne vide.
Je vous livre le résultat de ma macro, au cas ou cela pourrait aider
d'autres personnes. Si vous voyez une amélioration possible, je suis
preneur...:
-ALT+F11
-Insertion/Module
-Dessiner un bouton avec la barre d'outils Formulaires et lui affecter
la macro.
-largeur représente le nb de colonnes
-hauteur le nb de lignes
Sub syntèseFeuilles()
hauteur = 20
largeur = 4
Sheets.Add
For i = 2 To Sheets.Count
Sheets(i).[A1].Resize(hauteur, largeur).Copy ActiveCell
ActiveCell.Offset(hauteur, 0).Select
Next i
End Sub
Ce n'est pas tout a fait que je cherchait car en fait mes 7 feuilles ont un nombre de lignes variable. Mais j'a tout de même trouvé une solution dans un autre post, la ligne :
Range("H65000").End(xlUp).Offset(1, 0).Select
Ainsi, je sélectionne dans chaque classeur que m'envoi les vendeurs toute les cellules de A1 à Uxx que je copie/colle dans ma feuille de synthèse, à partir de la colone H et la ligne 5 qui est le début de la plage de données dans laquelle vient ensuite piochez un tableau croisé dynamique et le copiez collez suivant démarre tout seul à la première ligne vide.
Je vous livre le résultat de ma macro, au cas ou cela pourrait aider d'autres personnes. Si vous voyez une amélioration possible, je suis preneur...:
-ALT+F11 -Insertion/Module -Dessiner un bouton avec la barre d'outils Formulaires et lui affecter la macro.
-largeur représente le nb de colonnes -hauteur le nb de lignes
Sub syntèseFeuilles() hauteur = 20 largeur = 4 Sheets.Add For i = 2 To Sheets.Count Sheets(i).[A1].Resize(hauteur, largeur).Copy ActiveCell ActiveCell.Offset(hauteur, 0).Select Next i End Sub
JB
JB
http://cjoint.com/?cwlkXRBbNm
Sub syntèseFeuilles() Sheets.Add For i = 2 To Sheets.Count Sheets(i).UsedRange.Copy ActiveCell Cells(Cells.SpecialCells(xlLastCell).Row + 2, 1).Select Next i End Sub
JB
http://cjoint.com/?cwlkXRBbNm
Sub syntèseFeuilles()
Sheets.Add
For i = 2 To Sheets.Count
Sheets(i).UsedRange.Copy ActiveCell
Cells(Cells.SpecialCells(xlLastCell).Row + 2, 1).Select
Next i
End Sub
Sub syntèseFeuilles() Sheets.Add For i = 2 To Sheets.Count Sheets(i).UsedRange.Copy ActiveCell Cells(Cells.SpecialCells(xlLastCell).Row + 2, 1).Select Next i End Sub
JB
JB
Si formules dans le classeurs importés:
Sub syntèseClasseursMemeFeuille() Cells.Clear [A1].Select fenetre = ActiveWorkbook.Name ChDir ActiveWorkbook.Path nf = Dir("vendeur*.xls") ' premier fichier Do While nf <> "" Workbooks.Open Filename:=nf ActiveSheet.UsedRange.Copy Windows(fenetre).Activate ActiveSheet.PasteSpecial ' pour éliminer les formules Workbooks(nf).Close False Cells(Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1, 1).Select nf = Dir ' fichier suivant Loop End Sub
S'il n'y a pas de formules dans les classeurs importés:
Sub syntèseClasseursMemeFeuille2() Cells.Clear [A1].Select fenetre = ActiveWorkbook.Name ChDir ActiveWorkbook.Path nf = Dir("vendeur*.xls") ' premier fichier Do While nf <> "" Workbooks.Open Filename:=nf Windows(fenetre).Activate Workbooks(nf).ActiveSheet.UsedRange.Copy ActiveCell Workbooks(nf).Close False Cells(Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1, 1).Select nf = Dir ' fichier suivant Loop End Sub
JB
Si formules dans le classeurs importés:
Sub syntèseClasseursMemeFeuille()
Cells.Clear
[A1].Select
fenetre = ActiveWorkbook.Name
ChDir ActiveWorkbook.Path
nf = Dir("vendeur*.xls") ' premier fichier
Do While nf <> ""
Workbooks.Open Filename:=nf
ActiveSheet.UsedRange.Copy
Windows(fenetre).Activate
ActiveSheet.PasteSpecial ' pour éliminer les formules
Workbooks(nf).Close False
Cells(Cells.Find("*", SearchOrder:=xlByRows,
SearchDirection:=xlPrevious).Row + 1, 1).Select
nf = Dir ' fichier suivant
Loop
End Sub
S'il n'y a pas de formules dans les classeurs importés:
Sub syntèseClasseursMemeFeuille2()
Cells.Clear
[A1].Select
fenetre = ActiveWorkbook.Name
ChDir ActiveWorkbook.Path
nf = Dir("vendeur*.xls") ' premier fichier
Do While nf <> ""
Workbooks.Open Filename:=nf
Windows(fenetre).Activate
Workbooks(nf).ActiveSheet.UsedRange.Copy ActiveCell
Workbooks(nf).Close False
Cells(Cells.Find("*", SearchOrder:=xlByRows,
SearchDirection:=xlPrevious).Row + 1, 1).Select
nf = Dir ' fichier suivant
Loop
End Sub
Sub syntèseClasseursMemeFeuille() Cells.Clear [A1].Select fenetre = ActiveWorkbook.Name ChDir ActiveWorkbook.Path nf = Dir("vendeur*.xls") ' premier fichier Do While nf <> "" Workbooks.Open Filename:=nf ActiveSheet.UsedRange.Copy Windows(fenetre).Activate ActiveSheet.PasteSpecial ' pour éliminer les formules Workbooks(nf).Close False Cells(Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1, 1).Select nf = Dir ' fichier suivant Loop End Sub
S'il n'y a pas de formules dans les classeurs importés:
Sub syntèseClasseursMemeFeuille2() Cells.Clear [A1].Select fenetre = ActiveWorkbook.Name ChDir ActiveWorkbook.Path nf = Dir("vendeur*.xls") ' premier fichier Do While nf <> "" Workbooks.Open Filename:=nf Windows(fenetre).Activate Workbooks(nf).ActiveSheet.UsedRange.Copy ActiveCell Workbooks(nf).Close False Cells(Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1, 1).Select nf = Dir ' fichier suivant Loop End Sub
JB
Sou PULL
Re-bonjour, j'ai des difficultés à mettre en place cette Sub : Les 7 classeurs que je souhaite importer n'ont pas de formules donc j'ai essayé de mettre en place la deuxième solutions proposé. J'ai remplacé "vendeur*.xls" par le nom du premier classeur.
Quand j'exécute la macro, tout est OK, les données du classeur "vendeur_nomduvendeur1" se copie comme je le désire dans la feuille à partir de laquelle est exécuté la macro.
Là où cela se corse c'est quand à la suite du deuxième nf = Dir je saisie ("vendeur_nomduvendeur2.xls") et que j'exécute la macro, il récupère bien les données du vendeur 1, puis celle du vendeur 2 et là il recommence la copie des données du vendeur 2 à l'infinie tant que je n'appuis pas sur Esc pour stopper l'exécution de la macro.
A partir de quelle ligne et jusqu'ou dois dupliquer le code sachant que j'ai au total 7 classeurs différent à assembler dans la même feuille ?
Excusez par avance mon amateurisme....
Soupull
S'il n'y a pas de formules dans les classeurs importés:
Sub syntèseClasseursMemeFeuille2() Cells.Clear [A1].Select fenetre = ActiveWorkbook.Name ChDir ActiveWorkbook.Path nf = Dir("vendeur*.xls") ' premier fichier Do While nf <> "" Workbooks.Open Filename:=nf Windows(fenetre).Activate Workbooks(nf).ActiveSheet.UsedRange.Copy ActiveCell Workbooks(nf).Close False Cells(Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1, 1).Select nf = Dir ' fichier suivant Loop End Sub
Re-bonjour, j'ai des difficultés à mettre en place cette Sub :
Les 7 classeurs que je souhaite importer n'ont pas de formules donc j'ai
essayé de mettre en place la deuxième solutions proposé. J'ai remplacé
"vendeur*.xls" par le nom du premier classeur.
Quand j'exécute la macro, tout est OK, les données du classeur
"vendeur_nomduvendeur1" se copie comme je le désire dans la feuille à
partir de laquelle est exécuté la macro.
Là où cela se corse c'est quand à la suite du deuxième nf = Dir je
saisie ("vendeur_nomduvendeur2.xls") et que j'exécute la macro, il
récupère bien les données du vendeur 1, puis celle du vendeur 2 et là il
recommence la copie des données du vendeur 2 à l'infinie tant que je
n'appuis pas sur Esc pour stopper l'exécution de la macro.
A partir de quelle ligne et jusqu'ou dois dupliquer le code sachant que
j'ai au total 7 classeurs différent à assembler dans la même feuille ?
Excusez par avance mon amateurisme....
Soupull
S'il n'y a pas de formules dans les classeurs importés:
Sub syntèseClasseursMemeFeuille2()
Cells.Clear
[A1].Select
fenetre = ActiveWorkbook.Name
ChDir ActiveWorkbook.Path
nf = Dir("vendeur*.xls") ' premier fichier
Do While nf <> ""
Workbooks.Open Filename:=nf
Windows(fenetre).Activate
Workbooks(nf).ActiveSheet.UsedRange.Copy ActiveCell
Workbooks(nf).Close False
Cells(Cells.Find("*", SearchOrder:=xlByRows,
SearchDirection:=xlPrevious).Row + 1, 1).Select
nf = Dir ' fichier suivant
Loop
End Sub
Re-bonjour, j'ai des difficultés à mettre en place cette Sub : Les 7 classeurs que je souhaite importer n'ont pas de formules donc j'ai essayé de mettre en place la deuxième solutions proposé. J'ai remplacé "vendeur*.xls" par le nom du premier classeur.
Quand j'exécute la macro, tout est OK, les données du classeur "vendeur_nomduvendeur1" se copie comme je le désire dans la feuille à partir de laquelle est exécuté la macro.
Là où cela se corse c'est quand à la suite du deuxième nf = Dir je saisie ("vendeur_nomduvendeur2.xls") et que j'exécute la macro, il récupère bien les données du vendeur 1, puis celle du vendeur 2 et là il recommence la copie des données du vendeur 2 à l'infinie tant que je n'appuis pas sur Esc pour stopper l'exécution de la macro.
A partir de quelle ligne et jusqu'ou dois dupliquer le code sachant que j'ai au total 7 classeurs différent à assembler dans la même feuille ?
Excusez par avance mon amateurisme....
Soupull
S'il n'y a pas de formules dans les classeurs importés:
Sub syntèseClasseursMemeFeuille2() Cells.Clear [A1].Select fenetre = ActiveWorkbook.Name ChDir ActiveWorkbook.Path nf = Dir("vendeur*.xls") ' premier fichier Do While nf <> "" Workbooks.Open Filename:=nf Windows(fenetre).Activate Workbooks(nf).ActiveSheet.UsedRange.Copy ActiveCell Workbooks(nf).Close False Cells(Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1, 1).Select nf = Dir ' fichier suivant Loop End Sub
JB
IL n'y a besoin du dupliquer de code. C'est la boucle qui doit parcourir tous les classeurs commençant par Vendeur. Il faut: -que les noms des fichiers commencent par Vendeur -qu'ils soient dans le même répertoire que le programme
Exécuter la macro en pas à pas avec F8 pour comprendre le fonctionnement.
Voir PJ avec exemple: http://cjoint.com/?cwsfTBaDwq
JB
IL n'y a besoin du dupliquer de code.
C'est la boucle qui doit parcourir tous les classeurs commençant par
Vendeur. Il faut:
-que les noms des fichiers commencent par Vendeur
-qu'ils soient dans le même répertoire que le programme
Exécuter la macro en pas à pas avec F8 pour comprendre le
fonctionnement.
Voir PJ avec exemple: http://cjoint.com/?cwsfTBaDwq
IL n'y a besoin du dupliquer de code. C'est la boucle qui doit parcourir tous les classeurs commençant par Vendeur. Il faut: -que les noms des fichiers commencent par Vendeur -qu'ils soient dans le même répertoire que le programme
Exécuter la macro en pas à pas avec F8 pour comprendre le fonctionnement.
Voir PJ avec exemple: http://cjoint.com/?cwsfTBaDwq