Optiobutton

TE33 Messages postés 15 Date d'inscription vendredi 8 décembre 2006 Statut Membre Dernière intervention 11 octobre 2010 - 25 sept. 2009 à 19:24
TE33 Messages postés 15 Date d'inscription vendredi 8 décembre 2006 Statut Membre Dernière intervention 11 octobre 2010 - 6 oct. 2009 à 08:58
Bonjour à tous,

Débutant en VB6 je vous pose ma question.
J'ai plusieurs optionbutton dans ma form (P371(1),P371(2).....)
dans la suite du programme en cliquant avec la souris sur une ligne de ma listview Je reussi à recupérer le nom de mon Optionbutton
(exemple P371(2) ) mais dans un variable string TOTO et je veux executer la commande TOTO.value = true mais ca ne marche pas(il faut absolument P371(2) à la place de TOTO).
Si je ne suis pas clair je re-expliqueré
Cordialement.

TE33

14 réponses

NHenry Messages postés 15114 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 4 mai 2024 159
26 sept. 2009 à 21:48
Bonjour,

Tu peux utiliser une variable pour la form qui sera déclarée de cette manière :
Private mOptBtn as OptionButton

Ensuite quand tu veux pointer dessus :
mOtpBtn.Value= ...

Pour l'assignation :
set mOptBtn=P371(2)

Ca fonctionne aussi pour le passage en paramètre.

Mon site
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
26 sept. 2009 à 22:02
Bonjour,

fdans un control arry, le nom est le même pour tous les contrôles du même array. Seul l'index identifie le contrpole concerné du groupe de contrôles indexé.
AZlors ?
Soit toto cet index
Extrait donc toto (en le transformant en intteger) de ta chaîne de type P371(x). toto est le x
Tu peux dès lors te référer au contrpole concerné (P371(toto))
0
NHenry Messages postés 15114 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 4 mai 2024 159
26 sept. 2009 à 22:16
Bonjour,

D'après la question, j'ai pensé plutôt qu'il y avait plusieurs groupes de contrôles, d'où ma suggestion.

Si c'est le cas, ma proposition sera peut être plus simple à mettre en œuvre, mais si il y a un seul groupe de contrôle, la proposition de jmf0 est plus judicieuse.

Mon site
0
TE33 Messages postés 15 Date d'inscription vendredi 8 décembre 2006 Statut Membre Dernière intervention 11 octobre 2010
27 sept. 2009 à 09:56
Bonjour à tous,

en fait Nhenri et dans le vraie mais j'ai toujours mon probleme de string vers Object..
C'est a dire que je recupere l'info dans une variable Variable = "P371(2)"
et mon soucis et que la comande suivante (message d'erreur: un objet est requi)
Set mOptBtn = Variable

Je ne sais pas si l'opération est possible?

TE33
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15114 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 4 mai 2024 159
27 sept. 2009 à 11:58
Bonjour,

Quand je sis que :
Set mOptBtn = Variable
Il est sous entendu que Variable est l'objet en question et non son nom.

Pour récupérer à partir de son nom, regarde dans la collection "Controls" de ta form.

Mon site
0
TE33 Messages postés 15 Date d'inscription vendredi 8 décembre 2006 Statut Membre Dernière intervention 11 octobre 2010
27 sept. 2009 à 12:18
Je ne comprend pas ce que tu me dit.
en fait comme j'ai 50 optionbutton , apres une opération avec la souris je récupere dans une variable le nom de l'optionbutton (mais en string).maintenant il faut que j'arrive a passer la value en true de l'optionbutton en question..

c'est que je n'ai pas beaucoup pratiqué en VB
TE33
0
NHenry Messages postés 15114 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 4 mai 2024 159
27 sept. 2009 à 12:31
Bonjour,

Comment tu récupère le nom du contrôle ?

Mon site
0
TE33 Messages postés 15 Date d'inscription vendredi 8 décembre 2006 Statut Membre Dernière intervention 11 octobre 2010
27 sept. 2009 à 12:38
En fait
via une feuille excel je recupere le nom avec la commande
connecteur=wsexcel.cells(i,5).value
apres dans connecteur j'ai la chaine de caractere "P371(1)"
et la probleme.....

TE33
0
NHenry Messages postés 15114 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 4 mai 2024 159
27 sept. 2009 à 12:56
Bonjour,

Tu code en VB6 ou VBA ? (la mention Excel me mets le doute)

Si c'est VB6 :
private function GetCtrlByName(byval pName as string, byref pFrm as form) as Object
    Dim lCtrlName as string
    Dim lCtrlIndex as long
    Dim lCtrl as object

    If instr(pName,"(")<>0 then
        lCtrlName =split(pName,"(")(0)
        lCtrlIndex =val(replace(split(pName,"(")(1),")","")))
    else
        lCtrlName =pName
        lCtrlIndex =-1
    End if

    for each lCtrl in pFrm.Controls
        if lctrl.name=lctrlName then
            if lCtrl.index=lctrlIndex or lctrlIndex =-1 then
                set GetCtrlByName=lCtrl
                Exit Function
            end if
        end if
    next
    
    set GetCtrlByName=Nothing
End function


Code tapé rapidement et non testé, mais ça devrait fonctionner.

Mon site
0
TE33 Messages postés 15 Date d'inscription vendredi 8 décembre 2006 Statut Membre Dernière intervention 11 octobre 2010
27 sept. 2009 à 13:11
OK!! laisse moi du temps pour digerer ton code...

TE33
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
27 sept. 2009 à 18:09
Re...

Je ferais volontiers l'économie d'un split :

toto = "P371(1)"
  nomobj = toto
  pos = InStr(toto, "(")
  If pos Then
    indexobj = Val(Mid(toto, pos + 1))
    nomobj = Left(toto, pos - 1)
  End If
  MsgBox nomobj & vbCrLf & indexobj


Ceci étant dit, je suis également pour le moins troublé par l'intervention d'Excel dans cette affaire-là
0
TE33 Messages postés 15 Date d'inscription vendredi 8 décembre 2006 Statut Membre Dernière intervention 11 octobre 2010
28 sept. 2009 à 08:41
Bonjour,

Excusez moi les gas mais j'ai rien compris....

cordialement.
TE33
0
TE33 Messages postés 15 Date d'inscription vendredi 8 décembre 2006 Statut Membre Dernière intervention 11 octobre 2010
28 sept. 2009 à 12:07
Ok,je viens de comprendre le code de jmfo.
Ok pour trouver l'index ca marche.
Pour l'intervention de excel,c'est a dire que j'ai un fichier excel avec tous mes connecteurs et mes designations dedans donc je récupere mon connecteur avec ma broche via excel...
y a t'il un moyen de chercher le numéro du connecteur comme l'index (nomobj)car j'ai differents nom de connecteurs
P371(1)....
P501(2)...
c'est a dire PNum(indexobj).value=true

TE33
0
TE33 Messages postés 15 Date d'inscription vendredi 8 décembre 2006 Statut Membre Dernière intervention 11 octobre 2010
6 oct. 2009 à 08:58
Bonjour,

Voila j'ai fini mon Programme.
Je vous remercie tous pour m'avoir aidé sur ce sujet.
Ce site est super....
Cordialement.

TE33
0
Rejoignez-nous