XL 2016 Combiner checkbox et bouton option

KTM

XLDnaute Impliqué
Bonjour chers tous
Dans mon fichier je voudrais faire une combinaison des choix check box et bouton option .
Avec une combinaison multiple pas de problème mais avec le choix unique check box une erreur se produit.
certainement un mauvais code serait à l'origine.
Aidez moi à corriger.
Merci.
 

Pièces jointes

  • Chck box.xlsm
    26.5 KB · Affichages: 4

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Vos lignes d'initialisation sont mal placées. Elles sont exécutée sur click du bouton OK, APRES que la macro test ait été appelée et avant fermeture.
Sortez ces lignes de la sub OKK_Click pour les mettre dans UserForm_Initialize :
VB:
Private Sub OKK_Click() 'bouton enregistrer

 Dim msg As String
 
 With Sheets("Feuil1")
  .Range("E2") = TextBox1
  .Range("E2") = Trim(.Range("E2"))
 End With
 

 Unload InfosC
End Sub
Private Sub UserForm_Initialize()
 Dim ctrl As Control
    With Sheets("Feuil1")
        .Range("E2") = ""
    End With
    '
    ' Initialisation des controls
    For Each ctrl In Me.Controls
        If TypeName(ctrl) Like "CheckBox" Or TypeName(ctrl) Like "OptionButton" Then ctrl = False
    Next ctrl
    TextBox1 = ""

End Sub

Cordialement
 

job75

XLDnaute Barbatruc
Bonjour KTM, Hasco,

Fichier joint avec 2 macros corrigées :
VB:
Private Sub OKK_Click() 'bouton enregistrer
 Sheets("Feuil1").Range("E2") = TextBox1
 Unload InfosC
End Sub
En effet les contrôles reprennent automatiquement leurs valeurs initiales à la fermeture de l'UserForm.
VB:
Sub test()
 Dim ctrl As Control
 Dim msg As String
    For Each ctrl In InfosC.Controls
     If TypeName(ctrl) Like "CheckBox" Or TypeName(ctrl) Like "OptionButton" Then
      If ctrl = True Then msg = msg & " - " & ctrl.Caption
     End If
    Next ctrl
   InfosC.TextBox1 = Mid(msg, 4)
End Sub
Fonctionne même quand msg = ""

A+
 

Pièces jointes

  • Chck box.xlsm
    26.7 KB · Affichages: 5

KTM

XLDnaute Impliqué
Bonjour KTM, Hasco,

Fichier joint avec 2 macros corrigées :
VB:
Private Sub OKK_Click() 'bouton enregistrer
 Sheets("Feuil1").Range("E2") = TextBox1
 Unload InfosC
End Sub
En effet les contrôles reprennent automatiquement leurs valeurs initiales à la fermeture de l'UserForm.
VB:
Sub test()
 Dim ctrl As Control
 Dim msg As String
    For Each ctrl In InfosC.Controls
     If TypeName(ctrl) Like "CheckBox" Or TypeName(ctrl) Like "OptionButton" Then
      If ctrl = True Then msg = msg & " - " & ctrl.Caption
     End If
    Next ctrl
   InfosC.TextBox1 = Mid(msg, 4)
End Sub
Fonctionne même quand msg = ""

A+

Bonjour KTM, Hasco,

Fichier joint avec 2 macros corrigées :
VB:
Private Sub OKK_Click() 'bouton enregistrer
 Sheets("Feuil1").Range("E2") = TextBox1
 Unload InfosC
End Sub
En effet les contrôles reprennent automatiquement leurs valeurs initiales à la fermeture de l'UserForm.
VB:
Sub test()
 Dim ctrl As Control
 Dim msg As String
    For Each ctrl In InfosC.Controls
     If TypeName(ctrl) Like "CheckBox" Or TypeName(ctrl) Like "OptionButton" Then
      If ctrl = True Then msg = msg & " - " & ctrl.Caption
     End If
    Next ctrl
   InfosC.TextBox1 = Mid(msg, 4)
End Sub
Fonctionne même quand msg = ""

A+
Merci c'est super
Mais un detail si vous le permetez.
Comment supprimer les espaces dans le resultat obtenu ?
Merci
 

KTM

XLDnaute Impliqué
Bonjour,

Vos lignes d'initialisation sont mal placées. Elles sont exécutée sur click du bouton OK, APRES que la macro test ait été appelée et avant fermeture.
Sortez ces lignes de la sub OKK_Click pour les mettre dans UserForm_Initialize :
VB:
Private Sub OKK_Click() 'bouton enregistrer

 Dim msg As String
 
 With Sheets("Feuil1")
  .Range("E2") = TextBox1
  .Range("E2") = Trim(.Range("E2"))
 End With
 

 Unload InfosC
End Sub
Private Sub UserForm_Initialize()
 Dim ctrl As Control
    With Sheets("Feuil1")
        .Range("E2") = ""
    End With
    '
    ' Initialisation des controls
    For Each ctrl In Me.Controls
        If TypeName(ctrl) Like "CheckBox" Or TypeName(ctrl) Like "OptionButton" Then ctrl = False
    Next ctrl
    TextBox1 = ""

End Sub

Cordialement
Ok ça fonctionne
Merci.
 

Discussions similaires

  • Résolu(e)
XL 2019 VBA
Réponses
18
Affichages
329

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 450
Messages
2 109 731
Membres
110 553
dernier inscrit
loic55