Suite fusionner plusieurs classeur excel
Résolu
spaissia
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
gilles -
gilles -
Bonjour, un nouveau problème se pose pour la fusion de classeur excel :
Récemment, j'avais eu comme formule :
=INDIRECT("'PLOT DATA "&ENT(LIGNE()/15)+1&"'!"&CAR(COLONNE()+64)&MOD(LIGNE()-1;15)+1)
Qui avait très bien marché.
Aujourd'hui, j'ai un fichier excel avec des feuilles nommés DATA qui vont de 1 à 176 : j'ai donc 176 feuilles dans un fichier excel.
Dans chaque feuille, j'ai des données qui s'étalent de la colonne A à la colonne S, et jusqu'à la ligne 50 (au maximum). Je voudrais récupérer les données des 176 feuilles sur une seule feuille excel (que je crée dans le même fichier excel de départ) de la colonne A à la colonne M.
Malheureusement, je n'arrive pas à adapter la formule ci-dessus pour faire cela.
Quelqu'un pourrait-il m'aider ?
Je joins le lien du fichier sur lequel je travail : http://ifile.it/2vxyf7d
Récemment, j'avais eu comme formule :
=INDIRECT("'PLOT DATA "&ENT(LIGNE()/15)+1&"'!"&CAR(COLONNE()+64)&MOD(LIGNE()-1;15)+1)
Qui avait très bien marché.
Aujourd'hui, j'ai un fichier excel avec des feuilles nommés DATA qui vont de 1 à 176 : j'ai donc 176 feuilles dans un fichier excel.
Dans chaque feuille, j'ai des données qui s'étalent de la colonne A à la colonne S, et jusqu'à la ligne 50 (au maximum). Je voudrais récupérer les données des 176 feuilles sur une seule feuille excel (que je crée dans le même fichier excel de départ) de la colonne A à la colonne M.
Malheureusement, je n'arrive pas à adapter la formule ci-dessus pour faire cela.
Quelqu'un pourrait-il m'aider ?
Je joins le lien du fichier sur lequel je travail : http://ifile.it/2vxyf7d
A voir également:
- Suite fusionner plusieurs classeur excel
- Liste déroulante excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Word et excel gratuit - Guide
- Comment fusionner des pdf sans logiciel - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
8 réponses
bonjour
Le fichier n'est pas accessible sur ce site, si tu pouvais nous le mettre sur http://www.cijoint.fr/ puis nous mettre le lien généré ici ce serait plus facile.
Le fichier n'est pas accessible sur ce site, si tu pouvais nous le mettre sur http://www.cijoint.fr/ puis nous mettre le lien généré ici ce serait plus facile.
Sans problème, voici le lien :
http://www.cijoint.fr/cjlink.php?file=cj201002/cijD2Nz5rz.xls
J'ai oublié de mentionner précédemment que j'ai besoin de deux choses : d'une part une formule qui permettent de récupérer toutes les lignes (de 1 à 50) et une autre formule pour récupérer uniquement les lignes de 40 à 50
(le plus souvent, il y a 49 lignes, mais certaines feuille en contiennent 50)
Merci beaucoup pour ton aide.
http://www.cijoint.fr/cjlink.php?file=cj201002/cijD2Nz5rz.xls
J'ai oublié de mentionner précédemment que j'ai besoin de deux choses : d'une part une formule qui permettent de récupérer toutes les lignes (de 1 à 50) et une autre formule pour récupérer uniquement les lignes de 40 à 50
(le plus souvent, il y a 49 lignes, mais certaines feuille en contiennent 50)
Merci beaucoup pour ton aide.
Bonsoir à tous,
Je viens de rentrer sur votre discussion.
Je me disais qu'avec quelques lignes de VBA on pourrait le faire (je pense).
Du style, on compte le nombre de feuilles (exemple on a 100 feuilles) puis on boucle de i = 2 à 100
en activant à chaque fois l'onglet(i). On sélectionne la zone A2:N & j ( étant le nombre de ligne utilisé dans le l'onglet sélectionné) et on le copie dans le dernier onglet (par exemple RECAP).
A plus
Gilles
Je viens de rentrer sur votre discussion.
Je me disais qu'avec quelques lignes de VBA on pourrait le faire (je pense).
Du style, on compte le nombre de feuilles (exemple on a 100 feuilles) puis on boucle de i = 2 à 100
en activant à chaque fois l'onglet(i). On sélectionne la zone A2:N & j ( étant le nombre de ligne utilisé dans le l'onglet sélectionné) et on le copie dans le dernier onglet (par exemple RECAP).
A plus
Gilles
bonjour
En modifiant légèrement la première formule que je t'avais donnée cela fonctionne pour 50 lignes
Je regardes pour récupérer 40-50 @+
En modifiant légèrement la première formule que je t'avais donnée cela fonctionne pour 50 lignes
=INDIRECT("'DATA "&ENT(LIGNE()/50)+1&"'!"&CAR(COLONNE()+64)&MOD(LIGNE()-1;50)+1)
Je regardes pour récupérer 40-50 @+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Si jamais tu souhaites faire du VBA, j'ai fait l'exemple que tu as envoyé.
Si tu veux, je le mets en pièce jointe (d'abord je vais commenter le code).
L'intérêt est de compter le nombre de cellule d'une feuille à chaque fois et peut importe le nombre, on le sélectionne et on le copie sur la dernière feuille.
Désolé pour tous les deux mais je ne sais pas le faire en formule.
Gilles
Si tu veux, je le mets en pièce jointe (d'abord je vais commenter le code).
L'intérêt est de compter le nombre de cellule d'une feuille à chaque fois et peut importe le nombre, on le sélectionne et on le copie sur la dernière feuille.
Désolé pour tous les deux mais je ne sais pas le faire en formule.
Gilles
http://www.cijoint.fr/cjlink.php?file=cj201002/cijipl0S6N.xls
Regarde si le résultat est ce que tu attendais. Si çà va, je t'explique sinon on peut adapter
Gilles
Regarde si le résultat est ce que tu attendais. Si çà va, je t'explique sinon on peut adapter
Gilles
Ci dessous le code VBA
Par contre dans mes macros, je n'ai pas prévu de copier la ligne des titres. Tu dois le faire avant.
On pourrait le prévoir dans le code car si tu l'oublies çà peut planter ( ce n'est pas grave).
Pour voir le code VBA dans excel 2003 : outils / ouvrir Visual Basic / sur la gauche descendre dans module et ouvrir le module présent pour voir le code
dans excel 2007 aller dans développeur / premier bouton à gauche.
Ci desssous le code utilisé
Gilles
Sub fusionner()
'variable qui va contenir le nombre feuille
Dim compteur As Integer
compteur = Sheets.Count 'compte les feuilles
'boucle de la feuille 2 (ou on commence à avoir les données) jusqu'a nombre de feuille -2
For i = 2 To compteur - 2
'activation de la feuille
Sheets(i).Activate
'appel de la méthode selectionner
selectionner
Next
End Sub
Sub selectionner()
'variable qui va contenir le nombre de ligne d'une feuille
Dim rangee As Integer
If Range("A2").Value = "" Then
'on sort de la méthose car il n'y a pas données à copier
Else
Range("A1").Select
Selection.End(xlDown).Select
rangee = ActiveCell.Row
'j'ai déterminé plus haut le nombre de ligne dans la variable rangee
Range("A2:M" & rangee).Select
'selection de la zone A2:M & rangee
Selection.Copy
'activation de l'onglet final
Sheets("données fusionnées").Select
'positionnement sur la première cellule libre
ActiveSheet.Range("A1").Select
If Range("A2").Value = "" Then
Range("A2").Select
Else
'on atteint la derniere cellule de donnee et on se positionne sur la ligne du dessous
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
End If
'on est positionné et on colle
ActiveSheet.Paste
End If
End Sub
Par contre dans mes macros, je n'ai pas prévu de copier la ligne des titres. Tu dois le faire avant.
On pourrait le prévoir dans le code car si tu l'oublies çà peut planter ( ce n'est pas grave).
Pour voir le code VBA dans excel 2003 : outils / ouvrir Visual Basic / sur la gauche descendre dans module et ouvrir le module présent pour voir le code
dans excel 2007 aller dans développeur / premier bouton à gauche.
Ci desssous le code utilisé
Gilles
Sub fusionner()
'variable qui va contenir le nombre feuille
Dim compteur As Integer
compteur = Sheets.Count 'compte les feuilles
'boucle de la feuille 2 (ou on commence à avoir les données) jusqu'a nombre de feuille -2
For i = 2 To compteur - 2
'activation de la feuille
Sheets(i).Activate
'appel de la méthode selectionner
selectionner
Next
End Sub
Sub selectionner()
'variable qui va contenir le nombre de ligne d'une feuille
Dim rangee As Integer
If Range("A2").Value = "" Then
'on sort de la méthose car il n'y a pas données à copier
Else
Range("A1").Select
Selection.End(xlDown).Select
rangee = ActiveCell.Row
'j'ai déterminé plus haut le nombre de ligne dans la variable rangee
Range("A2:M" & rangee).Select
'selection de la zone A2:M & rangee
Selection.Copy
'activation de l'onglet final
Sheets("données fusionnées").Select
'positionnement sur la première cellule libre
ActiveSheet.Range("A1").Select
If Range("A2").Value = "" Then
Range("A2").Select
Else
'on atteint la derniere cellule de donnee et on se positionne sur la ligne du dessous
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
End If
'on est positionné et on colle
ActiveSheet.Paste
End If
End Sub
En fait, j'aimerai récupérer sur un onglet les lignes de 1 à 50 et sur un deuxième onglet les ligne 40 à 50.
En fait, je ne sais pas encore si je vais devoir faire un contrôle sur toute les données (les 50 lignes) ou sur les 11 dernière ligne (40 à 50). En fait, ces données représentent des fixations oculaires échantillonnées toute les 20 ms sur une durée de 950 ms à chaque fois (il y en a 176, d'où les 176 feuilles excel.
Spaissia
En fait, je ne sais pas encore si je vais devoir faire un contrôle sur toute les données (les 50 lignes) ou sur les 11 dernière ligne (40 à 50). En fait, ces données représentent des fixations oculaires échantillonnées toute les 20 ms sur une durée de 950 ms à chaque fois (il y en a 176, d'où les 176 feuilles excel.
Spaissia