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
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.
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?
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.