EXCEL] Fusionner 821 feuilles

Résolu
spitulo Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   -  
 Beni -
Bonjour,
Je possède dans un fichier excel, plus de 800 feuilles qui contiennent chacunes entre 15 et 20 lignes, etavec chacunes le même nombre de colonnes, dans le même ordre etc.

Pour réaliser un publipostage j'aurais besoin de regrouper tous ces tableaux éparpillés dans une même feuilles (les uns à la suite des autres).


La fonction Consoliderprend beaucoup de temps, et elle ne fait que des calculs, alors qu'il me faut un simple copier/couper => coller.
Et en histoire de macro, je n'y connaisrien. Bien qu'il doit y avoir une solution avec j'imagine.


J'aurais voulu savoir si quelqu'un connaissait un moyen donc de réaliser cette tache (sans copier à la main chacune des pages!! xD), ou si vous avez une macro toutes prête.


Merci d'avance!


11 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonsoir,

une proposition en vba :

si toutes les lignes sont à récupérer :
Sub recap() 
    Dim sh As Worksheet 
    For Each sh In Worksheets 
        If sh.Name <> "Recap" Then 
            sh.[A1].Resize(sh.[A65536].End(xlUp).Row, 8).Copy Destination:=Worksheets("Recap").[A65536].End(xlUp).Offset(1, 0) 
        End If 
    Next sh 
End Sub


si la 1ère ligne est une ligne de titre :
Sub recap2() 
    Dim sh As Worksheet 
    For Each sh In Worksheets 
        If sh.Name <> "Recap" Then 
            sh.[A2].Resize(sh.[A65536].End(xlUp).Row - 1, 8).Copy Destination:=Worksheets("Recap").[A65536].End(xlUp).Offset(1, 0) 
        End If 
    Next sh 
End Sub


Je ne teste pas si tu as trop de lignes pour la feuille.

eric

edit : créer une feuille nommée Recap
10
spéculos
 
SUPER, vraiment !
Bravo mec !
0
VenerPi
 
Super Merci !
0
Beni
 
Merci beaucoup!
0
spitulo Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   6
 
Merci à vous, j'ai enfin réussi ce que je voulais faire.
Je fais un petit récapitulatif là, si quelqu'un d'autre rencontre le même problème, voilà comment j'ai fonctionné :
________________________________________________________________

Pour réunir plusieurs feuilles sur un même tableau, sans copier la première ligne (celle des titres) :
Créer une feuille "Recap" avec la macro suivante :

[Code VBA :]
Sub recap()  
    Dim sh As Worksheet  
    For Each sh In Worksheets  
        If sh.Name <> "Recap" Then  
            sh.[A2].Resize(sh.[A65536].End(xlUp).Row - 1, XXX).Copy Destination:=Worksheets("Recap").[A65536].End(xlUp).Offset(1, 0)  
        End If  
    Next sh  
End Sub


Remplacer dans le code :
XXX : Nombre de colonnes de vos tableaux

Puis, exécuter la macro...
________________________________________________________________


Merci pour vos réponses.
5
Lili
 
GENIAL merci !
0
aba2s Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
slt! U peux me dire stp comment on fait pour excécuter ton macro.
J'ai réussi à le réecrire mais j vois pas la feuille recap apres éxcution.
merci d'avance
0
tidou624
 
Bonjour je copie votre code mais il y une erreur d'indice et je n'arrive pas à la trouver.
Pouvez-vous m'aider ?
0
tchernosplif Messages postés 600 Date d'inscription   Statut Membre Dernière intervention   247
 
l'avantage d'utiliser la fonction INDIRECT est justement d'utiliser un n° de cellule ald du texte.

en tirant vers le bas la cellule A1 (Feuil1) on écrit rapidement toutes les feuilles jusqu'à Feuil800

si vraiment tu galères, envoies ton fichier en pièce jointe
3
tchernosplif Messages postés 600 Date d'inscription   Statut Membre Dernière intervention   247
 
avec la formule INDIRECT

tu dois au préalable écrire Feuil1 dans la cellule A1 pour cette exemple

=INDIRECT("'"&A1&"'!A2")

donc j'ai crée un lien vers la cellule A2 de la Feuil1
2

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tchernosplif Messages postés 600 Date d'inscription   Statut Membre Dernière intervention   247
 
si les feuilles ont un nom générique (Feuil1, Feuil2, Feuil800)

Il est facile dans la Feuil801 de créer des liens vers les 25 premières lignes des feuilles(on en prends un peu plus que nécessaire) en tirant la formule vers le bas.

et ensuite, remplacer les 0 (liaisons vers cellules vides) par rien .

et éventuellement supprimer par la suite les lignes vides
1
tchernosplif Messages postés 600 Date d'inscription   Statut Membre Dernière intervention   247
 
j'ai fait 1 fichier d'exemple ci joint

http://www.cijoint.fr/cj201009/cijZQLFitu.xls
1
spitulo Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   6
 
J'ai vu ça mais cela risque d'être super long si je veux mettre >10 colonnes, et le nombre de feuilles sont étirable sinon?
0
tchernosplif Messages postés 600 Date d'inscription   Statut Membre Dernière intervention   247
 
des modifs ne prendraient pas beaucoup de temps (ajout de colonnes et modification du nombre de lignes), les formules peuvent être étirées. la logique est ultra simple. ça ne te rendrait pas service de t'aider d'avantage !
0
spitulo Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   6
 
Ok ^^ Je n'ai pas tout saisi à ta méthode, mais j'ai réussit avec un code VBA. Je te remercie quand même pour ton aide ! =)
0
spitulo Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   6
 
Oui elles ont un nom générique ("Table 1"...).

Je n'ai pas tout saisi à la procédure, est-ce que tu pourrais me détailler les formules à taper etc,

si c'est une macro, je ne connais pas du tout les syntaxes, et fonctions qu'on utilise en VBA :s


Mais merci de ton aide ! =)
0
spitulo Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   6
 
Mais celan'inclu pas les tableau?
Et si je dois faire cela pour toutes les feuilles il me faudra un certain temps!:p
0
spitulo Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   6
 
Ok, merci Eric,

Cela me copiera toutes mes lignes ?
Parceque j'ai des tableaux avec 15 lignes d'autres avec 17, 19 etc...
(entre 15 et 20)

Est-ce que cela prends juste le texte et tout le texte ?


Entre les deux, la seconde m'intéresserais bien, car effectivement j'ai à chaque foi les titres et ce serait bien de ne pas les copier à chaque fois
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Ca copie toutes les lignes oui, qu'il y en ait 3 ou 132, dans l'ordre des feuilles

tu copies de 'sub' à 'end sub' inclus.
Clic-droit le le nom d'onglet 'Recap' et 'visualiser le code'
Colle le code dans la fenetre de droite

eric
0
Demahom08 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
Svp aidez moi
moi je veux faire le contraire j'ai un tableau qui contient 3 colonnes la date la description et les montant ( dépenses ) j'ai encore 12 autre qui contient des données pour calculer le budget mensuel solde début épargne dépenses mensuels pour avoir un solde de fin et je voudrais que les données des dépenses (date ,description , montant)soit copier automatiquement du premier tableau sur chaque tableau de dépenses mensuel en les triant par date (les dépenses de Javier sur la feuille ou ce trouve le tableau ou on calcule le budget de janvier par exemple et ainsi de suite pour les autre mois )
Merci
0
Co_nexion Messages postés 328 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour à tous,

Je me permets d'intervenir rapidement sur ce sujet, afin de savoir si qlqu'un à rencontrer le même pb que moi.

Il s'agit d'un msg box avec une croix rouge indiquant le chiffre 400. Cependant il intervient à la fin de la procédure, donc pas genant mais embetant.
0