Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

alimenter combobox

L

lio

Guest
Bonjour le forum,
je suis débutant et j'essaie de faire une petite appli pour progresser.
Cependant, je m'apperçois que je bloque très vite notamment pour alimenter une combobox. J'ai tenté de faire avec la méthode Row Source mais sans réussite. Quelqu'un peut-il me montrer mes erreurs, sachant que je souhaiterai avoir quelque chose d'évolutif si des données changent sans avoir à changer tout le programme.

D'autre part, j'ai lu dans les archives qu'il faut utiliser la fonction décaler pour avoir une mise à jour automatique...

Merci.
[file name=Personne.zip size=11556]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Personne.zip[/file]
 

Pièces jointes

  • Personne.zip
    11.3 KB · Affichages: 36

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Lio, bonjour le forum,

Plutôt que la méthode RowSource, je te conseille la méthode AddItem pour alimenter une ComboBox. Tu peux le faire par exemple à l'initialisation de l'UserForm avec le code suivant :


 
L

Lio

Guest
Merci beaucoup Robert. Entre temps, j'ai essayé une autre méthode avec addIttem mais ça m'a pas avancé plus. Je joins quand meme mon dossier au cas où. [file name=Personne_20051009174234.zip size=12332]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Personne_20051009174234.zip[/file]
 

Pièces jointes

  • Personne_20051009174234.zip
    12 KB · Affichages: 52

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Lio, bonjour le forum,

Plusieurs erreurs dans ton code font que ça ne pouvait pas marcher :
1. tu as taper à la main Private Sub UserForm_Initialise() et tu t'es planté car c'est Initiali
ze. Pour éviter ce genre de déconvenue, choisis le composant dans le premier champ (en haut au dessus du grand rectangle blanc de droite) puis l'événement dans le second.
2. Tu ne peux pas nommer une feuille directement, tu dois utiliser la syntaxe Sheets('nom_de_la_feuille') ou Sheets(index) comme Sheets('donnees') ou Sheets(3).
3. Si tu commences une boucle par For il ne faut pas oublier le Next comme tu l'as fait, For x=2 To 6 mais tu n'as pas mis Next x. Ton code corrigé devient :


Private Sub UserForm_Initialize()
For x = 2 To 6
choix.AddItem Sheets('donnee').Cells(x, 4)
Next x
End Sub

Il fonctionne et ressemble beaucoup à celui que je t'ai donné sauf que dans l'état il est figé et ne s'actualise pas si tu rajoutes des équipes.

Jette un coup d'œil sur celui que je t'ai donné dans la première réponse. La plage des équipes s'actualise automatiquement.
 
L

lio

Guest
Merci beaucoup Robert. J'ai encore appris plein de choses aujourd'hui.
Merci en général à tous les habitués pour vos réponses et je ne désespère pas dans quelques mois de donner moi aussi un coup de pouce.
Bonne soirée.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…