Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1026 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] Valeur & Index des CheckBox (OLEObjects)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Valeur & Index des CheckBox (OLEObjects)

n°1227743
Orocher
Posté le 21-10-2005 à 10:01:34  profilanswer
 

Salut,   :hello:  
J'utilise des CheckBox sur une feuille Excel et je souhaite connaître les instructions permettant de forcer une valeur dans une checkBox ou bien de tester sa valeur.
Mes CheckBox s'appelle "CheckBox1", "CheckBox2", etc... mais j'ai eu beau essayé les instructions suivantes mais sans résultat:
   
     -  If CheckBox1.Value = True Then
            CheckBox2.Value = False
            CheckBox3.Value = False
            CheckBox4.Value = False
        End If
 
      - ActiveSheet.Shapes("CheckBox1" ).Value = True
 
Mais lorsque j'exécute j'ai des messages d'erreurs du type: "Objet requis" ou "Propriété ou méthode non gérée par cet objet"  :fou:  
 
C'est bien sur du VBA que j'utilise (Excel 2003), avez vous des suggestions d'instructions?  :??:


Message édité par Orocher le 24-10-2005 à 14:38:51

---------------
Tout vient à point à qui sait se détendre
mood
Publicité
Posté le 21-10-2005 à 10:01:34  profilanswer
 

n°1227817
Orocher
Posté le 21-10-2005 à 10:54:30  profilanswer
 

Je comprends pas très bien d'où vient mon erreur parce qu'en parcourant quelques sites & forums, je retrouve bien des instructions comme celles ci: (copier/coller à partir du forum)

Citation :

If CheckBox9.Value = True Then
Cells(3, 5) = "OUI"
Else
Cells(3, 5) = "NON"
End If


Je me dis alors que mon problème viens peut être lors de la création des checkbox et qu'après la création il ne reconnais pas les instructions "ChekBox1.Value = True"
Pour créer mes CheckBox j'ai utilisé ce code:

Citation :

Do While Cells(i, 1).Value <> ""
          Worksheets("Dictionary" ).Activate
          Cells(i, 4).Select
          t = ActiveCell.Top
          l = ActiveCell.Left
          ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
               DisplayAsIcon:=False, Left:=l + 43, Top:=t + 2, Width:=12, Height:=11 _
               ).Select

          i = i + 1
     Loop


 
Après la fin de cette partie de code j'ai bien des CheckBox de créées ayant pour nom CheckBox1, CheckBox2, CheckBox3, etc...
Vous voyez d'où viens mon erreur?   :pt1cable:  :pt1cable:  :pt1cable:  
Parce que moi je nage complet dans la semoule  [:nul_olive] [:rm -rf]


---------------
Tout vient à point à qui sait se détendre
n°1228022
Profil sup​primé
Posté le 21-10-2005 à 13:58:12  answer
 

-  If CheckBox1.Value = 1Then  
            CheckBox2.Value = 0
            CheckBox3.Value = 0
            CheckBox4.Value = 0
    End If  
 
 - ActiveSheet.CheckBox1.Value = 1
 
Les valeurs :
0 - décoché
1 - coché
2 - Desactivé

n°1228137
Orocher
Posté le 21-10-2005 à 15:33:27  profilanswer
 

Merci ça marche! Mais seulement avec l'instruction:
ActiveSheet.CheckBox1.Value = ...
   True -> Coché
   False -> Décoché
   Null -> Désactivé     (Grisé & coché)
 
Les chiffres j'ai pas l'impression que ça marche.
 
J'ai une autre question à présent. Je veux effectuer un test des CheckBox l'un à la suite de l'autre un peu comme ça:

Citation :

For i = 1 To loop_number
     
        If ActiveSheet.CheckBox1.Value = 0 Then
            Label = Cells(i + 4, 1).Value
            default_value = Cells(i + 4, 5).Value
            Call Remplissage_entrée(Label, default_value)
            Worksheets("Dictionary" ).Activate
        End If
         
        iR = iR + 1
        Cells(iR, iC).Select
                 
    Next i

Mais à la place de "CheckBox1" je voudrais mettre quelque chose du style "CheckBoxi" "i" étant la variable d'incrémentation de la boucle. En gros comment gérer les index des CheckBox?
Vous avez une idée?  :??:  Plusieurs???  :D


---------------
Tout vient à point à qui sait se détendre
n°1228205
tunisiano8
Murphy is back
Posté le 21-10-2005 à 16:26:08  profilanswer
 

essaie avec  "checkbox" & i

n°1228227
mareek
Et de 3 \o/
Posté le 21-10-2005 à 16:47:45  profilanswer
 

Il y a 3 valeur pour un checkbox en VB:
vbChecked
vbUnChecked
vbGrayed


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°1228255
Orocher
Posté le 21-10-2005 à 17:09:09  profilanswer
 

tunisiano8 a écrit :

essaie avec  "checkbox" & i


Marche pô  :(  
J'ai essayé ça:  
If ActiveSheet."checkbox" & i.Value = True Then
L'erreur me dis "Erreur de compilation:   Attendu: identificateur ou expression entre crochets
 
J'avais déjà essayé des choses du même style mais sans succès. Je ne désespère pas trouver un jour   ;)  
 
Mais si vous avez d'autres idées n'hésitez surtout pas... J'suis preneur  :D


---------------
Tout vient à point à qui sait se détendre
n°1229376
Orocher
Posté le 24-10-2005 à 10:27:50  profilanswer
 

Je n'arrive toujours pas à changer l'index des CheckBox dans une boucle. Pensez vous qu'il y a une solution? Y'a t'il un moyen de contourner ce problème?  :heink:


---------------
Tout vient à point à qui sait se détendre
n°1229631
watashi
La démotivation : JAMAIS !
Posté le 24-10-2005 à 14:17:34  profilanswer
 

Salut orocher,
 
D'abord petite question, si tu ne veux qu'un choix possible pourquoi n'utilises tu pas les optionbuttons, il sont d'entrée de jeux "programés" pour ne permettre qu'un choix (un seul choix sur chaque feuille) ?
le code pour les mettre en place est quasiment identique :

Code :
  1. ActiveSheet.OLEObjects.Add(classtype:="Forms.OptionButton.1", Link:=False, _
  2.                DisplayAsIcon:=False, Left:=l + 43, Top:=t + 2, Width:=12, Height:=11). _
  3.                Select


ton test sur les "value" il doit pour fonctioner passer par la méthode object de l'oleobject :

Code :
  1. MsgBox(ActiveSheet.OLEObjects(i).Object.Value)

et là tu peux incrémenter tes objects par i et les valeur renvoyées sont bien true ou false.
Ta boucle sur le test donnes au peu près ça :

Code :
  1. Sub test()
  2. Dim i, label, default_value
  3.      i = 1
  4.      For i = 1 To ActiveSheet.OLEObjects.Count
  5.         If ActiveSheet.OLEObjects(i).Object.Value = True Then
  6.             label = Cells(i + 4, 1).Value
  7.             default_value = Cells(i + 4, 5).Value
  8.             MsgBox ("i : " & i & "     /   label :" & label & "     /     dv :" & default_value)
  9.         End If
  10.      Next
  11. End Sub


(j'ai mis une msgbox pour le résultat car je n'ai pas la fonction que tu appelles)
Si tu tiens a utiliser des checkbox plutôt que des optionbuttons ça marche de la même manière.
bon courage


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1229653
Orocher
Posté le 24-10-2005 à 14:37:39  profilanswer
 

Je te remercie WaTaShi, ça marche o poil!!!  ;)   :D  
 
Par contre comme chaque OLEObjects peux être coché ou non (plusieurs choix) je dois bel et bien utiliser des CheckBox.  
 
Encore une fois merci parce que je n'aurais jamais trouvé ça tout seul.  
 
 :hello:


---------------
Tout vient à point à qui sait se détendre
mood
Publicité
Posté le 24-10-2005 à 14:37:39  profilanswer
 

n°1229659
watashi
La démotivation : JAMAIS !
Posté le 24-10-2005 à 14:40:31  profilanswer
 

de rien :):D


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] Valeur & Index des CheckBox (OLEObjects)

 

Sujets relatifs
[Résolu][SQL] Convertion de valeurs dans une requete SQL[Résolu] Insertion de CheckBox automatique
[résolu] erreur javascript sous IE (FireFox et Opera ok)pb résolu: utiliser un modéle pour faire plusieurs copies
(RESOLU) : Comment ajouter un message d'erreur?Z-index et objet flash [Résolu]
Résolu : Recherche des doublons dans la base.Problème avec renvoi de la valeur.
(résolu) Boucle For each sur textbox dans userform 
Plus de sujets relatifs à : [Résolu] Valeur & Index des CheckBox (OLEObjects)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR