modif de cellule

  • Initiateur de la discussion Lord Nelson
  • Date de début
L

Lord Nelson

Guest
Alors à notre bonne santé à tous !
 
A

ancat

Guest
Bonsoir
juste une petite question

J'aimerais que lorsque je modifie une valeur sur la ligne 1 ,il apparaisse la date du jour dans la cellule F1.

Es ce possible, moi je n arrive pas a verifier la modification.

De plus je souhaite l'étendre a toutes mes lignes
modiif ligne 2 date F2
etc

Es ce difficile a faire?

Bye Ancat et merci d'avance
 
L

Lord Nelson

Guest
Salut Ancat,

Voici une procédure événementielle qui devrait répondre à ta préoccupation :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column < 5 Then
Cells(Target.Row, 5) = Date
End If
End Sub

Elle détecte tout changement dans la feuille entre les colonnes A à E et indique la date du jour en F, sur la ligne où le changement est survenu.
Il te suffit de copier/coller ce code dans la partie code de la feuille voulue.
(Alt F11 et double-clic sur Feuil1 par exemple pour faire apparaître la feuille de code).

A+
Horatio
 
L

Lord Nelson

Guest
Re,

Pourquoi pas, essaie ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column < 6 Then
Cells(Target.Row, 6) = Date
Cells(Target.Row, 7) = Time
End If
End Sub

(Tu auras probablement à formater la colonne G en hh:mm:ss)

A+
Horatio
 
A

andré

Guest
Salut Horacio,

Je viens d'essayer ta macro, et j'y suis parvenu, donc elle est très bien (lol).

Peut-être une toute petite amélioration à y apporter : lorsqu'on efface le contenu des 5 cellules, il serait peut-être souhaitable que le contenu (la date) de la 6ième cellule s'efface aussi, à moins que l'utilisateur souhaite conserver la date de l'effacement, ce qui n'est pas mon cas.

Ândré.
 
L

Lord Nelson

Guest
Salut à tous,

André, voici deux adaptations de la macro en réponse à tes remarques :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column < 6 Then
If Target.Row > 3 Then
If Range("A" & Target.Row) & Range("B" & Target.Row) & Range("C" & Target.Row) & Range("D" & Target.Row) & Range("E" & Target.Row) = "" Then
Cells(Target.Row, 6) = ""
Cells(Target.Row, 7) = ""
Else
Cells(Target.Row, 6) = Date
Cells(Target.Row, 7) = Time
End If
End If
End If
End Sub

Elle ne s'applique qu'à partir de la 4ème ligne et efface la date si la ligne est vide.

NB : ça ne marche pas en cas d'effacement de plusieurs lignes à la fois.

A+
Horatio
 

Discussions similaires

Réponses
11
Affichages
665

Statistiques des forums

Discussions
314 210
Messages
2 107 304
Membres
109 798
dernier inscrit
NAJI2005