XL 2016 CheckBox et OptionButon

Choco2x

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

  • Transport Hopital 8.6 OK avant tentative BR pour XLD.xlsm
    85.6 KB · Affichages: 76

ChTi160

XLDnaute Barbatruc
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
 

Staple1600

XLDnaute Barbatruc
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
 

Choco2x

XLDnaute Occasionnel
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... ;)
 

ChTi160

XLDnaute Barbatruc
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:

Choco2x

XLDnaute Occasionnel
Ca me le fait à la validation du formulaire, même si cependant il prend bien en compte les infos à valiser et les transfert dans le tableau destinataire...

1607879498823.png


Tout le reste est nickel !
 

Staple1600

XLDnaute Barbatruc
Re
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
[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.
 

Staple1600

XLDnaute Barbatruc
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.
 

Discussions similaires

Statistiques des forums

Discussions
314 719
Messages
2 112 181
Membres
111 452
dernier inscrit
christine64