Macro pour recopier une plage de cellule
jacksa3ada
Messages postés
37
Statut
Membre
-
jacksa3ada Messages postés 37 Statut Membre -
jacksa3ada Messages postés 37 Statut Membre -
bonjour
je suis nouveaux sur ce forum
et merci d'avance pour votre aide
j'ai un classeur excel (rapport journalier) , et par consequent les feuille sont nommee 1 , 2 , ....jusqu au 31
je desire recuperer un plage de donnee contenu dans chaque feuille de A36 : AG36
ces donnes, je veu les coller sur une feuille que de meme classeur que je nomme ''RAPPORT MENSUEL'' . ils doivent apparaitre sous forme d'un tableau.
je veux coller chaque plage recopie sur une ligne
merci
merci
je suis nouveaux sur ce forum
et merci d'avance pour votre aide
j'ai un classeur excel (rapport journalier) , et par consequent les feuille sont nommee 1 , 2 , ....jusqu au 31
je desire recuperer un plage de donnee contenu dans chaque feuille de A36 : AG36
ces donnes, je veu les coller sur une feuille que de meme classeur que je nomme ''RAPPORT MENSUEL'' . ils doivent apparaitre sous forme d'un tableau.
je veux coller chaque plage recopie sur une ligne
merci
merci
8 réponses
-
Bonjour,
Si tu veux que ce soit automatique, je ne vois que le VB. As tu des connaissances dans le langage de programmation des macros ?
-
bonjour
merci de m'avoir vite repondu .
biensur que j'ai des base VB. d'ailleur j'ai realise une macro pour le faire . mais par l'enregisteur..
moi je veu que sa soit pro
merci -
Donne moi le code que t'as généré l'enregistreur de macro, je peux te donner deux ou trois ficelles pour l'optimiser.
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
voici le bon
RapportMensuel Macro
'
'
Sheets("1").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("2").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B14").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("3").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B15").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("4").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B16").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("5").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B17").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("6").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B18").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("7").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B19").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("8").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B20").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("9").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("10").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B22").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("11").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B23").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("12").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B24").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("13").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B25").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("14").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B26").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("15").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B27").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("16").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B28").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("17").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B29").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("18").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B30").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("19").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B31").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("20").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B32").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("21").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B33").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("22").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B34").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("23").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B35").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("24").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B36").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("25").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B37").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("26").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B38").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("27").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B39").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("28").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B40").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("29").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B41").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("30").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B42").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("31").Select
Range("BM18:DM18").Select
Selection.Copy
Sheets("Rap mensuel").Select
Range("B43").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub -
D'après ce que je vois, ce n'est pas du tout les cellules A36-AG36 que tu récupères. De plus, tu écris des données en dur dans des cellules, et je vois également d'autres documents Excel ouverts. Un peu dur de tout suivre la dedans.
Si j'ai bien compris, ce que tu souhaites récupérer, c'est dans un onglet Rapport Mensuel (le 32ème onglet de ton classeur) en ligne 1 le contenu de la ligne 36 de l'onglet 1, en ligne 2 le contenu de la ligne 36 de l'onglet 2, en ligne 3 le contenu de la ligne 36 de l'onglet 3, etc jusqu'au 31 ?
-
c'est le dernier code ok
moi je n'arrive pas a le simplifie.. -
Voici le code que j'ai généré, à modifier selon tes spécificités :
Sub Copy()
' On créé une boucle sur les numéros de page
For p = 1 To 31
' On sélectionne la page p
Sheets(p).Select
' On copie la totalité de la ligne 36
Rows("36:36").Select
Selection.Copy
' On sélectionne la page RAPPORT MENSUEL
Sheets("RAPPORT MENSUEL").Select
' On colle sur la même ligne que le numéro de la page.
Rows(p).Select
ActiveSheet.Paste
Next
End Sub
"Il vaut mieux savoir tout chercher que chercher à tout savoir."-
Bonjour,
Attention aux .Select inutiles qui ralentissent le code. Surtout ici lors de changement répétés de feuilles.
Les lignes :Sheets(p).Select ' On copie la totalité de la ligne 36 Rows("36:36").Select Selection.Copy ' On sélectionne la page RAPPORT MENSUEL Sheets("RAPPORT MENSUEL").Select ' On colle sur la même ligne que le numéro de la page. Rows(p).Select ActiveSheet.Paste
peuvent être avantageusement être remplacées par :Sheets(p).Rows("36:36").Copy Sheets("RAPPORT MENSUEL").Rows(p)
Ce qui nous donne, avec ton code :Sub Copy() ' On créé une boucle sur les numéros de page For p = 1 To 31 Sheets(p).Rows("36:36").Copy Sheets("RAPPORT MENSUEL").Rows(p) Next End Sub
A adapter également :PasteSpecial Paste:=xlPasteValues
-
-
-
-
Je comprends bien.
Maintenant le demandeur a toutes les clés pour réussir... enfin presque...
Que se passe t'il, avec ton code, en cas d'inversion de feuille?
En fait, pour la boucle, et ce afin d'éviter des erreurs, je ferais plus dans ce style :
Dim Wsh As Worksheet, FeuilRecap As Worksheet, k As Integer Set FeuilRecap = Worksheets("RAPPORT MENSUEL") 'feuille ou coller k = 2 'autant débuter le "collage" à la seconde ligne 'boucle sur toutes les feuilles du classeur For Each Wsh In ThisWorkbook.Worksheets 'Si la feuille (en cours dans la boucle) n'est pas la feuille récap alors If Not Wsh Is FeuilRecap Then 'attention penser à enlever de la boucle les feuilles qui ne doivent pas être traitées 'copié-collé Wsh.Rows(18).Copy FeuilRecap.Rows(k) 'ligne suivante pour le collage k = k + 1 End If Next Wsh
-