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

XL 2016 CheckBox et OptionButon

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 !

Parti.

XLDnaute Occasionnel
Bonjour à toutes et à tous !

J'ai trouvé beaucoup de réponses concernant ce que je cherche, mais chaque fois soit je n'ai pas réussi à l'adapter, soit ça ne correspondait pas à mes besoins...
Précision : je suis d'un niveau très faible en VBA, si je suis déjà allé aussi loin c'est uniquement grâce à votre aide (surtout JM27 🙏).

J'ai deux problèmes :
- J'ai un formulaire avec des CheckBox, et quand je coche les cases pour les retrouver dans la feuille "Commande", les résultats vont toujours sur la ligne 3
, remplaçant chaque fois le résultat précédent, au lieu d'aller juste en dessous, sur la ligne correspondant à la nouvelle entrée du formulaire.

- Ensuite, mais c'est plus optionnel, je n'arrive pas à remplacer les ComboBoxCivilité et ComboTps par des OptionButon, tout en résupérant les résultats dans la feuille "Commande" pour les deux, et dans la feuille "BD Patients" pour la civilité.

La userform est en vrac, je sais, mais j'ai changé si souvent que j'attends à présent que tout fonctionne pour la mettre en forme...

Quelqu'un pourrait-il m'aider ?...

Merci d'avance...
 

Pièces jointes

re
pour finir lol
voilà ce que j'ai modifié et qui fait le Boulot Lol
plus de Vrais Faux
VB:
If Ctrl.Tag <> "" Then
                        ' transfert des dates
                        If Split(Ctrl.Tag, " ")(2) = "date" Then
                           .Cells(LigneDeDestination, CByte(Split(Ctrl.Tag, " ")(0))) = CDate(Ctrl.Value)
                        ' Transfert des valeures numérique
                        ElseIf Split(Ctrl.Tag, " ")(2) = "num" Then
                           .Cells(LigneDeDestination, CByte(Split(Ctrl.Tag, " ")(0))) = CDbl(Ctrl.Value)
                        Else
'**********************************************
                       Select Case Split(Ctrl.Tag, " ")(0)
                           Case "1", "6"
                               If Ctrl.Value = True Then .Cells(LigneDeDestination, CByte(Split(Ctrl.Tag, " ")(0))) = Ctrl.Caption
                           Case Else 'ajout ici
                        ' Transfert des strings
                           .Cells(LigneDeDestination, CByte(Split(Ctrl.Tag, " ")(0))) = Ctrl.Value
                          End Select
'**********************************************
 End If
jean marie
 
Re

[Au passage]
Pour de l'aide dans Excel, il y a une correction à faire ici:
Code:
Function lundi(mois, an)
For n = CDate("01/" & mois & "/" & an) To CDate("07/" & mois & "/" & an)
  If Weekday(n, vbMonday) = 1 Then lundi = n - 7
Next
End Function
NB: Remplacer annee par an
 
Merci beaucoup pour cette répose constructive qui fonctionne et qui pourra très certanement sevir à d'autre, sachant que je n'avais trouvé la réponse nulle part ailleurs !
Plus qu'à faire disparaitre cette ligne jaune Select Case Split(Ctrl.Tag, " ")(0) qui m'empêche de valider mon projet, et c'est terminé, je ne vous dérangerai plus... 😉
 
Re
tu parles de cette partie du code?
#15
VB:
 Select Case Split(Ctrl.Tag, " ")(0)
        Case "1", "6"
If Ctrl.Value = True Then .Cells(LigneDeDestination, CByte(Split(Ctrl.Tag, " ")(0))) = Ctrl.Caption
End Select
c'est sur cette Ligne l'erreur ?
VB:
Select Case Split(Ctrl.Tag, " ")(0)
il faut être sur que dans le Tag tu as bien 1 oui 1 et non 1oui1 les espaces sont importants!
jean marie
 
Dernière édition:
Re
[Pour info]
Ce message est un vrai correctif
La fonction lundi est bien dans le fichier joint par la demanderesse.
J'appelle cela également une réponse constructive.
 
Pour le "Select Case Split(Ctrl.Tag, " ")(0)", j'ai l'impression que ça le fait uniquement quand je rentre une donnée patient inconnue dans la "BD Patients", et qu'il doit l'ajouter (ce qu'il ne fait pas !)...
 
Re

Un petit outil
(pour ne pas avoir à se fader les Tag des controls un par un)
VB:
Sub test_Tags()
Dim ctrl As Control, k&, t
Sheets.Add
Application.ScreenUpdating = False
For Each ctrl In UserFormTransport.Controls
If Len(ctrl.Tag) Then
Cells(k, 1) = ctrl.Name & "|Tag: " & ctrl.Tag
End If
k = k + 1
Next
Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns(1).Columns.AutoFit
End Sub
A mettre dans un module Standard.
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…