Répéter un copier/coller spécial grâce à une macro ?[Excel 2007]
Fermé
derek
-
21 févr. 2014 à 23:12
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 22 févr. 2014 à 16:21
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 22 févr. 2014 à 16:21
A voir également:
- Répéter un copier/coller spécial grâce à une macro ?[Excel 2007]
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Copier coller pdf - Guide
- Caractere special - Guide
- Aller à la ligne excel - Guide
2 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
21 févr. 2014 à 23:50
21 févr. 2014 à 23:50
Bonsoir,
un exemple :
Pour moi le code parle de lui-même, je ne l'ai pas commenté. N'hésite pas à utiliser F1 sur les fonctions qui ne te parlent pas.
https://www.cjoint.com/?DBvxWqZOIj8
eric
un exemple :
Sub Total() Dim sh As Worksheet, shT As Worksheet Dim derlig As Long Set shT = Worksheets("Total") Application.ScreenUpdating = False For Each sh In Worksheets If sh.Name <> "Total" Then derlig = Application.Max(2, shT.Cells(Rows.Count, 7).End(xlUp).Row + 1) sh.[B5:AB17].Copy Sheets("Total").Cells(derlig, 7).PasteSpecial Paste:=xlPasteValues, Transpose:=True End If Next sh shT.[G2].Select Application.ScreenUpdating = True End Sub
Pour moi le code parle de lui-même, je ne l'ai pas commenté. N'hésite pas à utiliser F1 sur les fonctions qui ne te parlent pas.
https://www.cjoint.com/?DBvxWqZOIj8
eric
Merci!
Bon même si j'arrive pas à comprendre 90% du code, j'ai trifouillé le "Row + 1)" en "Row + 5)" car sinon il me manquait à chaque fois les 4 dernières lignes (sans que je comprenne pour autant exactement ce que ça signifie malheureusement...)
Mais merci beaucoup!
Bon même si j'arrive pas à comprendre 90% du code, j'ai trifouillé le "Row + 1)" en "Row + 5)" car sinon il me manquait à chaque fois les 4 dernières lignes (sans que je comprenne pour autant exactement ce que ça signifie malheureusement...)
Mais merci beaucoup!
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
Modifié par eriiic le 22/02/2014 à 10:05
Modifié par eriiic le 22/02/2014 à 10:05
Bonjour,
Le vba ne se fait pas au hasard.
shT.Cells(Rows.Count, 7).End(xlUp).Row + 1 : dernière ligne utilisée de la colonne G (la 7) +1. C'est donc la 1ère ligne libre où écrire le bloc suivant.
Si la colonne G peut ne pas être complète il fallait le dire. Dans ce cas utilise une colonne que tu sais toujours complète.
eric
Le vba ne se fait pas au hasard.
shT.Cells(Rows.Count, 7).End(xlUp).Row + 1 : dernière ligne utilisée de la colonne G (la 7) +1. C'est donc la 1ère ligne libre où écrire le bloc suivant.
Si la colonne G peut ne pas être complète il fallait le dire. Dans ce cas utilise une colonne que tu sais toujours complète.
eric
C'est pas la colonne G qui est incomplète, ce sont les tableaux qui une fois transposés se collent bien à la suite les uns des autres mais en omettant à chaque fois les 4 dernières lignes avec Row +1, problème réglé avec Row+5, même si la macro commence le collage sur G6 au lieu de G2.
Et oui j'ai bien compris que le VBA ne se fait pas au hasard...
Et oui j'ai bien compris que le VBA ne se fait pas au hasard...
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
22 févr. 2014 à 16:21
22 févr. 2014 à 16:21
Extrêmement bizarre...
B5:AB17, comme demandé, est bien copié et transposé. Le bloc suivant doit se coller à la 1ère ligne vide qui est shT.Cells(Rows.Count, 7).End(xlUp).Row + 1 et pas autre chose dans la mesure où cette colonne 7 est complète.
Bref, je n'insiste pas plus.
eric
B5:AB17, comme demandé, est bien copié et transposé. Le bloc suivant doit se coller à la 1ère ligne vide qui est shT.Cells(Rows.Count, 7).End(xlUp).Row + 1 et pas autre chose dans la mesure où cette colonne 7 est complète.
Bref, je n'insiste pas plus.
eric