Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

modif de cellule

  • Initiateur de la discussion Lord Nelson
  • Date de début
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é.
 
A

andré

Guest
Encore une petite remarque :

Il est gênant que la macro s'applique sur toute la feuille, donc aussi sur les lignes des en-têtes de colonnes et des totaux, et écrase ceux-ci !

Â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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…