Macro excel

Résolu
Bonjour,
J'aurais besoin de votre aide, cela fait 2 jours que je bloque sur un pb, qui vous paraitra surement simple mais je n'ai pas de supers connaissance en macro (a part les macro par enregistrement)
j'ai un tableau que se met à jour tout les mois et je dois prendre certaines cellules de ce tableau et les mettre dans une autrefeuille où figurerons toutes les données mensuelles, les colonnes s'ajoutant à la suite (à droite)
je copie et colle 4 colonnes par mois

Merci de bien vouloir m'aider

14 réponses

  1. Merci vraiment lermitte 222, tu as raison, ta méthode est + interessante pour pouvoir revenir sur un mois
    c'est génial d'avoir en face de soi un passionné, j'espère que tu ne m'en veux pas pour ta petite nuit (je vois que tu m'a envoyé les réponse assez tard)*

    Bonne continuation
    1. Contributeur
      Mais moi je ne ferais pas comme ça.
      Suppose que tu mémorise Janvier et qu'ensuite tu fait une modification, c'est reparti pour le faire en manuel.
      Avec le système que j'emploie tu peu recopier le mois autant de fois que tu veux.

      Ton classeur en retour
      A+
      L'expérience instruit plus sûrement que le conseil. (André Gide)
      Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
      NOTE : Je ne répond pas aux MP pour les questions techniques.
      Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
      1. Contributeur
        Problème de fonctionnement avec le XlToRight
        Recopie le code ci-dessous.
        Sub cumul_fonctionnement()
        Dim Col As Integer
            
            With Sheets("Cumul Fonctionnement")
                Col = .Cells(4, 256).End(xlToLeft).Column + 1
                If Col > 6 Then
                    .Range("C4:F5").Copy .Cells(4, Col)
                    .Range("C6:F16").Copy
                    .Cells(6, Col).PasteSpecial Paste:=xlFormats
                End If
            End With
            With Sheets("Tableau Fonctionnement")
                .Range("C5:D15").Copy
                Sheets("Cumul Fonctionnement").Cells(6, Col).PasteSpecial Paste:=xlPasteValues
                
                .Range("D21:D31").Copy
                Sheets("Cumul Fonctionnement").Cells(6, Col + 2).PasteSpecial Paste:=xlPasteValues
                
                .Range("D37:D47").Copy
                Sheets("Cumul Fonctionnement").Cells(6, Col + 3).PasteSpecial Paste:=xlPasteValues
            End With
        End Sub


        Cette fois je l'ai tester sur ton classeur.

        L'expérience instruit plus sûrement que le conseil. (André Gide)
        Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
        NOTE : Je ne répond pas aux MP pour les questions techniques.
        Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
        1. bonjour,
          je te remercie vraiment pour ta patience
          je n'ai pas dû t'expliquer assez clairement mais le tableau de la feuille fonctionnement s'ctualise tout les mois, et je dois récupérer chaque mois les 4 colonnes vers la feuille cumul et les données s'ajoutent par la droite, les 4 1eres colonnes concernent janvier, les 4 colonnes suivantes s'ajoutent et deviennent fevrier ... etc, la feuille cumul est en fait un historique
          la formule que tu m'as transmis écrase les données càd que mars ne vient pas aprés février mais au dessus

          j'espère que mon explication est compréhensible:)

          merci encore
          1. en fait , je crois qu'il faudrait mettre une boucle du style " quand la colonne est rempli , coller les données dans la colonne suivante mais je n'arrive pas à écrire la ligne , merci lermite222 de ton aide précieuse
            ci dessous, où j'en suis

            Dim i As Integer
            For i = 1 To 20

            If i <> "" Then
            With Sheets("Tableau Fonctionnement")
            i = .Range("C5").End(xlToRight).Column + 1
            Sheets("Cumul Fonctionnement").Range("C5:F16").Copy
            Sheets("Cumul Fonctionnement").Cells(6, i).PasteSpecial Paste:=xlFormats
            .Range("C5:D15").Copy
            Sheets("Cumul Fonctionnement").Cells(6, i + 1).PasteSpecial Paste:=xlPasteValues

            .Range("D21:D31").Copy
            Sheets("Cumul Fonctionnement").Cells(6, i + 2).PasteSpecial Paste:=xlPasteValues

            .Range("D37:D47").Copy
            Sheets("Cumul Fonctionnement").Cells(6, i + 3).PasteSpecial Paste:=xlPasteValues
        2. Contributeur
          Essaye avec ...
          Sub cumul_fonctionnement()   
          Dim Col As Integer   
              With Sheets("Tableau Fonctionnement")   
                  Col = .Range("C6").End(xlToRight).Column + 1   
                  .Range("C5:D15").Copy   
                  Sheets("Cumul Fonctionnement").Cells(6, Col).PasteSpecial Paste:=xlPasteValues   
                     
                  .Range("D21:D31").Copy   
                  Sheets("Cumul Fonctionnement").Cells(6, Col + 2).PasteSpecial Paste:=xlPasteValues   
                     
                  .Range("D37:D47").Copy   
                  Sheets("Cumul Fonctionnement").Cells(6, Col + 1).PasteSpecial Paste:=xlPasteValues   
              End With   
          End Sub

          Et si tu veux reporter le format...
          Sub cumul_fonctionnement() 
          Dim Col As Integer 
              With Sheets("Tableau Fonctionnement") 
                  Col = .Range("C6").End(xlToRight).Column + 1 
                  Sheets("Cumul Fonctionnement").Range("C5:F16").Copy 
                  Sheets("Cumul Fonctionnement").Cells(5, Col).PasteSpecial Paste:=xlFormats 
                  .Range("C5:D15").Copy 
                  Sheets("Cumul Fonctionnement").Cells(6, Col).PasteSpecial Paste:=xlPasteValues 
                   
                  .Range("D21:D31").Copy 
                  Sheets("Cumul Fonctionnement").Cells(6, Col + 2).PasteSpecial Paste:=xlPasteValues 
                   
                  .Range("D37:D47").Copy 
                  Sheets("Cumul Fonctionnement").Cells(6, Col + 1).PasteSpecial Paste:=xlPasteValues 
              End With 
          End Sub
          A+
          L'expérience instruit plus sûrement que le conseil. (André Gide)
          Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
          NOTE : Je ne répond pas aux MP pour les questions techniques.
          Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
          1. oui c'est bien ça, le total est a reporter également, mon souci est que les données s'ajoutent par la droite, alors qu'avec moi elles s'ecrasent

            merci
            Sonia
            1. Merci de m'aider svp
          2. Contributeur
            Tu veux ajouter les mêmes valeurs de la feuille Tableau Fonctionnement vers la feuille Cumul Fonctionnement mais en décalant les données sur 4 colonnes vers la droite ?
            En répercutant les titres et le format ? (Cadre)
            Le total est à reporter ou à faire autrement ?
            Tu dis.
            L'expérience instruit plus sûrement que le conseil. (André Gide)
            Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
            NOTE : Je ne répond pas aux MP pour les questions techniques.
            Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
            1. bonjour
              ci dessous le line du fichier excel :
              http://www.cijoint.fr/cjlink.php?file=cj201101/cijEs2lOta.xls
              et le lien de la macro que j'ai légerement corrigé :
              http://www.cijoint.fr/cjlink.php?file=cj201101/cijFawybGl.txt

              désolé pour le MP, je n'avais pas lu la note

              Merci pour ton aide
              Sonia
              1. Contributeur
                Tu peu le déposer sur CiJoint.fr et mettre le lien dans un poste suivant.
                1. Contributeur
                  Je souhaiterais que tu lise la note dans ma signature.
                  Merci
              2. merci pour ton aide mais ça me décale mes cellules vers le bas dans ma feuille cumul alors que je souhaiterais ajouter à chaque fois 4 colonnes à la suite vers la droite (les données s'ajoutent en colonne et non en ligne)
                je sais que c'est un peu difficile à comprendre comme ça, je ne vois pas bien comment je pourrait t'envoyer mon fichier excel

                Merci encore de voir
                1. Contributeur
                  Si c'est ce que tu veux faire..
                  Sub cumul_fonctionnement()
                  '
                  ' cumul_fonctionnement Macro
                  ' Macro enregistrée le 25/01/2011 par smarakch
                  
                      With Sheets("Tableau Fonctionnement")
                          Range("C5:D15").Copy
                          Sheets("Cumul Fonctionnement").Range("C6").PasteSpecial Paste:=xlPasteValues
                          
                          Range("D21:D31").Copy
                          Sheets("Cumul Fonctionnement").Range("E6").PasteSpecial Paste:=xlPasteValues
                          
                          Range("D37:D47").Copy
                          Sheets("Cumul Fonctionnement").Range("F6").PasteSpecial Paste:=xlPasteValues
                      End With
                  End Sub


                  A+
                  1. voila ce que j'ai fait, j'ai arrété au moment ou il faut surement creer une boucle :
                    Sub cumul_fonctionnement()
                    '
                    ' cumul_fonctionnement Macro
                    ' Macro enregistrée le 25/01/2011 par smarakch
                    '

                    '
                    Sheets("Tableau Fonctionnement").Select
                    Range("C5:C15").Select
                    Selection.Copy
                    Sheets("Cumul Fonctionnement").Select
                    Range("C6").Select
                    ActiveSheet.Paste
                    Sheets("Tableau Fonctionnement").Select
                    Range("D5:D15").Select
                    Selection.Copy
                    Sheets("Cumul Fonctionnement").Select
                    Range("D6").Select
                    ActiveSheet.Paste
                    Sheets("Tableau Fonctionnement").Select
                    Range("D21:D31").Select
                    Selection.Copy
                    Sheets("Cumul Fonctionnement").Select
                    Range("E6").Select
                    ActiveSheet.Paste
                    Sheets("Tableau Fonctionnement").Select
                    Range("D37:D47").Select
                    Selection.Copy
                    Sheets("Cumul Fonctionnement").Select
                    Range("F6").Select
                    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                    :=False, Transpose:=False
                    end sub
                    1. Contributeur
                      Bonjour,
                      Montre nous le code que tu a déjà créer, ou que tu a fait avec l'éditeur de macro.
                      Ce sera plus simple.
                      A+