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

Résolu/Fermé
christophe66 - 27 nov. 2012 à 10:35
 christophe66 - 27 nov. 2012 à 16:41
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
A voir également:

4 réponses

Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
27 nov. 2012 à 10:45
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
christophe66
27 nov. 2012 à 11:20
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
Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
27 nov. 2012 à 11:26
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
christophe66
27 nov. 2012 à 11:34
Toujours pas...
Les données se collent sur la première ligne et ne complètent pas l'historique ligne après ligne.
0
Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
27 nov. 2012 à 15:42
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 27/11/2012 à 15:56
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
christophe66
27 nov. 2012 à 16:41
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