[Excel] Mise en forme transposé automatisé
Fermé
spauk13
Messages postés
12
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 mars 2010
-
30 oct. 2009 à 21:47
spauk - 2 nov. 2009 à 23:23
spauk - 2 nov. 2009 à 23:23
A voir également:
- [Excel] Mise en forme transposé automatisé
- Mise en forme conditionnelle excel - Guide
- Liste déroulante excel - Guide
- Mise en forme tableau word - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
19 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
2 nov. 2009 à 17:26
2 nov. 2009 à 17:26
re,
Voici la macro pour le pb de spauk réécrite ET sauvegardée!
https://www.cjoint.com/?lcrySrL0Y4
Voici la macro pour le pb de spauk réécrite ET sauvegardée!
https://www.cjoint.com/?lcrySrL0Y4
Mike-31
Messages postés
18344
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 novembre 2024
5 103
30 oct. 2009 à 22:11
30 oct. 2009 à 22:11
Salut,
Pour faire simple, avec la RECHERCHEV dans une cellule exemple A18 tu saisis Monsieur Marc par exemple en B18 tu mets la formule =RECHERCHEV(Feuil1!A18;A2:D4;2;FAUX)
en B19 =RECHERCHEV(Feuil1!A$18;$A$2:$D$4;3;FAUX)
en B20 =RECHERCHEV(Feuil1!A$18;$A$2:$D$4;4;FAUX)
etc ...
Encore mieux en A18 une liste déroulante qui reprend la liste des noms en B18, B19, etc ... la formule de rechercheV ensuite tu fais un copier collage spécial cocher valeurs sur une autre cellule
Ou alors le VBA mais là il faut avoir quelques connaissances
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Pour faire simple, avec la RECHERCHEV dans une cellule exemple A18 tu saisis Monsieur Marc par exemple en B18 tu mets la formule =RECHERCHEV(Feuil1!A18;A2:D4;2;FAUX)
en B19 =RECHERCHEV(Feuil1!A$18;$A$2:$D$4;3;FAUX)
en B20 =RECHERCHEV(Feuil1!A$18;$A$2:$D$4;4;FAUX)
etc ...
Encore mieux en A18 une liste déroulante qui reprend la liste des noms en B18, B19, etc ... la formule de rechercheV ensuite tu fais un copier collage spécial cocher valeurs sur une autre cellule
Ou alors le VBA mais là il faut avoir quelques connaissances
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
spauk13
Messages postés
12
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 mars 2010
31 oct. 2009 à 17:55
31 oct. 2009 à 17:55
Ok merci, je ne connaissais pas cette fonction
Comme je suis nouveau sur Excel, je ne connais pas VBA
Mais concrètement dans mon cas ça pourrait m'aider comment ?
Comme je suis nouveau sur Excel, je ne connais pas VBA
Mais concrètement dans mon cas ça pourrait m'aider comment ?
Mike-31
Messages postés
18344
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 novembre 2024
5 103
31 oct. 2009 à 18:53
31 oct. 2009 à 18:53
re,
Dès que j'ai un moment je te fais un petit montage
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Dès que j'ai un moment je te fais un petit montage
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
spauk13
Messages postés
12
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 mars 2010
31 oct. 2009 à 19:41
31 oct. 2009 à 19:41
Merci beaucoup !!!!!!!!!!!!!!
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
31 oct. 2009 à 22:01
31 oct. 2009 à 22:01
bonjour,
par formule
https://www.cjoint.com/?kFv6mf18kk
mais si tu as beaucoup de familles, il vaudrait peut-^tre mieux passer par VBA comme l'a suggéré Ponpon
par formule
https://www.cjoint.com/?kFv6mf18kk
mais si tu as beaucoup de familles, il vaudrait peut-^tre mieux passer par VBA comme l'a suggéré Ponpon
spauk13
Messages postés
12
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 mars 2010
31 oct. 2009 à 22:53
31 oct. 2009 à 22:53
On a entre 3000 et 5000 familles par fichier
Ponpon -> merci, c'est une macro que tu as fait ?
Michel_m -> merci, ça va me servir comme exemple :-))
Ponpon -> merci, c'est une macro que tu as fait ?
Michel_m -> merci, ça va me servir comme exemple :-))
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
31 oct. 2009 à 22:57
31 oct. 2009 à 22:57
OK, content pour toi!
Ponpon: peut être ajouter l'instruction
application.screenupdating= false
pour gagner du temps ?
Ponpon: peut être ajouter l'instruction
application.screenupdating= false
pour gagner du temps ?
spauk13
Messages postés
12
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 mars 2010
31 oct. 2009 à 23:47
31 oct. 2009 à 23:47
Je viens de penser à un truc
J'ai essayer de faire une macro qui exécute ces taches :
1) ajouter 4 lignes sous la première famille
2) copier les 4 derniers enfants, et les coller sur les nouvelles ligne en transposé
3) supprimer les 4 derniers enfants de la première ligne
Et voilà
Par contre, je n'arrive pas à executer ma macro en auto pour qu'elle le fasse pour tout le fichier
J'ai regarder le code et c'est normal que ça marche pas pour tout le fichier car c'est indiquer "C2:F2" etc...
Faudrait remplacer ça par un truc générique, où quelque chose comme ça non ?
Voici le code de ma macro :
J'ai essayer de faire une macro qui exécute ces taches :
1) ajouter 4 lignes sous la première famille
2) copier les 4 derniers enfants, et les coller sur les nouvelles ligne en transposé
3) supprimer les 4 derniers enfants de la première ligne
Et voilà
Par contre, je n'arrive pas à executer ma macro en auto pour qu'elle le fasse pour tout le fichier
J'ai regarder le code et c'est normal que ça marche pas pour tout le fichier car c'est indiquer "C2:F2" etc...
Faudrait remplacer ça par un truc générique, où quelque chose comme ça non ?
Voici le code de ma macro :
Sub Macro3() ' ' Macro3 Macro ' ' Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert Range("C2:F2").Select Selection.Copy Range("B3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=True Range("C2:F2").Select Application.CutCopyMode = False Selection.ClearContents Range("A2").Select Selection.AutoFill Destination:=Range("A2:A6") Range("A2:A6").Select Range("C2").Select End Sub
Bonjour,
Oui c’est une autre possibilité et bravo d’avoir essayé.
Pour le plaisir je vais voir comment adapté votre code pour que cela fonctionne !
C’est pour demain.
Oui c’est une autre possibilité et bravo d’avoir essayé.
Pour le plaisir je vais voir comment adapté votre code pour que cela fonctionne !
C’est pour demain.
spauk13
Messages postés
12
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 mars 2010
1 nov. 2009 à 00:10
1 nov. 2009 à 00:10
Merci !!
Mon but ces prochains mois c'est d'apprendre au maximum toute les possibilités qu'offre Excel, car je sais que ça va me permettre de gagner un temps énorme
Mon but ces prochains mois c'est d'apprendre au maximum toute les possibilités qu'offre Excel, car je sais que ça va me permettre de gagner un temps énorme
Mike-31
Messages postés
18344
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 novembre 2024
5 103
1 nov. 2009 à 14:51
1 nov. 2009 à 14:51
Re,
Je ne t'avais pas laissé tombé, un contre temps, je vois que des solutions t'on été proposé et répondent à tes attentes.
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Je ne t'avais pas laissé tombé, un contre temps, je vois que des solutions t'on été proposé et répondent à tes attentes.
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
spauk13
Messages postés
12
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 mars 2010
1 nov. 2009 à 22:06
1 nov. 2009 à 22:06
Non t'inquiète y a pas de soucis ;-))
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
2 nov. 2009 à 10:52
2 nov. 2009 à 10:52
bonjour,
pour peut-^tre apprendre:
dans les macros, il faut éviter au maximum les select-selection et les copy-paste très longs...
L'enregistreur de macros enregistre tes faits et gestes et est très pratique pour apprendre mais il faut élaguer: Ponpon (bonjour) t'a montré 2 exemples très intéressants et le premier est beaucoup + rapide
Dans les grands tableaux (au delà de 1000 lignes) il est préférable de passer par des "variables-tableaux (array), tu trouveras ci-joint une démo de comparaison sur 20000 lignes envoyée récemment sur ce forum ( à mettre sous le coude pour + tard):
https://www.cjoint.com/?lckWRL3IIL
pour peut-^tre apprendre:
dans les macros, il faut éviter au maximum les select-selection et les copy-paste très longs...
L'enregistreur de macros enregistre tes faits et gestes et est très pratique pour apprendre mais il faut élaguer: Ponpon (bonjour) t'a montré 2 exemples très intéressants et le premier est beaucoup + rapide
Dans les grands tableaux (au delà de 1000 lignes) il est préférable de passer par des "variables-tableaux (array), tu trouveras ci-joint une démo de comparaison sur 20000 lignes envoyée récemment sur ce forum ( à mettre sous le coude pour + tard):
https://www.cjoint.com/?lckWRL3IIL
Bonjour michel_m,
Merci pour les exemples.
Dans la procédure [transposer] il me semble qu’il y a une petite erreur dans la ligne
ReDim tablo(nbre_famille - 12, nbre_pers - 1)
La déduction de [-12] au [nbre _famille] devrait-être 1 ou 0 et de plus une valeur d’argument négative provoque une erreur d’exécution 7 : Mémoire insuffisante.
Merci pour les exemples.
Dans la procédure [transposer] il me semble qu’il y a une petite erreur dans la ligne
ReDim tablo(nbre_famille - 12, nbre_pers - 1)
La déduction de [-12] au [nbre _famille] devrait-être 1 ou 0 et de plus une valeur d’argument négative provoque une erreur d’exécution 7 : Mémoire insuffisante.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
2 nov. 2009 à 16:25
2 nov. 2009 à 16:25
Bonjour,
non, j'ai enlevé la pièce jointe car je me suis aperçu APRES que je n'avais pas sauvegardé !!! chose qui m'arrive assez souvent en ce moment: j'vieillis mal!
je vais peut-être la refaire pour le fun, mais...
Cordialement
non, j'ai enlevé la pièce jointe car je me suis aperçu APRES que je n'avais pas sauvegardé !!! chose qui m'arrive assez souvent en ce moment: j'vieillis mal!
je vais peut-être la refaire pour le fun, mais...
Cordialement
Bonjour michel_m,
Merci pour la dernière version.
Personnellement je retiens la partie de la procédure « restitution avec encadrement cellules » que je ne connaissais pas sous cette forme.
Merci pour la dernière version.
Personnellement je retiens la partie de la procédure « restitution avec encadrement cellules » que je ne connaissais pas sous cette forme.