Optionbutton et userform

Fermé
tophessa Messages postés 3 Date d'inscription jeudi 19 mars 2015 Statut Membre Dernière intervention 19 mars 2015 - 19 mars 2015 à 12:02
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 - 20 mars 2015 à 07:57
Bonjour,

Débutant en vba, je me retrouve bloqué dans la création de mon formulaire.

Je vais essayer de vous expliquer simplement mon problème pour que vous puissiez comprendre. J'ai donc un userform qui me permet de gérer des patients (Nom, prénom..). Ce userform contient 3 boutons de commande qui sont nouveau, modifier et quitter.
Mon problème se situe avec des optionbuttons qui sont insérés dans des frames (J'en ai 4 avec par exemple fiche de renseignements signée ou non signée etc). Quand j'insère un nouveau patient, j'ai trouvé la programmation à mettre en place pour qu'il ajoute à ma feuille excel les valeurs entrées dans les optionbutton. Par contre, si je souhaite modifier la fiche d'un patient, les optionbutton sont vides car je n'arrive pas à récupérer la valeur de ma feuille excel. Je ne sais pas si je suis très clair. Ensuite, une fois que cette fonction sera fonctionnelle, j'aimerai pouvoir modifier la valeur et la récupérer dans ma feuille.
Je vous met ce qu'il y a dans mon bouton modifier pour le moment :

'Correspond au programme du bouton MODIFIER
Private Sub CommandButton2_Click()
If MsgBox("Etes-vous certain de vouloir modifier la fiche patient ?", vbYesNo, "Demande de confirmation") = vbYes Then
Dim Ligne As Long
Dim L As Integer
Dim TB

If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox2.List(Me.ComboBox2.ListIndex, 1)

For L = 1 To 34
If Me.Controls("TB" & L).Visible = True Then
Ws.Cells(Ligne, L + 2) = Me.Controls("TB" & L)
End If
Next L
End If


End Sub


Merci pour votre aide
Si certains veulent, je peux transmettre mon fichier.

3 réponses

Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
19 mars 2015 à 12:12
Bonjour,
Ça manque d'un peu de précision.
Comment choisissez vous le client que vous désirez modifier ? Votre pointeur est il sur la cellule du client que vous désirez modifier ? comment appelez vous votre UserForm ?

Cordialement
0
tophessa Messages postés 3 Date d'inscription jeudi 19 mars 2015 Statut Membre Dernière intervention 19 mars 2015
19 mars 2015 à 12:25
Le client est choisit par une liste déroulante (combobox1) qui gère le NOM. Le prénom est dans une combobox2 qui est aussi géré par une liste déroulante "en cascade".
Mon userform s'appelle UserForm1. J'ai été très original sur ce coup. En espérant que cela vous éclaire un peu.
0
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
19 mars 2015 à 14:11
Comment est définit votre liste de client (tableau excel)
A quelle position (ex : A3) commence votre tableau (1er client). Quelles sont les colonnes du tableau
0
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
19 mars 2015 à 14:12
Je vous demande cela car une fois choisit le nom et le prénom via les combobox, il faut aller chercher la bonne ligne dans le tableau afin de remonter les valeurs
0
tophessa Messages postés 3 Date d'inscription jeudi 19 mars 2015 Statut Membre Dernière intervention 19 mars 2015
19 mars 2015 à 18:58
Le tableau commence en effet en A3. Pour ce qui est des colonnes, j'en ai 39 donc un peu long à citer. Colonne A : Nom avec combobox1, colonne B : prénom avec combobox2. Peut-être que je peux mettre un bout de code avec combobox2 change mais par contre je ne sais pas quoi?
0
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
Modifié par Thorak83 le 20/03/2015 à 07:58
Voici un exemple de code a exécuter sur Clic du bouton Modifier:

Private Sub cmdModifier_Click()
  Dim NomClient As String
  Dim PrenomClient As String

  ' ici on se positionne sur le 1er client
  Range("A3").Select
  ' ici boucle do while qui dit : tant que la cellule active n'est pas
  ' vide j'entre dans la boucle
  Do While ActiveCell.Value <> ""
    ' on recupere le nom et le prenom du client pour plus de clareté
    NomClient = ActiveCell.Value 'colone A
    PrenomClient = ActiveCell.Offset(0, 1).Value 'decallage 1 colonne a droite en B
    ' ici on test si le nom et prénom sont identique
    If NomClient = combobox1.Value And PrenomClient = ComboBox2.Value Then
      ' récuper les valeur des autres colonnes et les renseigner dans le Userform
      ' par exemple pour la fiche de renseignement si c'est en colonne C avec comme valeur OUI ou NON
      If ActiveCell.Value(0, 2).Value = "OUI" Then OptionButton1.Value = True
      If ActiveCell.Value(0, 2).Value = "NON" Then OptionButton2.Value = True
      ...
    End If
    ' ici on descend d'une ligne vers le bas vers le client suivant
    ActiveCell.Offset(1, 0).Select
  Loop
End Sub


J'ai essayé de commenter le code afin que tu comprennes bien, mais si des zones sont flous n'hésitez pas à demander.

Je te conseille également de bien indenter ton code pour une meilleur lecture et un meilleur débogage si ça plante
0