Executer une macro sur plusieurs lignes??
Résolu/Fermé
mr.denver
Messages postés
31
Date d'inscription
lundi 24 mars 2014
Statut
Membre
Dernière intervention
7 août 2014
-
11 avril 2014 à 16:18
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 - 16 avril 2014 à 17:04
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 - 16 avril 2014 à 17:04
A voir également:
- Executer une macro sur plusieurs lignes??
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Comment aller à la ligne sur excel - Guide
- Macro logiciel - Télécharger - Organisation
- Macro recorder - Télécharger - Confidentialité
8 réponses
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
11 avril 2014 à 17:25
11 avril 2014 à 17:25
Bonjour
Peux tu envoyer une partie de ton fichier au format excel 2003 (fichier/enregistrer sous/Type ..... .xls) sur cjoint.com et joindre le lien obtenu à ton prochain message
N'oublies pas d'y ajouter des explications (pour plus de clarté, nomme les plages que tu veux copier et les plages où tu veux les coller)
Une solution sans macro est peut être possible, est ce que tu préfèrerait?
Cdlmnt
Peux tu envoyer une partie de ton fichier au format excel 2003 (fichier/enregistrer sous/Type ..... .xls) sur cjoint.com et joindre le lien obtenu à ton prochain message
N'oublies pas d'y ajouter des explications (pour plus de clarté, nomme les plages que tu veux copier et les plages où tu veux les coller)
Une solution sans macro est peut être possible, est ce que tu préfèrerait?
Cdlmnt
Bonjour
Voila un Exemple de macro pour Transpose plusieur colonne
Sub TestA()
Dlig = Range("A" & Rows.Count).End(xlUp).Row
For C = 1 To 3
Range(Cells(12, C), Cells(Dlig, C)).Copy
Range("H" & C + 3).PasteSpecial xlPasteValues, , , True
Next
Application.CutCopyMode = False
[A1].Select
End Sub
A+
Maurice
Voila un Exemple de macro pour Transpose plusieur colonne
Sub TestA()
Dlig = Range("A" & Rows.Count).End(xlUp).Row
For C = 1 To 3
Range(Cells(12, C), Cells(Dlig, C)).Copy
Range("H" & C + 3).PasteSpecial xlPasteValues, , , True
Next
Application.CutCopyMode = False
[A1].Select
End Sub
A+
Maurice
mr.denver
Messages postés
31
Date d'inscription
lundi 24 mars 2014
Statut
Membre
Dernière intervention
7 août 2014
11 avril 2014 à 21:26
11 avril 2014 à 21:26
merci pour votre réponse rapide je vais l'essayer
re
la meme par rapport a ton fichier
Sub transpose()
Application.ScreenUpdating = False
Dlig = 17
Flig = Range("A" & Rows.Count).End(xlUp).Row
For C = 1 To 5
Range(Cells(Dlig, C), Cells(Flig, C)).Copy
Range("F" & C + 2).PasteSpecial xlPasteValues, , , True
Next
Application.CutCopyMode = False
[A1].Select
End Sub
A+
Maurice
la meme par rapport a ton fichier
Sub transpose()
Application.ScreenUpdating = False
Dlig = 17
Flig = Range("A" & Rows.Count).End(xlUp).Row
For C = 1 To 5
Range(Cells(Dlig, C), Cells(Flig, C)).Copy
Range("F" & C + 2).PasteSpecial xlPasteValues, , , True
Next
Application.CutCopyMode = False
[A1].Select
End Sub
A+
Maurice
mr.denver
Messages postés
31
Date d'inscription
lundi 24 mars 2014
Statut
Membre
Dernière intervention
7 août 2014
11 avril 2014 à 22:47
11 avril 2014 à 22:47
merci pour ta réponse
est ce que ce script tout seul marche ou il faut le rajouter a mon script??
parceque je l'ai copier coller sur une nouvelle macro et je l'ai executer mais ça ne marche pas
est ce que ce script tout seul marche ou il faut le rajouter a mon script??
parceque je l'ai copier coller sur une nouvelle macro et je l'ai executer mais ça ne marche pas
Bonjour
en retour ton fichier modifier
http://cjoint.com/?3DmktEW6tRh
A+
Maurice
en retour ton fichier modifier
http://cjoint.com/?3DmktEW6tRh
A+
Maurice
mr.denver
Messages postés
31
Date d'inscription
lundi 24 mars 2014
Statut
Membre
Dernière intervention
7 août 2014
13 avril 2014 à 20:29
13 avril 2014 à 20:29
merci beaucoup j'ai essayer mais ça marche pas bien
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 12/04/2014 à 12:01
Modifié par michel_m le 12/04/2014 à 12:01
Bonjour,
puisque tu débutes dans les macros, bienvenue à bord du Titanic :o), autant passer sur des bases saines
lorsque tu copies ou transposes uniquement des données , tu n'as généralement pas besoin de faire des copier-coller et des boucles fumeuses...
par ex :
tu veux copier les valeurs de C3:K3 en C12:K12
Edit:
de m^me,pour copier B3 en D17:D22
Et bien sûr, commence toujours tes macros par
Application.screenupdating=false
qui fige le défilement de l'écran (confort) et réduit de 80 fois le temps d'une macro
Michel
puisque tu débutes dans les macros, bienvenue à bord du Titanic :o), autant passer sur des bases saines
lorsque tu copies ou transposes uniquement des données , tu n'as généralement pas besoin de faire des copier-coller et des boucles fumeuses...
par ex :
tu veux copier les valeurs de C3:K3 en C12:K12
Range("C12:K12") = Range("C3:K3").Valuetu veux transposer les valeurs en A1:A19
Range("A11:A19") = Application.Transpose(Range("C3:K3"))L'enregistreur de macro enregistre tes faits et gestes: point final
Edit:
de m^me,pour copier B3 en D17:D22
Range("D17") = Range("B3")
Range("D17").AutoFill Destination:=Range("D17:D22")
Et bien sûr, commence toujours tes macros par
Application.screenupdating=false
qui fige le défilement de l'écran (confort) et réduit de 80 fois le temps d'une macro
Michel
mr.denver
Messages postés
31
Date d'inscription
lundi 24 mars 2014
Statut
Membre
Dernière intervention
7 août 2014
13 avril 2014 à 20:26
13 avril 2014 à 20:26
merci beaucoup pour ces informations
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
12 avril 2014 à 15:29
12 avril 2014 à 15:29
Une tentative avec ce que j'ai compris
https://www.cjoint.com/?3DmpCJguFbL
Cdlmnt
https://www.cjoint.com/?3DmpCJguFbL
Cdlmnt
mr.denver
Messages postés
31
Date d'inscription
lundi 24 mars 2014
Statut
Membre
Dernière intervention
7 août 2014
13 avril 2014 à 20:25
13 avril 2014 à 20:25
bonjour merci pour ton essai
ça marche super bien sauf à un détail prés la colonne "code" A16 affiche toujours
tci1-11
tci1-12
tci1-13
tci1-14
tci1-15
tci1-16
normalement une fois q'elle termine de transopser la pemirere ligne elle transeposera la lgne 2
qui est
tci2-11
tci2-12
tci2-13
tci2-14
tci2-15
tci2-16
puis
tci3-11
tci3-12
tci3-13
tci3-14
tci3-15
tci3-16
je sais que normalement je devrais modifier un truc simple pour que ça marche mais je suis tellement null en macro que je ne peut meme pas lire le script
je te remerci beaucoup pour ton aide
ça marche super bien sauf à un détail prés la colonne "code" A16 affiche toujours
tci1-11
tci1-12
tci1-13
tci1-14
tci1-15
tci1-16
normalement une fois q'elle termine de transopser la pemirere ligne elle transeposera la lgne 2
qui est
tci2-11
tci2-12
tci2-13
tci2-14
tci2-15
tci2-16
puis
tci3-11
tci3-12
tci3-13
tci3-14
tci3-15
tci3-16
je sais que normalement je devrais modifier un truc simple pour que ça marche mais je suis tellement null en macro que je ne peut meme pas lire le script
je te remerci beaucoup pour ton aide
mr.denver
Messages postés
31
Date d'inscription
lundi 24 mars 2014
Statut
Membre
Dernière intervention
7 août 2014
13 avril 2014 à 21:47
13 avril 2014 à 21:47
sos plz!!!!
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
14 avril 2014 à 08:12
14 avril 2014 à 08:12
Tu râles après 1 heure d'attente ?
alors que tu as répondu à CCM81 après plus de 24 heures et de plus le dimanche soir pour voir si le boulot est fait question d'être prêt pour frimer lundi matin...
Comme toi, chacun a le droit au repos du WE: les contributeurs, bénévoles je te le rappelles, ne sont pas taillables et corvéables à Merci
tans pis pour toi au boulot
alors que tu as répondu à CCM81 après plus de 24 heures et de plus le dimanche soir pour voir si le boulot est fait question d'être prêt pour frimer lundi matin...
Comme toi, chacun a le droit au repos du WE: les contributeurs, bénévoles je te le rappelles, ne sont pas taillables et corvéables à Merci
tans pis pour toi au boulot
mr.denver
Messages postés
31
Date d'inscription
lundi 24 mars 2014
Statut
Membre
Dernière intervention
7 août 2014
14 avril 2014 à 08:55
14 avril 2014 à 08:55
écoute je ne rale pas j'ai juste commenter mon poste pour le remonter, j'ai passée tous le we à travailler sur se ficher.
maintenant si tu peux m'aider ok sinon je te laisse mon num on se voie je te paie un verre pour ta contribution .merci
maintenant si tu peux m'aider ok sinon je te laisse mon num on se voie je te paie un verre pour ta contribution .merci
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
Modifié par ccm81 le 14/04/2014 à 19:00
Modifié par ccm81 le 14/04/2014 à 19:00
@ michel
Salut à toi
effectivement les contributeurs même bénévoles ont droit à leurs week end de temps en temps et peuvent aussi s'occuper, toujours bénévolement, de leurs petits enfants, et ça peut même durer quelques jours!
@mr.denver
Désolé mais je ne dispose pas d'excel sur ma bécane actuelle, donc je ne pourrai que te donner quelques pistes.... si mes souvenirs sont bons
il doit y avoir une variable plagev qui prend la valeur Range(ligneverte) une seule fois avant la boucle for li = 1 to nbli (d'où la même ligne copiée à chaque tour de boucle)
tu dois la redéfinir à l'intérieur de cette boucle avec une instruction du genre
set plagev = Range(.....) où l'adresse doit prendre en compte la variable li
je ne peux pas faire mieux d'ici!
Bonne fin de journée à tous
Salut à toi
effectivement les contributeurs même bénévoles ont droit à leurs week end de temps en temps et peuvent aussi s'occuper, toujours bénévolement, de leurs petits enfants, et ça peut même durer quelques jours!
@mr.denver
Désolé mais je ne dispose pas d'excel sur ma bécane actuelle, donc je ne pourrai que te donner quelques pistes.... si mes souvenirs sont bons
il doit y avoir une variable plagev qui prend la valeur Range(ligneverte) une seule fois avant la boucle for li = 1 to nbli (d'où la même ligne copiée à chaque tour de boucle)
tu dois la redéfinir à l'intérieur de cette boucle avec une instruction du genre
set plagev = Range(.....) où l'adresse doit prendre en compte la variable li
je ne peux pas faire mieux d'ici!
Bonne fin de journée à tous
mr.denver
Messages postés
31
Date d'inscription
lundi 24 mars 2014
Statut
Membre
Dernière intervention
7 août 2014
15 avril 2014 à 00:44
15 avril 2014 à 00:44
personne n'as forcer personne à l'aider.barre
est ce que ça vous a déranger ccm81 quand j'ai poster un commentaire pour remonter mon poste??
si, y'avais pas des personnes serviable comme vous ccm81 ce forum n'existerais pas
en ce qui concerne le fichier exel j'ai fini par abandonner l'idée de réaliser une macro, j'ai fait le travail manuellement c'st bon j'ai fini le travail.
je te remercie ainsi que tous les membre qui m'on aidé et Un grand merci à vous pour votre serviabilité
est ce que ça vous a déranger ccm81 quand j'ai poster un commentaire pour remonter mon poste??
si, y'avais pas des personnes serviable comme vous ccm81 ce forum n'existerais pas
en ce qui concerne le fichier exel j'ai fini par abandonner l'idée de réaliser une macro, j'ai fait le travail manuellement c'st bon j'ai fini le travail.
je te remercie ainsi que tous les membre qui m'on aidé et Un grand merci à vous pour votre serviabilité
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
Modifié par ccm81 le 16/04/2014 à 17:34
Modifié par ccm81 le 16/04/2014 à 17:34
@ mr.denver
Tu reconnaîtra quand même que réactiver un post, au bout d'une heure un dimanche soir, ça peut crisper légèrement. Lorsqu'un membre prend en charge une question, il la mène au bout ou il déclare forfait, mais dans tous les cas, le suivi est assuré!
Regarde un peu le profil de michel_m, tu constatera qu'on ne peut pas le taxer de rechigner à aider son prochain, sans parler de ses compétences!
Je viens juste de reprendre contact avec ma bécane, et je vois que tu as laissé tomber le principe d'une macro, dommage, j'ai quand passé une ou deux heures à essayer de comprendre et de résoudre ton problème, sans compter les quelques minutes lundi, où j'ai essayé de te dépanner (tu avais tout ce qu'il fallait dans le code pour terminer la macro)
Bon, ceci étant, c'est le printemps, il fait super beau, restons zen :-)
PS. Peux tu quand mettre ton problème à résolu (puisqu'il l'est), c'est en haut à droite de ton premier post
Cdlmnt
ccm81
Tu reconnaîtra quand même que réactiver un post, au bout d'une heure un dimanche soir, ça peut crisper légèrement. Lorsqu'un membre prend en charge une question, il la mène au bout ou il déclare forfait, mais dans tous les cas, le suivi est assuré!
Regarde un peu le profil de michel_m, tu constatera qu'on ne peut pas le taxer de rechigner à aider son prochain, sans parler de ses compétences!
Je viens juste de reprendre contact avec ma bécane, et je vois que tu as laissé tomber le principe d'une macro, dommage, j'ai quand passé une ou deux heures à essayer de comprendre et de résoudre ton problème, sans compter les quelques minutes lundi, où j'ai essayé de te dépanner (tu avais tout ce qu'il fallait dans le code pour terminer la macro)
Bon, ceci étant, c'est le printemps, il fait super beau, restons zen :-)
PS. Peux tu quand mettre ton problème à résolu (puisqu'il l'est), c'est en haut à droite de ton premier post
Cdlmnt
ccm81
11 avril 2014 à 21:29
https://www.cjoint.com/?DDlvzLy9qLM
oui si y a possibilité j'aimerais bien, au fait j'ai mis qu'un extrait des lignes en réalité mon fichier contiens une centaine de lignes.
je te remercie beaucoup pour ton aide précieuse