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

8 réponses

  1. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
     
    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
  2. 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
  3. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
     
    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
  4. jacksa3ada Messages postés 37 Statut Membre
     
    ' voici le code
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
     
    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
    1. 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
    2. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
       
      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
    3. jacksa3ada Messages postés 37 Statut Membre
       
      exact
      0
  8. jacksa3ada Messages postés 37 Statut Membre
     
    c'est le dernier code ok

    moi je n'arrive pas a le simplifie..
    0
  9. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
     
    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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      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
    2. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
       
      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
    3. jacksa3ada Messages postés 37 Statut Membre
       
      Merci mes amis
      0
    4. jacksa3ada Messages postés 37 Statut Membre
       
      1000 fois merci
      0
    5. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      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