Coller des cellules "données" dans une feuille "historique"

Résolu
christophe66 -  
 christophe66 -
Bonjour,

Tout d'abord je suis novice en programmation de macro je n'utilise pour l'instant que l'enregistreur mais là je bloque.
J'ai une page données et une page historique.
Sur la première en A1 la date du jour, B1 et C1 des chiffres D1 une somme (A1+B1) et le bouton de macro
je voudrais une macro qui colle ses valeurs dans la feuille historique les unes à la suite des autres : A1B1C1, A2B2C2...

Merci d'avance
Christophe

4 réponses

  1. Morgothal Messages postés 1350 Statut Membre 184
     
    Bonjour,
    En utilisant l'enregistreur de macro, on peut avoir une macro qui colle la ligne de la page "Données" à la première ligne de la page "Historique".

    Il faut juste trouver comment détecter la dernière ligne non vide de la page historique, avec ceci :
    derniere_ligne = Range("A65536").End(xlUp).Row
    Et remplacer dans la macro enregistrée le numéro de ligne de la page Historique où est collée la ligne par "derniere_ligne".

    A+
    0
    1. christophe66
       
      Merci pour ta réponse plus que rapide. Par contre je bloque toujours :
      Ma macro d'origine :
      Sub Macro7()
      '
      ' Macro7 Macro
      '
      
      '
          Rows("7:7").Select
          Selection.Copy
          Sheets("historiqu").Select
          Rows("1:1").Select
          ActiveSheet.Paste
      End Sub



      Ma macro modifiée :
      Sub Macro7()
      '
      ' Macro7 Macro
      '
      
      '
          Rows("7:7").Select
          Selection.Copy
          Sheets("historiqu").Select
          derniere_ligne = Range("A65536").End(xlUp).Row
          Rows("derniere_ligne").Select
          ActiveSheet.Paste
      End Sub
      0
  2. Morgothal Messages postés 1350 Statut Membre 184
     
    Essaye avec ceci :

    Sub Macro7()
    
        Rows("7:7").Select
        Selection.Copy
        Sheets("historiqu").Select
        derniere_ligne = Range("A65536").End(xlUp).Row
        Rows(derniere_ligne & ":" & derniere_ligne).Select
        ActiveSheet.Paste
    
    End Sub 
     
    0
  3. christophe66
     
    Toujours pas...
    Les données se collent sur la première ligne et ne complètent pas l'historique ligne après ligne.
    0
    1. Morgothal Messages postés 1350 Statut Membre 184
       
      J'ai oublié de préciser que :
      derniere_ligne = Range("A65536").End(xlUp).Row
      Ceci initialise la variable derniere_ligne en lui assignant le numéro de la dernière ligne non-vide.
      Il faut donc :
      Sub Macro7()
      
          Rows("7:7").Select
          Selection.Copy
          Sheets("historiqu").Select
          derniere_ligne = Range("A65536").End(xlUp).Row
          Rows(derniere_ligne+1 & ":" & derniere_ligne+1).Select
          ActiveSheet.Paste
      
      End Sub 
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      J'avais mal compris la demande ce matin

      Je suppose qu'en première ligne de la feuille "historiq" tu as des étiquettes de colonnes( date enA1.......total en D1 et que on part toujours de la ligne 7 en feuille "données"

      essaies
      Sub archiver() 
      Dim ligvid As Integer 
        With Sheets("historiq") 
            ligvide = .Columns("A").Find("", .Range("A1"), xlValues).Row 
           .Rows(ligvide) = Sheets("données").Rows(7).Value 
      End With 
      End Sub 


      s
      0
  4. christophe66
     
    Merci à tous les deux.
    J'ai appliqué la solution de Morgothal et ... elle marche.
    Merci à toi aussi michel_m d'avoir pris le temps de me répondre
    0