Problème avec un code de date figée

  • Initiateur de la discussion Initiateur de la discussion Choops
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Choops

XLDnaute Occasionnel
Bonjour à tous,
je viens d’essayer un code qui permet d’inscrire automatiquement dans une cellule la date de modification de cellules d’une colonne.
https://www.excel-downloads.com/threads/date-figee-une-suite-un-peu-sioux.76119/

Le code fonctionne mais j’obtiens une erreur lorsque j’efface une sélection d’un coup (comme par exemple A10:A15) et le débogueur se lance. Il se lance aussi quand je supprime une ligne entière.

- Quel serait le code à ajouter pour étendre l’action de la macro sur des sélections ? et pour éviter le bug quand on efface une ligne entière ?

- Serait-il possible d’avoir un code qui n’indique la date de modif seulement si la nouvelle valeur entrée est différente de l’ancienne ?
Merci d’avance !
 

Pièces jointes

Re : Problème avec un code de date figée

bonjour

Ajoute la ligne en rouge (Sors de la macro s'il y a plus d'une cellule de selectionnée)

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
[COLOR="Red"]    If Target.Cells.Count > 1 Then Exit Sub[/COLOR]
    If Not Intersect(Target, Range("a3:a22")) Is Nothing Then
        If Target.Value > "" Then Range("B" & Target.Row) = Date
    End If
End Sub
 
Re : Problème avec un code de date figée

Hello,

effectivement le code fonctionne désormais pour les sélections mais le problème du bug quand on supprime une ligne est toujours là. J’espère que ça sera possible à résoudre!
 
Re : Problème avec un code de date figée

Bonsoir à tous,


Peut être ainsi:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("a3:a22")) Is Nothing And Target.Columns.Count = 1 Then

Target.Offset(0, 1) = Date
End If

End Sub

Bonne soirée,

Ninbihan
 
Re : Problème avec un code de date figée

Bonjour,

A tester:

Code:
Public flag As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
Dim vali As Variant
If flag = True Then Exit Sub
flag = True
Application.ScreenUpdating = False
If Not Intersect(Target, Range("a3:a22")) Is Nothing And Target.Columns.Count = 1 Then
vali = Target.Value

Application.Undo

    If vali <> Target.Value Then
    Target.Offset(0, 1) = Date
    Target.Value = vali
    End If
End If
Application.ScreenUpdating = True
flag = False
End Sub

Meric à PJ pour le flag

Bonne soirée,

Ninbihan
 
Re : Problème avec un code de date figée

Bonjour,
merci pour le code! Cela fonctionne bien mais par contre le bug qui intervient quand on efface plusieurs cellules d'un coup est revenu. Le débogueur indique un problème à partir de cette ligne là:
If vali <> Target.Value Then

Merci !
 
Re : Problème avec un code de date figée

Re,


A retester:
Code:
Public flag As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
Dim vali As Variant
If flag = True Then Exit Sub
flag = True
Application.ScreenUpdating = False
If Not Intersect(Target, Range("a3:a22")) Is Nothing And Target.cells.count=1 Then
vali = Target.Value

Application.Undo

    If vali <> Target.Value Then
    Target.Offset(0, 1) = Date
    Target.Value = vali
    End If
End If
Application.ScreenUpdating = True
flag = False
End Sub

Bonne soirée,

Ninbihan
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

R
Réponses
2
Affichages
883
robby98800
R
C
Réponses
2
Affichages
997
Crack1986
C
D
Réponses
0
Affichages
1 K
D
P
Réponses
6
Affichages
1 K
Pedro
P
Retour