Macro pour débutant.
Résolu/Fermé
scelera
Messages postés
39
Date d'inscription
lundi 10 juin 2013
Statut
Membre
Dernière intervention
3 décembre 2021
-
10 juin 2013 à 09:38
scelera - 11 juin 2013 à 11:08
scelera - 11 juin 2013 à 11:08
A voir également:
- Macro pour débutant.
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro recorder - Télécharger - Confidentialité
- Logiciel de programmation pour débutant - Guide
7 réponses
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
28 décembre 2023
7 211
11 juin 2013 à 08:50
11 juin 2013 à 08:50
Bonjour,
autre proposition :
@philou :
Si tu pouvais limiter tes horreurs aux formules stp.
Soit raisonnable, prend le temps d'apprendre un peu vba avant...
eric
autre proposition :
Sub copierCol() Dim co As Variant, col As Long co = Array("A", "E", "G", "H", "I", "L", "O") For col = 0 To UBound(co) Worksheets("Feuil2").Cells(1, co(col)).Resize(67, 1).Copy Worksheets("Feuil1").Cells(1, col + 1).Resize(67, 1) Next col [Feuil1!A1].AutoFilter End Sub
@philou :
Si tu pouvais limiter tes horreurs aux formules stp.
Soit raisonnable, prend le temps d'apprendre un peu vba avant...
eric
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 701
10 juin 2013 à 11:00
10 juin 2013 à 11:00
Bonjour,
trouver un moyen automatique avec quel critere(s), chaque modif de cellules ou ...... ?????
copier AEGHIL vers les memes colonnes ou l'une a cote de l'autres sur la feuille2 ??
A+
trouver un moyen automatique avec quel critere(s), chaque modif de cellules ou ...... ?????
copier AEGHIL vers les memes colonnes ou l'une a cote de l'autres sur la feuille2 ??
A+
scelera
Messages postés
39
Date d'inscription
lundi 10 juin 2013
Statut
Membre
Dernière intervention
3 décembre 2021
11 juin 2013 à 07:59
11 juin 2013 à 07:59
Bonjour,
Oui je voudrai copier l'emsemble du contenu de chaque colonne AEGHIL l'une à côté de l'autre sur la feuille 2 en y ajoutant le filtre.
Merci pour votre aide.
Oui je voudrai copier l'emsemble du contenu de chaque colonne AEGHIL l'une à côté de l'autre sur la feuille 2 en y ajoutant le filtre.
Merci pour votre aide.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
Modifié par michel_m le 10/06/2013 à 11:04
Modifié par michel_m le 10/06/2013 à 11:04
Bonjour,
Et on les colle comment: Jointives et à partir d'où ou les colle en A,E,G..... ?
Michel
Et on les colle comment: Jointives et à partir d'où ou les colle en A,E,G..... ?
Michel
scelera
Messages postés
39
Date d'inscription
lundi 10 juin 2013
Statut
Membre
Dernière intervention
3 décembre 2021
11 juin 2013 à 08:01
11 juin 2013 à 08:01
On les colle côte à côte en feuille 2 c'est à dire que les colonnes AEG... de la feuille 1 doivent apparaître en ABC... de la feuille 2 et il faudrait y faire figurer en feuille 2 le filtre pour chaque colonne.
Merci de votre aide.
Merci de votre aide.
redaiwa
Messages postés
351
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
25 janvier 2024
119
Modifié par redaiwa le 10/06/2013 à 11:35
Modifié par redaiwa le 10/06/2013 à 11:35
Salam scelera. :)
Je pense qu'il n'y a pas besoin de code pour cela, il suffit de se rendre sur la feuille 2 et de procéder comme suit :
- dans la cellule A1, saisir =Feuil1!A1
- dans la cellule B1, saisir =Feuil1!E1
- dans la cellule C1, saisir =Feuil1!G1
- dans la cellule D1, saisir =Feuil1!H1
- dans la cellule E1, saisir =Feuil1!I1
- dans la cellule F1, saisir =Feuil1!L1
- dans la cellule G1, saisir =Feuil1!O1
- sélectionner la plage (A1:G1) et tirer la poignée de recopie vers le bas jusqu'à la ligne 67.
Cela répond-t-il à ta question?
Je pense qu'il n'y a pas besoin de code pour cela, il suffit de se rendre sur la feuille 2 et de procéder comme suit :
- dans la cellule A1, saisir =Feuil1!A1
- dans la cellule B1, saisir =Feuil1!E1
- dans la cellule C1, saisir =Feuil1!G1
- dans la cellule D1, saisir =Feuil1!H1
- dans la cellule E1, saisir =Feuil1!I1
- dans la cellule F1, saisir =Feuil1!L1
- dans la cellule G1, saisir =Feuil1!O1
- sélectionner la plage (A1:G1) et tirer la poignée de recopie vers le bas jusqu'à la ligne 67.
Cela répond-t-il à ta question?
scelera
Messages postés
39
Date d'inscription
lundi 10 juin 2013
Statut
Membre
Dernière intervention
3 décembre 2021
11 juin 2013 à 08:02
11 juin 2013 à 08:02
Bonjour,
Ce n'est pas tout à fait ça parceque en fait l'opération devra se répéter souvent et donc on voudrait un moyen automatique pour procéder à cela.
Ce n'est pas tout à fait ça parceque en fait l'opération devra se répéter souvent et donc on voudrait un moyen automatique pour procéder à cela.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Scelera,
Tu demandes le code VBA.
Ok, mais sais tu au moins où saisir ce code ?
Il ne sa'agit pas d'une formule classique.
Tu demandes le code VBA.
Ok, mais sais tu au moins où saisir ce code ?
Il ne sa'agit pas d'une formule classique.
scelera
Messages postés
39
Date d'inscription
lundi 10 juin 2013
Statut
Membre
Dernière intervention
3 décembre 2021
11 juin 2013 à 08:03
11 juin 2013 à 08:03
Bonjour,
Oui je sais où il faut saisir ce code. Le seul probléme c'est que je ne suis pas un adepte de celà !
Oui je sais où il faut saisir ce code. Le seul probléme c'est que je ne suis pas un adepte de celà !
Bonjour Scelera,
Désolé pour ma réponse tardive.
je vois que t'as déjà eu 2 propositions :
J'ai testé celle d'éric mais il y a l'air d'y avoir un problème (elle bug)
celle de Philou10120 est tiré de l'enregistreur de macro mais le seul problème c'est que le code est long et polué de plein de chose inutile.
Je te propose donc ce code plus clair avec explication de chaque ligne de code :
Sub AEGHILO()
'Sélection de la feuille en première position (à partir de la gauche)
Sheet(1).Select
'Sélection des ligne 1 à 67 pour les colonnes A,E,G,H,I,L,O
Range("A1:A67,E1:E67,G1:G67,H1:H67,I1:I67,L1:L67,O1:O67").Select
'Copie des Données
Selection.Copy
'Sélection de la feuille en deuxième position (à partir de la gauche)
Sheets(2).Select
'Collage des Données
ActiveSheet.Paste
'Sélection de ligne 1 de la deuxième feuille
Rows("1:1").Select
'Activation du filtre
Selection.AutoFilter
End Sub
Une fois le code maitrisé tu pourras supprimer toutes les lignes en vert sur la macro (elle seront verte sur Excel, pas dans ce message)
Désolé pour ma réponse tardive.
je vois que t'as déjà eu 2 propositions :
J'ai testé celle d'éric mais il y a l'air d'y avoir un problème (elle bug)
celle de Philou10120 est tiré de l'enregistreur de macro mais le seul problème c'est que le code est long et polué de plein de chose inutile.
Je te propose donc ce code plus clair avec explication de chaque ligne de code :
Sub AEGHILO()
'Sélection de la feuille en première position (à partir de la gauche)
Sheet(1).Select
'Sélection des ligne 1 à 67 pour les colonnes A,E,G,H,I,L,O
Range("A1:A67,E1:E67,G1:G67,H1:H67,I1:I67,L1:L67,O1:O67").Select
'Copie des Données
Selection.Copy
'Sélection de la feuille en deuxième position (à partir de la gauche)
Sheets(2).Select
'Collage des Données
ActiveSheet.Paste
'Sélection de ligne 1 de la deuxième feuille
Rows("1:1").Select
'Activation du filtre
Selection.AutoFilter
End Sub
Une fois le code maitrisé tu pourras supprimer toutes les lignes en vert sur la macro (elle seront verte sur Excel, pas dans ce message)
Bonjour WeaponEDGe,
Merci pour ton aide. Voici ma macro mais ça ne fonctionne car ça bloque sur ActiveSheet.paste et je ne sais pas pourquoi !
Sub Macro2()
'
' Macro2 Macro
'
' Touche de raccourci du clavier: Ctrl+a
'
Range("G:G,H:H,I:I,J:J,K:K,O:O,Q:Q,AG:AG,AH:AH,AI:AI,AK:AK,AL:AL,AR:AR,AS:AS"). _
Select
Range("AS1").Activate
Selection.Copy
Sheets("Feuil2").Select
Columns("A:A").Select
ActiveSheet.Paste
Columns("A:N").EntireColumn.AutoFit
Range("A1:N1").Select
Range("N1").Activate
Application.CutCopyMode = False
Selection.AutoFilter
End Sub
Merci pour ton aide. Voici ma macro mais ça ne fonctionne car ça bloque sur ActiveSheet.paste et je ne sais pas pourquoi !
Sub Macro2()
'
' Macro2 Macro
'
' Touche de raccourci du clavier: Ctrl+a
'
Range("G:G,H:H,I:I,J:J,K:K,O:O,Q:Q,AG:AG,AH:AH,AI:AI,AK:AK,AL:AL,AR:AR,AS:AS"). _
Select
Range("AS1").Activate
Selection.Copy
Sheets("Feuil2").Select
Columns("A:A").Select
ActiveSheet.Paste
Columns("A:N").EntireColumn.AutoFit
Range("A1:N1").Select
Range("N1").Activate
Application.CutCopyMode = False
Selection.AutoFilter
End Sub
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
28 décembre 2023
7 211
11 juin 2013 à 10:19
11 juin 2013 à 10:19
Re,
J'ai testé celle d'éric mais il y a l'air d'y avoir un problème (elle bug)
Tu peux être plus précis ?
J'ai testé avant de poster : https://www.cjoint.com/?CFlko5EW5g9
Ceci dit ta proposition est bien, sans doute plus simple à comprendre pour débuter.
eric
J'ai testé celle d'éric mais il y a l'air d'y avoir un problème (elle bug)
Tu peux être plus précis ?
J'ai testé avant de poster : https://www.cjoint.com/?CFlko5EW5g9
Ceci dit ta proposition est bien, sans doute plus simple à comprendre pour débuter.
eric
Bonjour Eric,
Ne le prend pas mal, c'est pas un reproche,
En fait je travaille sur une version anglaise d'Excel.
Du coup j'ai remplacé les Feuil par Sheet mais j'ai eu quand même un débug
Mais le problème venait de moi j''avais pas tilté que la copie se faisait de la feuille 2 vers la 1 du coup il effaçait les donnée au lieu de les coller et lors de l'activation du filtre débug puisqu'il n'y a plus de donné.
En effet ta Macro fonctionne bien mais pour un débutant elle est trop technique.
Je tâcherais de pas faire de conclusion active la prochaine fois ;-p
Scelera,
J'ai testé ta macro, sur Excel 2010 ça passe bien.
Essayes de remplacer Columns("A:A").Select par [A1].select
Le fait de sélectionner une colonne pour copier des données de plusieurs colonne peut parfois poser problème.
Ne le prend pas mal, c'est pas un reproche,
En fait je travaille sur une version anglaise d'Excel.
Du coup j'ai remplacé les Feuil par Sheet mais j'ai eu quand même un débug
Mais le problème venait de moi j''avais pas tilté que la copie se faisait de la feuille 2 vers la 1 du coup il effaçait les donnée au lieu de les coller et lors de l'activation du filtre débug puisqu'il n'y a plus de donné.
En effet ta Macro fonctionne bien mais pour un débutant elle est trop technique.
Je tâcherais de pas faire de conclusion active la prochaine fois ;-p
Scelera,
J'ai testé ta macro, sur Excel 2010 ça passe bien.
Essayes de remplacer Columns("A:A").Select par [A1].select
Le fait de sélectionner une colonne pour copier des données de plusieurs colonne peut parfois poser problème.
PHILOU10120
Messages postés
6367
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
2 avril 2024
795
11 juin 2013 à 08:28
11 juin 2013 à 08:28
Bonjour
Voici le code avec le filtre
Sub COPIE_AEGHILO()
'
' COPIE_AEGHILO Macro
'
'
Range("A1:A67").Select
Selection.Copy
Sheets("Feuil2").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Range("E1:E67").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("B1").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Range("G1:I67").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("C1").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Range("L1:L67").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("F1").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Range("O1:O67").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("G1").Select
ActiveSheet.Paste
Range("A1:G1").Select
Application.CutCopyMode = False
Selection.AutoFilter
End Sub
Voici le code avec le filtre
Sub COPIE_AEGHILO()
'
' COPIE_AEGHILO Macro
'
'
Range("A1:A67").Select
Selection.Copy
Sheets("Feuil2").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Range("E1:E67").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("B1").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Range("G1:I67").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("C1").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Range("L1:L67").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("F1").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Range("O1:O67").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("G1").Select
ActiveSheet.Paste
Range("A1:G1").Select
Application.CutCopyMode = False
Selection.AutoFilter
End Sub
PHILOU10120
Messages postés
6367
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
2 avril 2024
795
10 juin 2013 à 11:10
10 juin 2013 à 11:10
Bonjour
Voici une macro toute bête enregistrée directement
Menu Développeur
Code
Enregistrer une macro
Dés que vous appuyez sur ce bouton toutes vos actions sont enregistrées,
les manipulations faites à la souris et les touches clavier
le résultat à incorporer dans un module Visual basic
Sub Copie_AEGHILO()
'
' Copie_AEGHILO Macro
'
'
Sheets("Feuil1").Select
Range("A1:A67").Select
Selection.Copy
Sheets("Feuil2").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Range("E1:E67").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("B1").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Range("G1:I67").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("C1").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Range("L1:L67").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("F1").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
ActiveWindow.SmallScroll ToRight:=2
Range("O1:O67").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("G1").Select
ActiveSheet.Paste
Range("A1").Select
End Sub
J'espère vous avoir aidé
Voici une macro toute bête enregistrée directement
Menu Développeur
Code
Enregistrer une macro
Dés que vous appuyez sur ce bouton toutes vos actions sont enregistrées,
les manipulations faites à la souris et les touches clavier
le résultat à incorporer dans un module Visual basic
Sub Copie_AEGHILO()
'
' Copie_AEGHILO Macro
'
'
Sheets("Feuil1").Select
Range("A1:A67").Select
Selection.Copy
Sheets("Feuil2").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Range("E1:E67").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("B1").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Range("G1:I67").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("C1").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Range("L1:L67").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("F1").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
ActiveWindow.SmallScroll ToRight:=2
Range("O1:O67").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("G1").Select
ActiveSheet.Paste
Range("A1").Select
End Sub
J'espère vous avoir aidé
scelera
Messages postés
39
Date d'inscription
lundi 10 juin 2013
Statut
Membre
Dernière intervention
3 décembre 2021
11 juin 2013 à 08:08
11 juin 2013 à 08:08
Bonjour,
La formule que vous m'avez donné correspond à ce que je recherchais !
Savez - vous le code pour y ajouter un filtre automatique pour chaque colonne en feuille 2 ?
Merci pour votre aide !
La formule que vous m'avez donné correspond à ce que je recherchais !
Savez - vous le code pour y ajouter un filtre automatique pour chaque colonne en feuille 2 ?
Merci pour votre aide !
11 juin 2013 à 09:21
Merci beaucoup. Peux tu me dire comment je dois faire pour que si une feuille 2 est déjà ouverte, elle s'ouvre en feuille 3 et ainsi de suite ?
11 juin 2013 à 09:27
Ici les données de Feuil2 sont collées sur Feuil1
Une feuille ne s'ouvre pas, à la limite elle s'active.
comment je dois faire pour que si une feuille 2 est déjà ouverte, elle s'ouvre en feuille 3 et ainsi de suite ? ne veut rien dire...
eric
11 juin 2013 à 09:34
Modifié par eriiic le 11/06/2013 à 09:42
Si ta question de départ est résolue met ce fil en résolu (en haut vers ton titre), et démarre une nouvelle question en t'expliquant mieux.
eric