Macro pour recopier une plage de cellule

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
A voir également:

8 réponses

sipherion Messages postés 2462 Statut Membre 286
 
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 ?
0
jacksa3ada Messages postés 37 Statut Membre
 
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
0
sipherion Messages postés 2462 Statut Membre 286
 
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.
0
jacksa3ada Messages postés 37 Statut Membre
 
' voici le code
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jacksa3ada Messages postés 37 Statut Membre
 
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
0
sipherion Messages postés 2462 Statut Membre 286
 
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 ?
0
jacksa3ada Messages postés 37 Statut Membre
 
je souhaite recuperer les donnes contenu de (BM18:DM18)
et les coller par ordre dans la feuille ''rapport mensuel''
0
sipherion Messages postés 2462 Statut Membre 286
 
Tu ne réponds pas à ma question.
Est ce que la description que je t'ai faite semble correspondre à ce que tu as besoin ?
0
jacksa3ada Messages postés 37 Statut Membre
 
exact
0
jacksa3ada Messages postés 37 Statut Membre
 
c'est le dernier code ok

moi je n'arrive pas a le simplifie..
0
sipherion Messages postés 2462 Statut Membre 286
 
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."
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 765
 
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
0
sipherion Messages postés 2462 Statut Membre 286
 
Disons que je gardais volontairement une structure étape par étape générée par l'enregistreur de macro pour que notre ami ne soit pas perdu :-)
0
jacksa3ada Messages postés 37 Statut Membre
 
Merci mes amis
0
jacksa3ada Messages postés 37 Statut Membre
 
1000 fois merci
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 765
 
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
0