Bouton Option (ou case à cocher) de façon dynamique

  • Initiateur de la discussion Initiateur de la discussion krystof_ii
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

krystof_ii

XLDnaute Occasionnel
Bonjour à tous,

Je souhaiterais une macro pour constituer de façon dynamique une boite de dialogue avec des boutons options.
La validation de cette boite de dialogue renverra la valeur sélectionné pour l'item.
Je souhaite que cela soit de façon dynamique car le nb d'item ou son regroupement peut varier...

J'ai mis un fichier joint pour l'exemple.

Par avance, merci
 

Pièces jointes

Re : Bouton Option (ou case à cocher) de façon dynamique

Re,

Ou plutôt comme ça le code
Code:
Private Sub Ok_Click()
On Error Resume Next


If AAA_C_Chantier1 = True Then
    ligne = (Range("A65000").End(xlUp).Row + 1)
    Range("A" & ligne) = "C"
End If

If AAA_R_Chantier1 = True Then
    ligne = (Range("B65000").End(xlUp).Row + 1)
    Range("B" & ligne) = "R"
End If

If AAA_SD_Chantier1 = True Then
    ligne = (Range("C65000").End(xlUp).Row + 1)
    Range("C" & ligne) = "SD"
End If

If AAA_C_Chantier1 = False Then
    Range("A" & ligne) = "-"
End If

If AAA_R_Chantier1 = False Then
    Range("B" & ligne) = "-"
End If

If AAA_SD_Chantier1 = False Then
    Range("C" & ligne) = "-"
End If

'...

End

End Sub
Cdt, Hulk.
 
Re : Bouton Option (ou case à cocher) de façon dynamique

Re,

Au fait je crois que c'est plutôt ça que tu veux..
Code:
Private Sub Ok_Click()
On Error Resume Next
If AAA_C_Chantier1 = True Then
    ligne = (Range("A65000").End(xlUp).Row + 1)
    Range("A" & ligne) = "C"
End If
If ABA_C_Chantier1 = True Then
    ligne = (Range("B65000").End(xlUp).Row + 1)
    Range("B" & ligne) = "C"
End If
If ACA_C_Chantier1 = True Then
    ligne = (Range("C65000").End(xlUp).Row + 1)
    Range("C" & ligne) = "C"
End If
If BBA_C_Chantier1 = True Then
    ligne = (Range("D65000").End(xlUp).Row + 1)
    Range("D" & ligne) = "C"
End If
If AAA_R_Chantier1 = True Then
    ligne = (Range("A65000").End(xlUp).Row + 1)
    Range("A" & ligne) = "R"
End If
If ABA_R_Chantier1 = True Then
    ligne = (Range("B65000").End(xlUp).Row + 1)
    Range("B" & ligne) = "R"
End If
If ACA_R_Chantier1 = True Then
    ligne = (Range("C65000").End(xlUp).Row + 1)
    Range("C" & ligne) = "R"
End If
If BBA_R_Chantier1 = True Then
    ligne = (Range("D65000").End(xlUp).Row + 1)
    Range("D" & ligne) = "R"
End If
If AAA_SD_Chantier1 = True Then
    ligne = (Range("A65000").End(xlUp).Row + 1)
    Range("A" & ligne) = "SD"
End If
If ABA_SD_Chantier1 = True Then
    ligne = (Range("B65000").End(xlUp).Row + 1)
    Range("B" & ligne) = "SD"
End If
If ACA_SD_Chantier1 = True Then
    ligne = (Range("C65000").End(xlUp).Row + 1)
    Range("C" & ligne) = "SD"
End If
If BBA_SD_Chantier1 = True Then
    ligne = (Range("D65000").End(xlUp).Row + 1)
    Range("D" & ligne) = "SD"
End If
End
End Sub
adapte le...

Bye.
 
Re : Bouton Option (ou case à cocher) de façon dynamique

En fait cela ne répond pas vraiment à mon pb.
Ce que je souhaiterais c'est générer automatique dans des boites de dialogue :
- l'une, des cases à cocher (une seule case à cocher par item),
- l'autre, des boutons option (trois options possibles par item).

Le nombre d'item pouvant varier....

En exemple, ce que je souhaiterais (mais là, affichage de 'labels' au lieu des cases à cocher ou boutons option),
 

Pièces jointes

Re : Bouton Option (ou case à cocher) de façon dynamique

Private Sub UserForm_Activate()
Dim case_a_cocher() As MSForms.CheckBox
Dim ctrl As Control
Dim PosY As Integer
Dim i, nb_item_a_creer As Byte

Set plage = Worksheets("Présence personnel").Range("A:A")
nb_item_a_creer = 8

'Initialisation des positions
PosY = 0

'Création des Checkbox
For i = 1 To nb_item_a_creer
PosY = PosY + 20
Set ctrl = Me.Controls.Add("Forms.checkBox.1")
With ctrl
.Caption = .Name
.Left = 10
.Top = PosY
.Width = 130
ReDim Preserve case_a_cocher(num_personnel)
End With
Next i
End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
18
Affichages
1 K
L
Réponses
5
Affichages
2 K
J
Réponses
1
Affichages
767
Compte Supprimé 979
C
T
  • Question Question
Réponses
125
Affichages
14 K
L
Réponses
1
Affichages
1 K
Lucien31
L
Retour