Macro simple pour archiver des resultats

Bonjour,

Dans ma feuille "Calc", j'ai construit une petite calculatrice excel: j'entre en B7 et B10 des nombres et toute une serie de calculs s'effectuent automatiquement. J'obtiens mes resultats dans de nombreuses cellules de cette feuille.

Je voudrais créer un bouton qui effectue l'action suivante lorsque je clique dessus:

Copier les valeurs des cellules B7, B10, E16 et D18 de la feuille "Calc" et les coller sur la première ligne de la feuille "Archive" avec l'heure et la date à laquelle j'ai cliqué sur le bouton dans la première cellule à gauche.

Lorsque je clique à nouveau sur le bouton, le copier/coller s'effectue à nouveau mais une ligne plus bas.

Comment faire?

Merci d'avance pour votre aide!

PS: je ne peux pas joindre mon classeur car il est beaucoup trop lourd et si j'enlève certaines données plus rien ne marchera...

Bonjour,

Une proposition

Sub Test()
Dim WsS As Worksheet
Dim LigneAjout As Long
    Set WsS = Worksheets("Calc")
    With Worksheets("Archive")
        If .Range("A1") <> "" Then
            LigneAjout = .Range("A" & Rows.Count).End(xlUp).Row + 1
        Else
            LigneAjout = 1
        End If
        .Cells(LigneAjout, 1) = Format(Now, "dd/mm/yyyy hh:mm")
        .Cells(LigneAjout, 1).NumberFormat = "dd/mm/yyyy hh:mm"
        .Cells(LigneAjout, 2) = WsS.Range("B7")
        .Cells(LigneAjout, 3) = WsS.Range("B10")
        .Cells(LigneAjout, 4) = WsS.Range("E16")
        .Cells(LigneAjout, 5) = WsS.Range("D18")
    End With
End Sub

A+

Impeccable, ça marche super, merci beaucoup frangy !

J'ai un petit souci avec cette macro dont je me sers en permanence (je remercie à nouveau Frangy au passage): lorsque je la lance elle mets très longtemps à s'executer, d'autant que j'ai rajouté pas mal de cellules à copier. Je suis à chaque fois obligé de désactiver le calcul automatique et là la macro s'execute parfaitement en 1s.

Comment faire pour que la macro desactive automatiquement le calcul automatique avant de s'executer et le réactive à la fin?

Ah et puis une autre petite question tant que j'y suis: j'aimerais bien transformer la plage qui accueil les résulats de ma feuille "Archive" en un tableau de manière à pouvoir trier mes résultats facilement, etc... Seulement quand je transforme la plage en tableau les résultats que j'archive par la suite n'entrent pas dans le tableau mais en dessous... Comment faire pour que les résultats s'inscrivent à l'intérieur du tableau à la suite des autres résultats?

Merci d'avance pour votre aide!

Bonjour,

Pour passer en mode de calcul manuel, il suffit de rajouter en début de procédure :

Application.Calculation = xlCalculationManual

Bien sûr, il ne faut pas oublier de rétablir le mode automatique en fin de procédure :

Application.Calculation = xlCalculationAutomatic

De mon coté, je n'ai pas constaté de problème particulier lorsque la plage est convertie en tableau

147classeur1.xlsm (17.78 Ko)

A+

Super, merci milles fois pour ton aide (rapide en plus)!

Par contre, je viens de reessayer et ca rempli bien la ligne qui est sous le tableau chez moi. J'ai defini mon tableau de la ligne 1 à 500 en cochant "mon tableau a des en-têtes" et quand j'execute la macro c'est la ligne 501 qui se rempli bien que les lignes 90 à 500 soit totalement vides...

En bidouillant je viens de trouver une solution: j'ai defini mon tableau jusqu'à la dernière ligne remplie (90) et quand j'execute la macro ça rempli la bonne ligne (91) et ca ajoute automatiquement une ligne au tableau, donc ca fait l'affaire.

Rechercher des sujets similaires à "macro simple archiver resultats"