XL 2016 Date automatique

  • Initiateur de la discussion Initiateur de la discussion JOUB42
  • 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 !

JOUB42

XLDnaute Occasionnel
bonjour a tous
Je voudrais mettre une date automatiquement
dans ma colonne A 20 une fois que je saisis un nom dans la cellule F20
j'ai recopié cette formule ci dessous
mais j ai un message d'erreur d'execution (13) quand j efface sur ma cellule F20

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("F20:F110")) Is Nothing Then
Target.Offset(0, -5).Value = Now
If Target.Value = "" Then Target.Offset(0, -5).Value = ""
End If
End Sub

merci pour votre aide
JOUB42
 
bonjour
c'est normal que tu est une erreur
tu change la "FXX" ca déclenche l'events change et ça change la "AXX"

donc
quand ca change le "AXX" tu re déclenche l’événement
conclusion l'événement change sur target "AXX".offset(,-5) déclenche une erreur car il n'y a plus rien a gauche de "A" 😉

conclusion il te faut gérer l'events

voici donc deux propositions
un change la A en face la F
l'autre si un changement venait a etre operer sur plus de 1 cellule en f20:f110 ca opererait sur toute les cellules d'en face en A

code 1 cellule

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("F20:F110")) Is Nothing And Target.Count = 1 Then
        Application.EnableEvents = False
          Target.Offset(, -5).Value = Array(Date, "")(Abs(Target.Value = ""))
        Application.EnableEvents = True
    End If
End Sub
code multi cellules
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("F20:F110")) Is Nothing Then
      Application.EnableEvents = False
       For Each cel In Target.Cells
            cel.Offset(, -5).Value = Array(Date, "")(Abs(cel.Value = ""))
       next
Application.EnableEvents = True
  End If
End Sub
voila 😉
 
Dernière édition:
re
c'est que quelque chose déraille chez toi
demo4.gif
 
a ben oui si tu a des fusions en terme de ligne dans "F" LA bonne blague !!!
on base l'action sur le target.count=1 si tu a des fusions ben walouh!!!
il faut bricoler
un peu comme ceci
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim CelA As Range, CelF As Range
    If Not Application.Intersect(Target, Range("F20:F110")) Is Nothing Then
        Set CelF = Target.Areas(1).Cells(1)
        Set CelA = CelF.Offset(, -5)
         Application.EnableEvents = False
          CelA.Value = Array(Date, "")(Abs(CelF.Value = ""))
        Application.EnableEvents = True
    End If
End Sub
😉
 
- 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éponses
9
Affichages
404
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
4
Affichages
581
Réponses
2
Affichages
332
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
267
Réponses
5
Affichages
707
Retour