Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

repérer un OptionButton

  • Initiateur de la discussion Ch'ti160
  • Date de début
C

Ch'ti160

Guest
Bonjour le "FORUM"
j'ai dans un frame1 plusieur optionButton (8) j'aimerai savoir comment en VBA récupérer le nom du bouton qui a le focus dans ce Frame1
Merci d'avance
A+++
jean Marie
Ps je pars au boulot donc Speed
 
V

valou

Guest
Bonjour,

Très loin d'etre une spécialiste, je te propose ce bout de code mais à mon avis les experts d'ici vont trouver mieux...

'variable
Dim ctrl As Control

For Each ctrl In usr.Controls 'on parcours tous les ctrl du usr
'on verifie que c'est un option button
If TypeOf ctrl Is MSForms.OptionButton Then
if ctrl.value=true then 'bouton qui est coché
msgbox ctrl.Name
exit for 'comme opt, 1 seul est coché
end if
End If
Next

espérant d'aider un petit peu


Bonne journée
 
L

le CH'TI160

Guest
Salut "valou "
bonjour "LE FORUM"
je te remercie pour l'aide que tu m'as apporté j'ai modifié un peu pour adapter un peu et j'en suis actuellement à tenter de créer une fonction
qui celon l'OptionButton renvoyé m'ouvre un MsgBox
j'en suis la de mes recherches et je cale "une fois encore"
Public Sub OptBSupp_Click()
Dim CTL As Control
Dim Nm As String

For Each CTL In Frame1.Controls 'on parcours tous les ctrl du Frame1
'on verifie que c'est un option button
If TypeOf CTL Is MSForms.OptionButton Then
If CTL.Value = True Then 'bouton qui est coché
Nm = CTL.Name
Message (Nm) 'ici je ne sais pas comment faire pour appeler la fonction
Exit For 'comme opt, 1 seul est coché
End If
End If
Next
End Sub

'la fonction serait celle ci

Function Message(Nm)
Select Case Nm
Case Is = OptB1
MsgBox "ATTENTION Vous Allez Supprimer" & CmbB1.Value, vbOKCancel + vbCritical, "ATTENTION"
Case Is = OptB2
MsgBox "ATTENTION Vous Allez Supprimer" & CmbB2.Value, vbOKCancel + vbCritical, "ATTENTION"
Case Is = OptB3
MsgBox "ATTENTION Vous Allez Supprimer" & CmbB3.Value, vbOKCancel + vbCritical, "ATTENTION"
Case Is = OptB4
MsgBox "ATTENTION Vous Allez Supprimer" & CmbB4.Value, vbOKCancel + vbCritical, "ATTENTION"
Case Is = OptB5
MsgBox "ATTENTION Vous Allez Supprimer" & CmbB5.Value, vbOKCancel + vbCritical, "ATTENTION"
Case Is = OptB6
MsgBox "ATTENTION Vous Allez Supprimer" & CmbB6.Value, vbOKCancel + vbCritical, "ATTENTION"
Case Is = OptB7
MsgBox "ATTENTION Vous Allez Supprimer" & CmbB7.Value, vbOKCancel + vbCritical, "ATTENTION"
Case Is = OptB8
MsgBox "ATTENTION Vous Allez Supprimer" & CmbB8.Value, vbOKCancel + vbCritical, "ATTENTION"
End Select
End Function
si une bonne ame pouvait m'aider
Merci D'avance
A+++
Jean Marie
 
V

valou

Guest
Bonjour,


je ne sais pas trop mais tu ne peux pas faire tout simplement

call Message (Nm)

mais j'ai essayer et la fonction message ne renvoie pas le msgbox. en faisant comme ca ca marche mais peut etre que par la suite cela va poser un problème :

Function Message(Nm)
If Nm = "OptB1" Then
Message = MsgBox("ATTENTION Vous Allez Supprimer1", vbOKCancel + vbCritical, "ATTENTION")
elseif.....
End If

Desolée, mais je ne suis pas une experte, très loin de la....

Bonne soirée
 
L

le CH'TI160

Guest
Salut "valou"
bonjour le "FORUM"
oui le problème et qu'il y a 8 Combobox donc 8 cas possibles je pense qu'il doit y avoir une solution via un Select Case et je pense qu'avec de la patience et des petits coups de mains je vais finir par y arriver
je te remercie encore
car moi je débute aussi dans ce genre de sport
donc A+++
Jean Marie
 

Discussions similaires

Réponses
3
Affichages
325
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…