> Tous les forums > Forum Bureautique
 Excel 2003 : imposer une valeur à une comboboxSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Marmotte18
  Posté le 24/10/2010 @ 20:09 
Aller en bas de la page 
Astucien

Bonjour,

Comment faut-il procéder pour forcer la valeur "Inconnu" à une combobox nommée "MortBox" autrement que manuellement sur la fenêtre des propriétés ?

http://www.cijoint.fr/cjlink.php?file=cj201010/cij2l6KMCb.xls

Merci par avance



Modifié par Marmotte18 le 24/10/2010 21:32
Publicité
ferrand
 Posté le 24/10/2010 à 21:53 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonsoir,

Je ne suis pas sûr d'avoir bien compris ta question. La tentation est de te répondre de le faire par programmation... mais il me semble que tu n'avais besoin de personne pour trouver ça !

Ceci étant, il n'y a pas une méthode unique. Je suppose que par "forcer", tu veux que ton ComboBox (aussi bien à l'ouverture du Userform qui le contient qu'ultérieurement en fonction d'autres choix) affiche la valeur "Inconnu" et que celle-ci ne puisse être alors modifiée par l'utilisateur.

Si "Inconnu" figure dans la liste des entrées sélectionnables du ComboBox, pour l'afficher il te suffirait d'affecter la propriété .Listindex = rang de l'entrée dans la liste -1 (elles sont numérotées à partir de 0), puis définir la propriété .Locked = True, de façon qu'elle ne soit plus modifiable.

Si "Inconnu" ne figure pas, s'il n'y a aucune entrée, facile d'en insérer une, de la sélectionner et de la bloquer (méthode .AddItem "Inconnu", .ListIndex=0, .Locked=True).

S'il existe des entrées, il faudra soit ajouter "Inconnu", soit le substituer aux entrées existantes (sauf erreur de ma part, je crois qu'il faut utiliser la même méthode que pour la définition des entrées initiales [par ex. tu ne peux utiliser AddItem si les entrées ont été définies au moyen de la propriété RowSource...] donc à adapter selon le cas). Même principe pour la suite.

A+

edit: Excuses, pas vu ton lien je vais regarder.



Modifié par ferrand le 24/10/2010 21:55
Marmotte18
 Posté le 24/10/2010 à 22:11 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonsoir Ferrand,

Merci pour tes explications que je ne suis pas sûr d'avoir compris complètement.

En fait, je suis en train de fabriquer un générateur automatique de donnes de bridge. La donne étant faite, on indique qui des 4 personnes doit étaler son jeu (on dit que c'est le mort !). Ce choix (nord, sud, est ouest), je le fais manuellement via le bouton de choix de ma liste déroulante nommée "MortBox".

Quand je clique sur un autre bouton nommé "Efface" (c'est mon événement), la donne actuelle doit être effacée et la valeur figurant dans la liste déroulante doit être "Inconnu".

D'où ma question : comment faire en sorte que le mot "Inconnu" apparaisse dans la liste déroulante sachant que cette valeur figure bien dans les choix possibles. Je précise que je ne cherche pas à verrouiller la donnée mais simplement procéder à une rinitialisation.



Modifié par Marmotte18 le 24/10/2010 22:15
ferrand
 Posté le 24/10/2010 à 22:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Vu.

Je proposerais : Worksheets(1).MortBox.ListIndex = 4

dans une procédure Workbook_Open pour que cela se fasse à l'ouverture du classeur.

On peut aussi mettre l'affectation à l'activation de la feuille (mais l'évènement Activate ne se déclenche pas à l'ouverture du classeur). A toi de voir les différents cas où tu veux le faire revenir sur cette valeur.

galopin01
 Posté le 24/10/2010 à 22:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonsoir,

Ou encore :

Private Sub Workbook_Open()
Feuil1.MortBox = "Inconnu"
End Sub

A+

ferrand
 Posté le 24/10/2010 à 22:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Re vu !

Donc tu l'affectes au bouton Efface.

En fait, pour l'avoir à l'ouverture du classeur sur Inconnu, il y a plus logique: c'est que la valeur soit ainsi définie dans la fenêtre de propriété (valeur par défaut). Et par la suite tu réinitialises avec le bouton.

ferrand
 Posté le 24/10/2010 à 22:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

galopin01 a écrit :

Bonsoir,

Ou encore :

Private Sub Workbook_Open()
Feuil1.MortBox = "Inconnu"
End Sub

A+

Très juste, et dans ce cas tu peux te dispenser d'avoir "Inconnu" dans ta liste d'entrées.

Marmotte18
 Posté le 24/10/2010 à 22:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour tout le monde,

Il ne s'agit pas d'initialiser la liste déroulante à l'ouverture mais de la réinitialiser au moment opportun quand je clique sur un autre bouton.

Merci Ferrand, tu viens de me donner la syntaxe que je cherche en vain depuis des heures.

Worksheets("ComboBox").MortBox.ListIndex = 4
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Jogging polaire Amazon Essentials
12,97 € 20 € -35%
@Amazon
PC Portable 15,6 pouces HP Victus (FHD 144 Hz, AMD Ryzen AI 340, 16Go/512Go, RTX 5060 8 Go, sans OS)
799,99 € 1099 € -27%
@Cdiscount
Batterie externe Ampace Andes 1500, 2400W, LifePOE4
489,99 € 699 € -30%
@Geekbuying
Poêle Wok inox Tefal Virtuoso 28 cm
22,99 € 46 € -50%
@Amazon
Aspirateur sans fil JIGOO V700 avec station de vidage
199 € 399 € -50%
@Geekbuying
Souris gaming sans fil Logitech G G502 X Plus Lightspeed RGB
84,28 € 120 € -30%
@Amazon Espagne

Sujets relatifs
Excel 2003 : nom de matrice = valeur de cellule
VBA Excel valeur en fonction de cellules
Excel 2003, insertion ligne vierge
Excel 2003 : sauvegarder la moyenne
excel 2003 signaler l'action d'un filtre
Excel: valeur sélectionnée mais non affichée sur l'axe des x
Excel 2007 Problème bizarre #valeur!
Comment recuperer des fichiers Excel 2007 avec Excel 2003
Excel: valeur cellule impliquée dans calcul ailleurs -> connexions
Problème ouverture de fichier protégé dans Excel 2003
Plus de sujets relatifs à Excel 2003 : imposer une valeur à une combobox
 > Tous les forums > Forum Bureautique