XL 2016 Insertion date sous condition

planetgath

XLDnaute Nouveau
Bonjour,

Je travaille sur un tableau dynamique sous Excel.
Je souhaite que les cellules de la colonne "date du jour" soient remplies automatiquement si les cellules de la colonne "Autorisation" ont la valeur "OUI". Merci de votre aide.

Merci de votre aide.



Configuration: Windows / Internet Explorer 11.0
Afficher la suite
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Planetgath, JHA,
Un essai en PJ avec une macro événementielle :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("E1:E1000")) Is Nothing Then     ' Adapter la zone active
        If LCase(Target) = "oui" Then Cells(Target.Row, "A") = Date ' Adapter la colonne où se trouve la date
    End If
Fin:
End Sub

Je ne vois pas comment insérer par formule la date d'aujourd'hui en dur sans que sa valeur ne change demain, donc une macro me semble plus pertinente pour insérer une valeur.
 

Pièces jointes

  • Planetgath.xlsm
    14.6 KB · Affichages: 17

planetgath

XLDnaute Nouveau
Bonjour,

Merci de votre retour. Comme je ne connais pas VBA, j'arrive pas à adapter ton code ou à l'exécuter. En se vasant sur le tableau ci-joint, quel serait le code et comment l'exécuter par quelle commande stp?

Merci d'avance.
 

Pièces jointes

  • TEST.xlsm
    15.7 KB · Affichages: 5

soan

XLDnaute Barbatruc
Inactif
Bonjour planetgath, le fil,

bonne année 2021, et bienvenue sur le site XLD ! 🥳

ton fichier en retour. :)




j'ai un peu modifié la sub Macro3() de ton Module1 :

VB:
Sub Macro3()
  Application.ScreenUpdating = 0
  [D1].Select: Columns("A:D").AutoFit
  With Worksheets("Feuil1").ListObjects("Tableau1")
    If Not .DataBodyRange Is Nothing Then _
      Rows(2).Resize(.ListRows.Count).AutoFit
  End With
End Sub



à propos de ta demande, le code VBA correspondant
est dans le module de Feuil1 :


Code:
Option Explicit: Option Compare Text

Private Sub Worksheet_Change(ByVal Target As Range)
  With Target
    If .CountLarge > 1 Then Exit Sub
    If .Column <> 3 Then Exit Sub
    If .Row <> 1 Then .Offset(, 1) = _
      IIf(.Value = "OUI", Date, Empty)
  End With
End Sub

dans ton vrai fichier, attention à ne pas oublier
de mettre :
Option Compare Text

je te laisse faire des essais : tu pourras voir que si tu mets "OUI"
ou "oui" la date du jour sera bien mise à droite.

si tu mets autre chose, ou si tu supprimes "OUI" par appui sur
la touche Suppression, la date sera effacée.

si besoin, tu peux demander une adaptation.
à te lire pour avoir ton avis. ;)


soan
 

Pièces jointes

  • TEST.xlsm
    19.4 KB · Affichages: 4

Statistiques des forums

Discussions
312 361
Messages
2 087 616
Membres
103 607
dernier inscrit
lolo1970