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

Microsoft 365 Remplir une cellule avec la date du jour uniquement si celle-ci est vide et si la première cellule de la ligne contient quelque chose

Kingrise

XLDnaute Nouveau
Bonjour,

J'ai essayé avec le code VBA ci-après mais je n'arrive pas à obtenir le résultat que je recherche... En effet ce code affiche bien la date dans la cellule mais uniquement si je supprime premièrement le contenu de la cellule (même si elle est vide). De plus, une fois la date du jour entrée, je dois supprimer au minimum deux cellules pour en effacer le contenu...

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
DerniereLigne = Range("B2").End(xlDown).Row
If Not Intersect(Range("G2:G" & DerniereLigne), Target) Is Nothing And Target.Count = 1 Then
  If Target.Value = "" Then Target.Value = Now
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

Bref, ne connaissant pas assez VBA, pourrait-on me mettre sur la piste...

Ex :

En "B2", si une donnée existe, placer la date du jour en "G2", uniquement si "G2" est vide.

Toute aide sera la bienvenue

Merci d'avance.
 

ThierryP

XLDnaute Occasionnel
Bonjour,

Ceci devrait le faire :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim DerLig As Long
DerLig = Range("B" & Cells.Rows.Count).End(xlUp).Row
If Not Intersect(Range("B1:B" & DerLig), Target) Is Nothing And Not IsEmpty(Target) Then
    If IsEmpty(Range("G" & Target.Row)) Then
        Application.EnableEvents = False
        Range("G" & Target.Row) = Date
        Application.EnableEvents = True
    End If
End If
End Sub

Cette macro se déclenche à la saisie dans la colonne B et écrit la date en cellule G, sur la même ligne.
 

ThierryP

XLDnaute Occasionnel
Je vais répondre à ta question par une question.....
Si dans ta cellule B, tu as une formule, même si la valeur affichée change (en fonction du calcul de ta formule), la macro évènementielle ne se lancera pas (changement passif), donc :
Quel est l'évènement qui doit déclencher la macro ? A quel endroit entres-tu une valeur qui influe sur la formule ?
Bon, OK, ça fait deux questions !!!
 

Kingrise

XLDnaute Nouveau
Oui, je comprends bien ta (tes) questions... Et en effet, je n'ai eu qu'à modifier les valeurs "B1:B" en "C1:C" (Ce sont ces valeurs qui modifient la formule en "B2:B". Cela fonctionne parfaitement selon les attentes... J'attendais ta réponse pour voir si tu avais un autre lapin à sortir de ton chapeau de magicien.

Un Grand merci pour la solution !
 

Discussions similaires

Réponses
3
Affichages
181
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…