Répéter un copier/coller spécial grâce à une macro ?[Excel 2007]
derek
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Alors voilà mon problème maintes et maintes fois abordé mais les réponses que j'ai consultées ne m'aident pas à y voir plus clair...
J'ai:
-un fichier excel avec 31 onglets (plusieurs à vrai dire, beaucoup même)
-tous les onglets ont la même structure
-je cherche à"copier/coller transposer" la section B5:AB17 de chaque onglet dans un onglet récapitulatif , appelons le "total", les unes à la suite des autre, de haut en bas en commençant par la cellule G2 de l'onglet "total"
Je ne maîtrise pas du tout le VBA évidemment, même si j'ai très envie d'apprendre. Du coup j'ai tenté de créer une macro en enregistrant l'action pour le premier onglet. Mais biensur je ne parviens pas à comprendre comment on peut automatiser ça sur plusieurs onglets, donc elle ne me sert strictement à rien...
Je serait extrêmement reconnaissant à la personne qui m'offrirait ma première macro! et j'espère bien qu'elle me permettra de percer quelques secrets de cet outil magique!
Merci d'avance.
Alors voilà mon problème maintes et maintes fois abordé mais les réponses que j'ai consultées ne m'aident pas à y voir plus clair...
J'ai:
-un fichier excel avec 31 onglets (plusieurs à vrai dire, beaucoup même)
-tous les onglets ont la même structure
-je cherche à"copier/coller transposer" la section B5:AB17 de chaque onglet dans un onglet récapitulatif , appelons le "total", les unes à la suite des autre, de haut en bas en commençant par la cellule G2 de l'onglet "total"
Je ne maîtrise pas du tout le VBA évidemment, même si j'ai très envie d'apprendre. Du coup j'ai tenté de créer une macro en enregistrant l'action pour le premier onglet. Mais biensur je ne parviens pas à comprendre comment on peut automatiser ça sur plusieurs onglets, donc elle ne me sert strictement à rien...
Je serait extrêmement reconnaissant à la personne qui m'offrirait ma première macro! et j'espère bien qu'elle me permettra de percer quelques secrets de cet outil magique!
Merci d'avance.
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
- Save as pdf office 2007 - Télécharger - Bureautique
- Retrouver un copier-coller android - Guide
- Liste déroulante excel - Guide
- Caractere special - Guide
2 réponses
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!
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...