XL 2013 Formulaire avec boutons d'option qui se met à jour tout seul

Tubule

XLDnaute Nouveau
Bonjour le forum,

Après de nombreuses recherches infructueuses, j'ai une question à poser. Je souhaite remplir un tableau avec un formulaire comme suit :

1-Avec le bouton OK: ajout d'un nouveau dossier, avec des informations. Ici, ça fonctionne. On coche un des 3 boutons d'options disponibles, et des cases disparaissent (selon le type de dossier, toutes les dates ne sont pas à remplir)

2-Avec le bouton modifier: Je souhaite que le formulaire se mette à jour avec les données de la ligne concernée, et notamment que les boutons d'options se cochent tout seuls selon le type de dossier indiqué dans la ligne.
Le problème est ici : je ne parviens pas à ce que les boutons d'option se cochent tout seuls. (D'ailleurs, je ne parviens pas à faire en sorte que le formulaire se mette à jour, mais c'est surtout les boutons d'options qui m'importent ici).

Vous trouverez en pièce jointe un modèle. J'espère avoir été claire dans am demande.
Merci beaucoup par avance.
Excellente journée à tous.
 

Pièces jointes

  • Test_Formulaire.xlsm
    27.2 KB · Affichages: 5

youky(BJ)

XLDnaute Barbatruc
Bonjour Tubule,
Voici le code bien modifié, j'ai pas regardé les autres macros
Bruno
VB:
Private Sub Menu_Change()
Dim k%
OptionButton1 = False: OptionButton2 = False: OptionButton3 = False
Controls("OptionButton" & Menu.ListIndex + 1) = True
For k = 1 To 4
Controls("TextBox" & k) = Feuil1.Cells(Menu.ListIndex + 2, k + 2)
Next
End Sub
 

Tubule

XLDnaute Nouveau
Merci beaucoup Youky !

Votre code fonctionne très bien pour un petit tableau avec 3 lignes, mais pas pour un code avec plus de contenu (exemple ci-joint).
En fait, ce que je ne comprends pas dans votre code, c'est le fait d'introduire le numéro de la ligne ListIndex dans le "Controls" des boutons d'option :

VB:
Controls("OptionButton" & Menu.ListIndex + 1) = True
 
  et
 
Controls("TextBox" & k) = Feuil1.Cells(Menu.ListIndex + 2, k + 2)

Forcément, si l'on sélectionne un dossier à la fin du tableau, ça ne fonctionnera pas (car le numéro sera supérieur à 3) ...
J'ai essayé avec une boucle For (i=1 to 3, pour passer en revue tous les boutons d'option), mais ça ne fonctionne pas.

Auriez-vous une autre idée ?
Merci à vous :)
 

Pièces jointes

  • Test_Formulaire.xlsm
    26.2 KB · Affichages: 4

youky(BJ)

XLDnaute Barbatruc
Bon voici le nouveau code
on prends le dernier chiffre de type?
Bruno
VB:
Private Sub Menu_Change()
    Dim k%, lig%
    OptionButton1 = False: OptionButton2 = False: OptionButton3 = False
    lig = Menu.ListIndex + 2
   Controls("OptionButton" & Right(Feuil1.Cells(lig, 2), 1)) = True
    For k = 1 To 4
        Controls("TextBox" & k) = Feuil1.Cells(lig, k + 2)
    Next
End Sub
 
Haut Bas