Fusionner plusieurs onglets dans un seul

Résolu/Fermé
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 - 12 juin 2013 à 10:04
 asevere - 17 juin 2013 à 15:51
Bonjour,
J'ai un fichier excel qui comporte un onglet par lettre de l'alphabet. Dans chacun de ces lettre comporte la liste de mes clients qui sont impayés.
Je souhaiterais imprimer tous les onglets de sorte qu'il se suivent sur mon impression et pas une feuille par lettre.
Comment faire simple ?
Merci
A voir également:

27 réponses

rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
12 juin 2013 à 10:38
Bonjour,

Alors je veux bien vous aider, unqiuement si je me retrouve pas une fois sur votre liste ;-)

Essayez la macro suivante :

_____
Sub LISTING()

Dim Classeur As Workbook
Set Classeur = ThisWorkbook

For i = 2 To 27 'i=2=A ; i=27=Z car 26 lettres dans l'alphabete ;-)

Sheets(i).Activate
Sheets(i).Range("A1:G2000").Copy Classeur.Sheets("Liste").Range("A100000").End(xlUp)(2)
Sheets("Liste").Activate

Next i


End Sub
____

Alors pour l'implémentation :
- Il vous faut créer un onglet nommé Liste et le mettre en première position des onglets.
- J'ai mis de 2 à 27 pour 26 lettres de l'alphabete. Si vous n'avez pas de G,Y,Z donc pas d'onglets, abaissez le nombre 27 au nombre voulu.
- Le Range("A1:G2000") correspond à la plage ou se trouve vos clients impayés par feuille (j'imagine qu'elle est toujorus la meme). Donc mettez à la place du A1 le première cellule ou commence votre liste et G2000, une cellule très lointaine en ligne mais dans votre dernière colonne qui à des informations sur le client.
- range("A100000") représente la cellule de la feuille Liste ou va etre copié les noms à la suite de vos clients. A modifer pour les mettre où vous désirez.

Bonne journée,
Amicalement,

rEVOLV3r
3
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
12 juin 2013 à 10:39
le (xlUp)(2) se met à la fin de END dans la macro ! il n'est pas à la ligne.
0
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 38
12 juin 2013 à 11:38
merci de votre aide
par contre pourriez vous m'expliquer depuis le début car je n'ai jamais fait de macro ...
0
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 38
12 juin 2013 à 11:39
mon fichier comporte les onglets suivants:
sommaire
a
b
c
...
z

cela change quelque chose pour la macro ?
0
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 38
12 juin 2013 à 11:41
et le "sommaire" comporte la liste des lettres afin de s'y rendre par lien hypertexte et sur chacune des fiches A b c d ... il y a un lien qui revient au "sommaire"
0
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
Modifié par rEVOLV3r le 12/06/2013 à 11:53
Ok je vois la chose, alors voila comment cela fonctionne :

- il faut que votre fichier excel soit en .xlsm (prise en charge des macros)
pour cela, vous pouvez l'enregistrer en tant que tel au meme endroit que votre précédent.
-ensuite presser AlT + F11
-clique droit sur l'afficheur à gauche et insertion : nouveau module ou module

- copier la macro dans le module
_____________
Sub LISTING()

'définition des classeurs
Dim Classeur As Workbook
Set Classeur = ThisWorkbook

For i = 3 To 28 'i=3=A ; i=28=Z car 26 lettres dans l'alphabete ;-)

Sheets(i).Activate 'activation de l'onglet
'copie du range voulu à l'endroit voulu
Sheets(i).Range("A1:G2000").Copy Classeur.Sheets("Liste").Range("A100000").End(xlUp)(2)

Next i

Sheets("Liste").activate

End Sub
______________
-ensuite créer un nouvel onglet excel nommé Liste que vous placez juste après votre sommaire (premier onglet).
-dans votre sommaire, allez dans l'onglet développeur (si vous ne l'avez pas je vous expliquerai comment le mettre)>insérer>premier bouton (rectangle gris)
-dessiner un bouton ;-)
-cliquer sur le nom de votre macro et OK
en cliquant sur le bouton la macro s'activera toute seule.
0
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 38
12 juin 2013 à 11:57
Il me met:

Les fonctionnalités suivantes ne peuvent pas être enregistrées
Projet VB
Pour enregistrer un fichier avec ces fonctionnalités, cliquer sur non , puis sélectionner un type de fichier prenant en charge les macros dans la liste type de fichier
pour continuer a enregistrer en tant que classeur sans macro cliquer sur oui

que dois je faire ?
0

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

Posez votre question
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
12 juin 2013 à 11:59
c'est que votre fichier n'est pas en .xlsm

Cliquer sur le bouton rond en haut à gauche > enregistrer sous > classeur excel pernant en charge les macros.

Et ca devrait normalement le faire, plus qu'a continuer dans les explications après
0
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 38
12 juin 2013 à 12:01
oui c'est bon j'ai fais la macro sur l'onglet LISTE et j'ai enregistré
0
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 38
12 juin 2013 à 12:07
j'ai exécuté la macro donc impeccable toute ma liste d'onglet se met dans l'onglet liste.
Par contre il s'arrête à la lettre L
il met :
erreur d'execution 1004
impossible de modifier une cellule fusionnée
FIN DEBOGAGE AIDE

Je n'ai pas de cellule fusionnée
0
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
12 juin 2013 à 12:11
Ok, alors jusqu'à combien avez vous mis la longueur du range de la cellule de collage ? 100000 est pas mal car vous n'aurez jamais de problème de dépasser, sinon vous etes en faillite depuis bien longtemps (haha)

S'il met qu'une cellule est fusionnée, c'est qu'une cellule est fusionée normalement...Mais j'avoue que si vous en avez pas, cela est très bizarre.
Pour le débug, essayer de déplacer votre onglet L d'un sur la droite afin de voir s'il prend M correctement. Si oui, c'est qu'une cellule est fusionnée dans L.
0
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 38
12 juin 2013 à 12:16
j'ai déplacé la lettre L à la fin des onglets

quand je fais débogage il me renvoi dans la macro et me met surligne en jaune :

Sheets(i).Range("A1:G2000").Copy Classeur.Sheets("Liste").Range("A100000").End(xlUp)(2)
0
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 38
12 juin 2013 à 12:17
du coup il ne continu pas à la lettre m
0
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
12 juin 2013 à 13:27
Donc après la lettre K il se met en bug c'est ca ?
Pouvez-vous me copier votre macro ? Vous avez bien modifié les plages de mesures pour votre utilisation ?

Si nous n'arrivons pas a débugger le programme comme ca, vous pouvze mettre une copie sans données confidentielle sur
https://www.cjoint.com/
et mettre le lien que je débuge directement dans votre fichier excel.
0
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 38
12 juin 2013 à 13:52
Sub LISTING()

Dim Classeur As Workbook
Set Classeur = ThisWorkbook

For i = 2 To 27 'i=2=A ; i=27=Z

Sheets(i).Activate
Sheets(i).Range("A1:G2000").Copy Classeur.Sheets("Liste").Range("A100000").End(xlUp)(2)
Sheets("Liste").Activate

Next i


End Sub
0
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 38
12 juin 2013 à 13:53
Je viens de vois qu'en fait il s'arrête juste après la lettre J.
Se pourrait t'il qu'il ne prenne pas la suite car dans la lettre K il n'y a pas de clients?
0
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 38
12 juin 2013 à 13:59
IL faudrait qu'il me prenne jusqu'à la colonne M svp
0
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
12 juin 2013 à 14:03
Alors, plusieurs choses à changer selon vos besoin avant de commencer a regarder le débug.

1)
premier onglet : Sommaire
deuxième onglet : Liste
???
Si les onglets sont bien mis comme cela, il faut dans votre macro mettre :
for i=3 to 28 (augmenter d'un pour éviter les bugs)

2)
dans vos feuilles de clients, quelle est la plage de données du client ? de ou a ou pour une ligne ?
Je suppose qu'il y a le nom, le prénom, l'adresse, le numéro de facture, le montant etc. Pouvez vous me dire de quelle cellule à quelle cellule les informations sont ?

3) sur la feuille Liste, où avez vous envie de copier les donnees ? A quel endroit ? Vous n'est pas obligé de mettre les client directement en A1, vous pouvez faire une petite mise en page avec des inscriptions de traçabilité en haut de votre feuille Excel puis en dessous mettre la liste de clients.

4) Et non le fait qu'une feuille soit vide ne devrait pas influencer la copie, je viens de tester chez moi cela fonctionne.
0
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 38
12 juin 2013 à 14:09
1) ok
2) de la cellule A à M
3) si je veux commencer en A1

je vous envoi mon fichier cela sera plus simple
0
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
12 juin 2013 à 14:11
Oui je pense que ca sera bien plus simple ^^ oubliez pas de supprimer les données confidentielles comme le nom des gens par exemple avant de le mettre sur internet ;-)
0
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 38
12 juin 2013 à 14:10
0
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 38
12 juin 2013 à 14:11
je viens de mettre le fichier tel quel mais il y a juste les noms et rien d'autre
0
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
12 juin 2013 à 14:26
http://cjoint.com/data3/3FmoyLgiccX.htm

Voici votre document :-)

Alors j'ai ajouté une fonctionnalité de suppression de la liste a chaque utilisation de la macro, comme ca elle se met a jour sans redondance de données.
Et j'ai ajouté aussi un effet de mise en page en colonne.

Si vous voulez ajouter des choses, gens pour faire plus joli dites moi je peux vous le faire assez vite.

Passez une bonne journée sinon.

Amicalement,

rEVOLV3r
0
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 38
12 juin 2013 à 14:31
Je viens de faire fonctionner la macro "impeccable"
par contre j'ai ajouté mon prénom dans la lettre A colonne nom pour voir si cela se mettait à jour en exécutant la macro mais il n'apparaît pas. ?
Pourriez vous me faire un "bouton" afin que j'ai simplement à cliquer pour que la macro se mette en place toute seule, car je ne suis pas seule à me servir de ce fichier
0
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
12 juin 2013 à 14:41
voila : http://cjoint.com/data3/3FmoOj9LnaY.htm

Alors j'ai améliorer la chose, beaucoup plus rapide et plus de déplacement visuel dans excel. Vous avez un bouton a presser dans votre sommaire et c'est bon.

Essayez d'ajouter des noms à la suite des clients dans vos onglets alphabetiques et lancez la macro, chez moi elle prend bien en compte les nouveaux.
0
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 38
12 juin 2013 à 14:35
existe t'il un moyen d'afficher seulement les clients qui ne sont pas masqués ? car en fait lors d'un paiement de client, je ne supprime pas la ligne je la masque.
Tout sa pour faire simple ... lol
0
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
12 juin 2013 à 14:48
C'est possible effectivement, mais c'est une gestion complètement différente ^^
Je rentre chez moi là, je peux vous faire cette nouvelle macro mais contre la fin de la journée seulement.

A bientôt
0
lisalola Messages postés 317 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 10 août 2019 38
12 juin 2013 à 14:48
oui pas de soucis merci beaucoup
0