Rapport de message :*
 

Re: problème de cellule à cocher

Titre du sujet : Re: problème de cellule à cocher
par myDearFriend! le 07/06/2009 01:13:28

Bonsoir inspecteur, JeanMarie, le Forum,

Le code que te présente JeanMarie ne se trouve pas dans le module de code Module1 de ton classeur.
Worksheet_BeforeDoubleClick() est une procédure dite évènementielle, elle appartient au module de code de la Feuil1. Pour y accéder, depuis l'éditeur VBE, dans l'arborescence de ton projet, tu double-cliques sur l'élément Feuil1 (Cases à cocher).

Le code de l'ami JeanMarie est tout à fait fonctionnel (si je me débrouillais en formules aussi bien qu'il se débrouille en VBA, je serais moins jaloux ). Cela dit, j'ai interprété un peu différemment ta demande et propose cette version là (en remplacement de celle existante dans ton classeur) :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Teste si la cellule ayant recu un double-clic fait partie de la plage bd_present
'Cette plage a été définie de manière dynamique à l'aide de la fonction suivante :
' =DECALER(Feuil1!$B$2;;;NBVAL(Feuil1!$A:$A)-1)
'Voir le menu Insertion - Nom - Définir
    If Not (Intersect(Target, Union(Range("bd_present"), Range("bd_present").Offset(0, 9))) Is Nothing) Then
        With Target
            'Mise en forme de la cellule
            .Font.Name = "Wingdings"
            .HorizontalAlignment = xlCenter
            'Empêche la sélection de la cellule après le double-clic
            Cancel = True
            'Teste de la valeur de la cellule et inverse la case à cocher
            .Value = inverse(.Value)
            'Arrête le compteur
            .EntireRow.Range("F1").Formula = IIf(.Value = "o", "=TODAY()", Date)
        End With
    End If
End Sub
Si une case est cochée (en B ou en K), en colonne F on insère la date du jour "en dur" (ce qui arrêtera le compteur si j'ai bien compris la demande). Dans le cas contraire, on insère la formule "=AUJOURDHUI()" (en anglais, car la propriété Formula demande qu'on lui parle anglo-saxon).

Si tu as besoin d'explications, n'hésite pas à demander point par point. Faire appel à du VBA dans tes projets, si tu n'y connais rien et que tu n'en comprends pas le principe, ça n'a aucun intérêt et ça ne me parait pas franchement une bonne idée pour la suite...

Cordialement,