Décallage d'une ligne chaque jour avec copier-coller =aujourdhui()

S

Scalpa

Guest
Bonjour à tout le monde !

Voilà mon problème :

En A1 j'ai =aujourdhui()
En B1 je tape une somme différente Chaque jour

Et je voudrais que A1:B1 soit copié chaque jour en D et E en descendant d'une ligne par jour, je crois savoir qu'il n'est pas possible de le faire par formule à cause de =aujourdhui() et même en faisant ctrl+; je n'y arrive pas alors j'ai décidé de faire une macro, mais je ne suis pas encore au point j'arrive à copier la 1ere et la 2eme ligne mais quand je veux copier le troisième jour il remplace la 2eme ligne, voici ma macro, SVP qu'est ce qui ne colle pas ?

Sub Copier()
Sheets("Feuil1").Select

'si d1 est vierge, la variable décalage vaut 0, l'entrée des informations débute sur la ligne 1'

If Range("d1").Value = "" Then
décalage = 0
Range("d1").Select

Else
'Si d1 contient une donnée, la variable décalage vaut 1 positionner le curseur sur la dernière cellule remplie

Position = Range("a1").End(xlDown).Address
Range(Position).Select
Range("a1").End(xlDown).Select
décalage = 1
End If

'Mise à jour des colonnes D et E en descendant d'une ligne

Range("A1:B1").Select
Selection.Copy
ActiveCell.Offset(décalage, 0).Range("D1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End Sub

Merci !
@+ Scalpa
 
M

michel_M

Guest
bonjour

ci dessous proposition de macro . (j'ai mis par erreur la somme en A2 au lieu de B1) mais j'utilise "Mon" B1...pour ceci:

A noter: utilisation d'une cellule (B1) pour éviter de saisir une 2) fois le ^m jour

C'est parti...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim n°lig As Long

' limite l'évenement selectionchange à la cellule A2 (texte ou chiffre du jour)
If Intersect(Target, Range("A2")) Is Nothing Then: End
'évite une 2° saisie le ^m jour et empèche le déclenchement de la macro quand on clique sur A2
If Range("B1") = Range("A1") Or Range("A2") = "" Then: End



n°lig = Columns(4).Find("", [D65536], , , xlByRows).Row

' attribue à la cellule située à la la ligne "n°lig" colonne D la valeur de A1
Cells(n°lig, 4) = Range("A1")
' attribue à la cellule située à la la ligne "n°lig" colonne D la valeur de A1
Cells(n°lig, 5) = Range("A2")

'pour empècher une 2° saisie le ^m jour
Range("B1") = Range("A1")
' pour accèder à A2
Range("A2").ClearContents

End Sub

à +
Michel.Béziers
 
S

Scalpa

Guest
Salut Michel !

Merci pour la macro ça marche bien sur un classeur vierge je vais devoir maintenant l'appliquer à mon projet qui est un peu plus compliqué, Je sais pas si tu as vu mon fichier sur le compteur d'étiquettes restantes, c'était un peu pour ça que je posais cette question et en passant par cette macro je pense pouvoir résoudre mon problème enfin j'espère

Merci encore
@+
Scalpa
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 245
Membres
103 498
dernier inscrit
FAHDE