problème de cellule à cocher
#1
Aspirant XLPages

Inscription: 05/12/2008

Messages: 36

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 06-06-2009 19h39
salut le forum
salut tout le monde

j'ai voulu modifier le systéme qui permet de cocher des cellules que j'ai trouvé sur ce forum afin qu'il réponde à mes besoins; j'ai eu 2 problèmes :

1) j'ai copié la colonne B sur la colonne  K mais le système ne fonctionne pas ( les cellules ne veulent pas être cocher)

2) je veux que le compteur s'arrête à la ligne où on a coché soit la cellule correspondant à la colonne " Présent ( B) " soit la colonne " la TO (K) "

 l'exemple ci-joint illustre le problème

merci d'avance pour votre aide

Pièce jointe:
xls exemple.xls   [ Taille: 37.00 Ko - Téléchargements: 581 ]
Hors Ligne
Rapport   Haut 

Re: problème de cellule à cocher
#2
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 06-06-2009 22h09
Bonsoir Inspecteur

Je ne sais pas si j'ai bien compris ce que tu voulais faire.

J'ai compris que tu voulais rajouter la fonctionnalité de la colonne B à la colonne K.

Change le code de la gestion du double clic.
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 ete definie de maniere dynamique a l'aide de la fonction suivante :
' =DECALER(Feuil1!$B$2;;;NBVAL(Feuil1!$A:$A)-1)
'Voir le menu Insertion - Nom - Definir
If Not (Intersect(Target, Range("bd_present")) Is Nothing) Or Not (Intersect(Target, Range("bd_present").Offset(0, 9)) Is Nothing) Then
    'Mise en forme de la cellule
    Target.Font.Name = "Wingdings"
    Target.HorizontalAlignment = xlCenter
    'Empeche la selection de la cellule apres le double-clic
    Cancel = True
    'Teste de la valeur de la cellule et inverse la case a cocher
    Range("B" & Target.Row).Value = inverse(Range("B" & Target.Row))
    Range("K" & Target.Row).Value = inverse(Range("K" & Target.Row))
End If
End Sub

J'espère que Didier va passer part là, pour améliorer la modification appliquée à ton code (je ne suis pas un "pro" du VBA)

@+Jean-Marie
Hors Ligne
Rapport   Haut 

Re: problème de cellule à cocher
#3
Aspirant XLPages

Inscription: 05/12/2008

Messages: 36

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 06-06-2009 23h13
re
salut jeanmarie pour la rapidité de ta réponse

mais je ne comprend rien en vba et comme j'ai dis , le document de base je l'ai télécharger à partire de ce forum
bref
je n'ai pas trouvé le code de la gestion du double clic pour le changer avec le nouveau code

j'ai trouvé :
inverse
inverse_bd
inverser _selection
ne_rien_cocher
tout_cocher

merci encore

Hors Ligne
Rapport   Haut 

Re: problème de cellule à cocher
#4
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 07-06-2009 01h13
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,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: problème de cellule à cocher
#5
Aspirant XLPages

Inscription: 05/12/2008

Messages: 36

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 07-06-2009 01h45
bonsoir MDF ; JeanMarie et le forum

merci MDF et JeanMarie pour votre explication et votre aide ;

cela a permis enfin de résoudre mon premier problème et je peut maintenant cocher les cellules de la colonne K

est ce que il ya une solution pour mon deuxième problème ( celui de faire arrêter le compteur de la ligne(colonne G et H) une fois la cellule correspondante en B ou K est coché ; j'ai utilisé la formule datedif entre  aujourd'hui() et la date où l'opération a été déclanché  );

merci et bonne nuit ;
Hors Ligne
Rapport   Haut 

Re: problème de cellule à cocher
#6
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 07-06-2009 01h54
Re,

Merci de lire (voir de tester) ce que j'ai écrit plus haut :
Citation :
myDearFriend! a écrit :
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 ça ne correspond pas à ce que tu souhaites... alors explique en détail ce que tu souhaites.
On peut tout faire (ou presque) avec des macros, mais les macros ne font que reproduire ce que tu ferais manuellement. Si on ne comprend pas ce que tu fais manuellement, on ne peut créer la macro... ce n'est pas plus compliqué que ça.

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: problème de cellule à cocher
#7
Aspirant XLPages

Inscription: 05/12/2008

Messages: 36

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 07-06-2009 11h07
bonjour le forum ; bonjour MDF

c'est vrai si la case est coché ( en B ou en K ) en colonne F on insère la date du jour  "en dur"  mais comment ceci se fait automatiquement ; je crois que la case de la colonne F " =aujourdhui() " doit être modifié automatiquement chaque fois que la case B et K est coché pour que le compteur en G et H s'arrête

merci et bon journée
Hors Ligne
Rapport   Haut 

Re: problème de cellule à cocher
#8
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 07-06-2009 13h44
Bonjour inspecteur, le Forum,

Citation :
inspecteur a écrit : bonjour le forum ; bonjour MDF

c'est vrai si la case est coché ( en B ou en K ) en colonne F on insère la date du jour  "en dur"  mais comment ceci se fait automatiquement ; je crois que la case de la colonne F " =aujourdhui() " doit être modifié automatiquement chaque fois que la case B et K est coché pour que le compteur en G et H s'arrête

merci et bon journée

C'est une plaisanterie inspecteur ?

As-tu au moins pris la peine de tester le code que je te propose plus haut ?

Cordialement,


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: problème de cellule à cocher
#9
Aspirant XLPages

Inscription: 05/12/2008

Messages: 36

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 08-06-2009 21h34
salut le forum
salut mdf

oui ; vous avez raison ; j'ai modifié "=aujourdhui" en anglais et le système fonctionne parfaitement

merci beaucoup de ton aide et de ta patience , c'est très gentille

bonne nuit
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes