Pb : Macro archivage et date du jour

Fermé
Wazapala - 3 sept. 2014 à 13:52
 wazapala - 4 sept. 2014 à 08:28
Bonjour à toutes et à tous,

J'ai un petit soucis sur mon fichier excel me servant à lister puis archiver mes tâches.

Une macro me permet de sélectionner une ligne depuis un tableau puis de la couper/coller sur une autre feuille appelée "archives".
Cette fonction marche trés bien cependant, j'aimerais que la macro inscrive en même temps la date du jour sur la même ligne, en colonne "E".

J'éspère être asser clair, voici la macro que j'ai réalisé, la partie en gras devrait mettre la date à l'endroit souhaité mais, rien ne se passe !


Private Sub Archiver_Click()
Application.ScreenUpdating = False
Dim derlig As Integer, pos As Integer
'Enlever protection
Worksheets("Archives").Unprotect "arch"
If ActiveCell.Column < 8 Then 'selection colonne A a G
'ligne de selection
pos = ActiveCell.Row
With Worksheets("Archives")
'premiere cellule vide colonne A
derlig = .Range("A" & Rows.Count).End(xlUp).Row + 1
'copie des donnees
Range("A" & pos & ":G" & pos).Copy .Range("A" & derlig)
'premiere cellule vide colonne E
derlig = .Range("E" & Rows.Count).End(xlUp).Row + 1
'Date d'archivage
Range("E" & pos & ":G" & pos).Value = Format(Now, "dd.m.yyyy")

End With
'suppression ligne
Rows(pos).Delete
End If
'Mettre protection
Worksheets("Archives").Protect "arch", True, True, True
Application.ScreenUpdating = True
End Sub


Merci d'avance à ceux qui pourront m'aider et bonne journée :-)

4 réponses

via55 Messages postés 14506 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 27 décembre 2024 2 738
3 sept. 2014 à 14:51
Bonjour

1° le second derlig me semble inutile c'est la même ligne en E qu'en A donc le premier suffit

2° la date ne peut pas etre mise dans une plage E:G et c'est la variable derlig qu'il y a lieu d'utilisier et non pos je présume ?
donc essaie ceci:

Range("E" & derlig).Value = Format(Now, "dd.m.yyyy")

Cdlmnt
1
Bonjour,
Tout d'abord, merci pour vos remarques pertinentes !
Ensuite, pour ce qui est de votre ligne de commande, cela ne marche toujours pas, rien ne s'affiche ...
Cordialement.
0
via55 Messages postés 14506 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 27 décembre 2024 2 738
3 sept. 2014 à 16:04
La ligne fonctionne j'ai vérifié

Par contre il faut soit indiquer la feuille ( et pas besoin du With)
Sheets("Archives").range("E" & derlig).Value = Format(Now, "dd.m.yyyy")

soit pour que With fonctionne bien mettre le . avant range
.range("E" & derlig).Value = Format(Now, "dd.m.yyyy")

Le with est utile pour éviter de répéter le nom de la feuille si beaucoup d'instructions s'appliquent en suivant à la feuille, s'il n'y en a qu'une ou deux on peut s'en passer

Cdlmnt
0
C'est tout bon, avec le point, ça marche parfaitement !!
Merci beaucoup pour votre aide et bonne journée !
Cordialement.
0