regrouper differentes feuilles excel

J

jph

Guest
bonjour,

pas vraiment spécialiste des macros, je bloque sur le regroupement de plusieurs feuilles de differents classeurs, sous une feuille unique.
exemple:
feuille 1 classeur 1
a2: toto c4 : nice e7: 05/01/05

feuille 1 d'un autre classseur
a2: titi c4 : paris e7: 05/01/05

feuille 1 d'un autre classseur
a2: dupont c4 : lille e7: 07/01/05

objectif : obtenir la synthese suivante

feuille 1 d'un classeur nommé "synthèse"
1a: toto 1b: nice 1c: 05/01/05
2a: titi 2b : paris 2c: 05/01/05
3a: dupont 3b : lille 3c: 07/01/05
etc...

je souhaite qu'à chaque lancement de la macro dans ma feuille de synthèse :

1) lire tous les feuilles 1 de diff classeurs excel classées dans un répertoire précis
2) commencer son regroupement à la première ligne disponible.

merci beaucoup !

je suis nul en macro... mais peut-etre puis je aider dans d'autres domaines informatiques....
 
D

Denis

Guest
Je ne sais pas écrire de macro en direct. J'utilise la fonction d'enregistrement des macros.

Ce que je ferais.
Je commence le début d'enregtistrement et je copie les données du premier classeur de la manière dont je souhaite.
Je termine l'enregistrement.
Ensuite sous VBA, je fais du copier coller de la macro en changeant autant de fois que nécessaire, le nom du fichier et des feuilles à aller chercher !
Faire attention à activer la dernière cellule et ne pas repartir de la celleule A1.

Denis.
 
J

jph

Guest
Bonjour,

merci de votre réponse. ce n'est pas une mauvaise idée... le seul problème c'est que ca ne gère pas la première ligne dispo... cela va donc écraser à chaque fois, mes précédentes "compil".... avez vous une autre idée ??
merci d'avance.
 
D

Denis

Guest
Pour éviter d'écraser la dernière compil:
deux solutions:

Soit activer la cellule en début de colonne, puis faire l'équivalent d'un ctrl + "flêche vers le bas", puis activer la cellule juste en dessous, et ensuite enchainer la suite du programe. A faire entre chaque changement de fichier.

Ou sinon à la fin de chaque copie, activer la cellule qui recevra la suite du copiage. Dans ce cas, il faut en début de macro, définir la première cellule de réception, et dans la suite de la macro activer la "dernière cellule active".

Etais-je plus clair ????

Denis
 
J

jph

Guest
encore merci pour ce complément....

Soit activer la cellule en début de colonne, puis faire l'équivalent d'un ctrl + "flêche vers le bas", puis activer la cellule juste en dessous, et ensuite enchainer la suite du programe. A faire entre chaque changement de fichier.

Ou sinon à la fin de chaque copie, activer la cellule qui recevra la suite du copiage. Dans ce cas, il faut en début de macro, définir la première cellule de réception, et dans la suite de la macro activer la "dernière cellule active".



simplement je ne connais pas les commandes macro à saisir.
avez vous un modèle? merci !
 
D

Denis

Guest
Alors, je ferais de la manière suivante:

Range("E1").Select
pour activer la cellule E1.
A vous de choisir celle qui vous convient. par ex: le début de votre colonne ou la première cellule ou sera collée la valeur.

Puis vous déroulez votre macro de copiage. Juste les copy / paste.

Et là deux solutions:

Soit vous refaite:
Range("E1").Select
Puis
Selection.End(xlDown).Select
pour aller à la dernière cellule remplie de la colonne E.
Puis
ActiveCell.Offset(1, 0).Select
Pour activer la cellule sur la ligne du dessous (1) de la même colonne (0)

et vous recommencer la partie copiage de la macro....

Soit vous compter directement le nombre de colonnes et de lignes pour activer la cellule grâce à: ActiveCell.Offset(A, B).Select

A lignes et B colonnes

En espérant vous avoir aidé.

Denis
 

Statistiques des forums

Discussions
312 547
Messages
2 089 492
Membres
104 185
dernier inscrit
Daniel RONNA