Macro pour recopier une plage de cellule

Fermé
jacksa3ada Messages postés 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017 - 11 juin 2014 à 11:58
jacksa3ada Messages postés 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017 - 11 juin 2014 à 16:09
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

8 réponses

sipherion Messages postés 1809 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
11 juin 2014 à 12:01
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 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017
11 juin 2014 à 12:09
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 1809 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
11 juin 2014 à 12:11
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 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017
Modifié par jacksa3ada le 11/06/2014 à 12:27
' voici le code
0

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

Posez votre question
jacksa3ada Messages postés 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017
Modifié par jacksa3ada le 11/06/2014 à 12:28
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 1809 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
11 juin 2014 à 12:23
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 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017
Modifié par jacksa3ada le 11/06/2014 à 13:08
je souhaite recuperer les donnes contenu de (BM18:DM18)
et les coller par ordre dans la feuille ''rapport mensuel''
0
sipherion Messages postés 1809 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
11 juin 2014 à 13:22
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 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017
11 juin 2014 à 13:25
exact
0
jacksa3ada Messages postés 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017
Modifié par jacksa3ada le 11/06/2014 à 12:26
c'est le dernier code ok

moi je n'arrive pas a le simplifie..
0
sipherion Messages postés 1809 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
Modifié par sipherion le 11/06/2014 à 13:33
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 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
Modifié par pijaku le 11/06/2014 à 13:41
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 1809 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
11 juin 2014 à 13:42
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 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017
11 juin 2014 à 13:52
Merci mes amis
0
jacksa3ada Messages postés 36 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 18 juin 2017
11 juin 2014 à 13:52
1000 fois merci
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
Modifié par pijaku le 11/06/2014 à 13:57
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