Comment activer les boutons-options dans un frame?

Bonjour,

Je souhaiterais votre aide pour m’indiquer ce que je dois faire :

Dans le fichier ci-joint, j’ai créé un frame a partir de la case F9 (en brun)

J’y ai inséré 12 boutons-option qui portent les numéros 1 a 12.

J’ai cherché, lu et relu des dizaines d’articles sur les frames et contrôles similaires ; j’ai essayé de nombreuses fois avec des fichiers Excel. Mais rien à faire, je ne trouve pas comment utiliser ces boutons-option.

Avec des boutons-option seuls, je peux assigner au premier une cellule de liaison (par exemple E2, en jaune) ; mais lorsqu’ils sont dans un frame, je n’y arrive pas.

Comment dois-je faire ?

Merci beaucoup.

38test-frame.xlsm (21.81 Ko)

Bonjour,

Une solution fonctionnel dans ce thread : http://www.excel-downloads.com/threads/frame-sur-feuille.137593/

Gelinotte

Merci gelinotte mais cela ne m'aide pas!

Bonjour,

Pourtant, tout était clair ... excepté qu'ils utilisent "commandbutton" et toi "optionbutton.

Même moi, j'ai réussi.

Regarde, je t'ai tout mastiqué.

Comme lorsque les grands étaient tout-petits, on mastiquait la nourriture pour ensuite le leur donner.

La digestion leur en était plus facile.

À tester si ça convient ... Euuhhh! Je n'ai pas testé sous Excel 2007. Mais je pourrais si tu éprouves des difficultés.

Gelinotte

Tu as écris:"Regarde, je t'ai tout mastiqué. "

faut croire que seule la purée de bébé peut me convenir car je ne pige pas!

Je ne vois toujours pas comment lier mon bouton 1 avec la cellule E2

Peux-tu me dire comment tu peux lier ce bouton avec la case?

Bonjour,

Eh Eh!

Maintient ALT enfoncé et frappe F11; la fenêtre de VBE va s'afficher. Dans la colonne de gauche, double clique sur "Sheet1(Sheet1)". Le code va apparaître à droite.

Les codes qui t'intéressent à court terme, pour faire exécuter des actions, sont les "Private Sub Bouton1_Click()" .

Remplace les lignes de Msgbox par le code des actions désirées.

Si tu fais d'autres Frames, il n'y aura qu'à copier le code sur la nouvelle feuille et changer le nom du Frame s'il est différent et le nombre de OptionsButton au besoin.

Il est possible d'avoir plusieurs Frames sur la même feuille. Mais, pas plusieurs fois le même nom d'une macro sur cette même feuille. Il n'y aura qu'à ajouter les nouveaux codes au bas des macros concernées.

Si tu as d'autres questions ...

Si tu cliques sur les OptionsButtons dans la Feuil1, est-ce que les MsgBox s'affichent ?

Gelinotte

Bonsoir gelinotte,

Voici donc le code que j’obtiens

Private Sub CommandButton1_Click()

Dim i As Integer

For i = 0 To Frame1.Controls.Count - 1

MsgBox Frame1.Controls.Item(i).Name

Next i

End Sub

Et tu me demandes de mettre un code dans Msgbox !

Mais je n’en ai pas !

Je veux juste que le bouton « actif » mette son No dans la case E2.

Par exemple le bouton 2 mettra le chiffre2, le bouton 8 mettra le chiffre 8 etc.

Quel code cela peut-il être ?

Dans la solution que j’ai, comme je n’ai pas de frame, mais des boutons-option isolés, je n’ai pas de code à mettre. Je dois juste indiquer la cellule liée au bouton No1. (link cell)

Merci

Bruno

Bonjour,

Les Msgbox ne sont là que pour tester que l'action s'effectue. Ces lignes sont à remplacer avec le code désiré.

Pour faire un boucle, là je suis un peu confus. C'est la première fois que je tricote ce genre de frame dans une feuille.

Je regarde pour la boucle et reviens dès que je trouve.

Gelinotte

Je regarderai tantôt car ici, il se fait tôt.

Bruno

Bonjour,

Comme je ne maîtrise pas tout ... si les OptionsButton ne fonctionnent pas, change de feuille et reviens.

Il y aura à trouver comment éviter ce phénomène.

Regarde la boucle si elle te convient.

Gelinotte

Bonjour gelinotte

Je ne comprends pas.

Le chiffre dans la case E2 ne se change pas alors qu'il devrait.

Les boutons-option est l’idéal pour mon cas, et je ne veux pas en changer.

Le problème que j'ai avec les boutons options isolés c'est que je ne parviens pas à les aligner parfaitement car je n'ai pas trouvé d'outil pour cela. En connaîtrais-tu?

Ci-joint un fichier avec ces boutons isolés et qui fonctionne à merveille ( merci à Eric et MFerrand).

Comme tu peux le voir, les boutons ne sont pas bien positionnés et je NE PEUX PAS le faire manuellement car à la fin il y aura les 50 états des USA et les provinces du Canada dans lequel le visiteur choisira sa localisation. Alors, si un seul bouton est légèrement hors ligne, cela sautera aux yeux immédiatement!

Avec un frame, j'arrive à les aligner parfaitement.

Bruno

Bonjour gelinotte

Tu as changé quelque chose dans le fichier que tu m'as envoyé hier soir?

Car maintenant, ça marche !!!

si tu n'as rien changé, c'est que je ne devais pas avoir les yeux en face des trous!

Donc, c'est OK.

Mais il faut que tu me dises comment tu as fait, à partir de mon frame pour ajouter le code que je trouve dans la sheet1 (une sacrée tartine ! Et dire qu'en réalité, j'en aurai plus de 50 )

je dois simplement l'ajouter dans la zone code du frame, n'est-ce pas?

Bruno

PS: la boucle est bonne sur le principe; il me suffira de l'adapter à mon tableau définitif.

Je vais le faire aujourd'hui et on verra.

Bruno

En tout cas, un grand merci!

Bonjour,

On se bat avec un Frame sur une feuille. Mais, dépendamment du résultat final escompté, un UserForm serait plus facile à programmer et le code un tantinet plus léger.

Gelinotte

Deviendrai-je fou?

Volia de nouveau les boutons option qui ne changent pas le chiffre dans E2 !

Que se passe-t-il?

Bruno


Mais avec un userform, pourrais-je avoir le même résultat?

C'est a dire:

  • pouvoir aligner horizontalement et verticalement les boutons option?
  • 1 seul bouton option actif pour tout le tableau
  • Chaque bouton option donne son numéro a la case E2
  • pouvoir changer la police, taille, couleur du texte et des boutons
  • pouvoir changer la couleur du fond
  • garder 6 colonnes de 8 boutons option chacune pour former le tableau de 48 boutons-option

Si c'est possible avec un userform, prend l'exemple avec 3 colonnes de 3 boutons option et montre-moi comment programmer pour arriver au résultat.

Merci

Bruno

Bonjour,

priatel a écrit :

Deviendrai-je fou?

Volia de nouveau les boutons option qui ne changent pas le chiffre dans E2 !

Que se passe-t-il?

Bruno

Comme je l'ai mentionné, si cela arrive, va une autre feuille et revient. C'est un bogue qui provient du code de départ, sur lequel je ne me suis pas encore penché.

Mais avec un userform, pourrais-je avoir le même résultat?

C'est a dire:

  • pouvoir aligner horizontalement et verticalement les boutons option? OUI
  • 1 seul bouton option actif pour tout le tableau OUI
  • Chaque bouton option donne son numéro a la case E2 OUI
  • pouvoir changer la police, taille, couleur du texte et des boutons OUI
  • pouvoir changer la couleur du fond OUI
  • garder 6 colonnes de 8 boutons option chacune pour former le tableau de 48 boutons-option OUI

Le seul chose que tu ne pourras pas faire en même temps, c'est avoir le Userform ouvert et interagir directement avec une feuille.

Par contre, le résultat des sélections des OptionButtons peu s'afficher dans des Labels (sans modif possible par l'usager) ou dans Textbox (modif possible par l'usager) ou des Combobox (où l'usager sélectionne un item de la liste), ou des Listbox (sélection possible par l'usager.

Je te tricote un exemple et tu choisiras la méthode qui te convient le mieux.

Gelinotte

Oui, tricote-moi quelque chose de bien chaud ! car ici comme dans la Belle Province, l'hiver arrive bientôt!

Bruno

Bonjour,

J'ai mis plein de couleurs rigolotes.

L'image dans le coin pourrait être un fond complet.

Milles possibilités pour s'amuser durant la grand-messe; de quoi se faire excommunier

Pour voir le code, ALT-F11 et aller double-cliquer sur le userform "UFLes48Boutons".

Si la fenêtre des propriétés n'est pas là, frappe F4.

La fenêtre des propriétés sert pour toutes les propriétés d'un objet.

Les propriétés peuvent varier pour des objets différents (OptionButton, TextBos, Combobox, etc.).

Tu vas remarquer que le codage est semblable.

Pour aligner des objets de façon très précise, on sélectionne, disons une colonne d'objets semblables, dans la fenêtre des propriétés, On choisit le champ Left.

Si on sélectionne une ligne d'objets semblables, dans la fenêtre des propriétés, on choisit le champ Top.

Si on commet une erreur sur un changement en lot, on peut faire CTRL+Z ou le menu Édition, Annuler.

Ou, on peut se les taper un par un pour la mortification.

J'ai intentionnellement sélectionné la Sheet2, va sur la Sheet1 pour avoir ton Frame et le bouton pour appeler le nouveau UserForm.

@plus

Gelinotte

Beau boulot!

Mais restons pour l’instant avec le frame.

Il y a donc 2 points a résoudre pour qu’il fonctionne (ne tenons pas compte de la longueur du code) :

1- Mettre les macros activées automatiquement

2- Passer AUTOMATIQUEMENT à une autre feuille et revenir AUTOMATIQUEMENT sur la sheet 1

Point 1 : Ou faut-il changer dans certaines propriétés du fichier pour que les ActiveX controls s’exécutent ? Voir l’extrait ci-joint ?

2016 10 18 23h45 04

Point 2 : Ne peut-on pas faire une macro pour cette opération ?

Merci

Bruno

PS: Je verrai après le frame pour l'userform; mais d'abord le frame!

Bonjour gelinotte

Pour le point 1, j'ai trouvé: j'ai autorisé les macros dans macro security.

Reste le point 2 !

Bruno

Dès que l'on (tu) aura résolu le point 2, je testerai sur un nouveau fichier pour voir si tout est OK.

Ensuite, je verrai pour l'userfrorm.

Mais d'abord le point 2!

Merci

Bruno

Bonjour,

Présumons que les noms des feuilles ne changent pas, coller ceci dans Thisworkbook :

Private Sub Workbook_Open()
   Worksheets("Sheet2").Select
   Worksheets("Sheet1").Select
End Sub

Ainsi, à l'ouverture du fichier, la feuille 2 est sélectionnée. Puis, la feuille 1 le sera à son tour.

Gelinotte

Rechercher des sujets similaires à "comment activer boutons options frame"