Créer une liste pour un ComboBox dans un USF

Magic_Doctor

XLDnaute Barbatruc
Bonsoir,

J’ai un ComboBox dans un USF.
Ce ComboBox puise ses items dans un tableau sur la feuille.
Je n’ai que 2 items, à savoir : « lolo » et « zaza ».
Je voudrais m’affranchir de ce tableau sur la feuille avec ces 2 items et placer ces items directement à partir de la macro de l’USF.

J’ai écrit ceci :
VB:
Private Sub UserForm_Initialize()

Dim maliste As Variant, i As Byte

maliste = Array("lolo", "zaza")

For i = 1 To UBound(maliste)
    ComboBox1.AddItem maliste(i)
Next
End Sub

Évidemment, ça ne marche pas...
Comment faire en sorte pour que ça marche ?

Merci d'avance pour tout tuyau.
 

Dranreb

XLDnaute Barbatruc
Re : Créer une liste pour un ComboBox dans un USF

Bonsoir.
La fonction Array renvoie en général un tableau commençant à 0 et non à 1. Donc là il vous y met seulement "zaza".
En l’occurrence vous devriez pouvoir faire simplement:
VB:
ComboBox1.List = Array("lolo", "zaza")
Depuis le temps, vous devriez pouvoir vous débloquer tout seul sur ce genre de problème, à mon avis.
Pour y arriver, utilisez beaucoup plus souvent, en phase de mise au point, les Stop, les espions et la touche F1.
Cordialement.
 

tototiti2008

XLDnaute Barbatruc
Re : Créer une liste pour un ComboBox dans un USF

Bonsoir magic_doctor,

Et comme ça ?

Code:
Private Sub UserForm_Initialize()

Dim maliste As Variant, i As Byte


maliste = Array("lolo", "zaza")


For i = 0 To UBound(maliste)
    ComboBox1.AddItem maliste(i)
Next
End Sub
 

Magic_Doctor

XLDnaute Barbatruc
Re : Créer une liste pour un ComboBox dans un USF

Bonsoir Dranreb,
J'ai planché un bon moment sur ce problème avant de demander de l'aide au forum.
Plutôt que de me répondre sur un ton péremptoire, je vous signale que votre solution ne marche pas davantage que la mienne. Donc ce n'est pas si évident que ça à priori, comme pratiquement tout en VBA...

Bonsoir tototiti,
Vous avez raison, par défaut nous sommes en "Option Base 0". J'avais déjà fait l'essai comme vous l'indiquez en commençant par i = 0, puis en me mettant en "Option Base 1". Du reste si ça marchait, j'aurais eu 1 item dans ma liste et j'aurais corrigé en conséquence pour obtenir mes 2 items.
Je reçois toujours le même message d'erreur : "Erreur 70 Autorisation refusée" (traduit de l'espagnol), et une sentence du module de feuille est surlignée : "USF_Symboles.Show 0"
 

Magic_Doctor

XLDnaute Barbatruc
Re : Créer une liste pour un ComboBox dans un USF

Bonsoir Si...,

Je viens d'essayer votre solution... toujours le même message d'erreur.
Quant à votre solution, imaginez un instant qu'il y ait 250 items...

Mais merci de vous être penché sur mon problème.
 

job75

XLDnaute Barbatruc
Re : Créer une liste pour un ComboBox dans un USF

Bonjour Magic_Doctor, salut les zôtres,

Les méthodes qu'on t'a indiquées (AddItem, Liste) fonctionnent sans problème.

A une seule condition : que la propriété RowSource de la ComboBox ne soit pas renseignée...

A+
 

job75

XLDnaute Barbatruc
Re : Créer une liste pour un ComboBox dans un USF

Re,

Mon post #7 est pourtant clair il me semble.

Si une plage est indiquée dans la propriété RowSource, il n'est pas possible d'utiliser les méthodes .AddItem ou .List.

Va donc voir cette propriété.

Sinon efface-la par ComboBox1.RowSource = ""

A+
 

Magic_Doctor

XLDnaute Barbatruc
Re : Créer une liste pour un ComboBox dans un USF

Maintenant c'est clair. Mais ça l'est davantage pour ceux qui jonglent avec ce langage "desgraciadamente demasiado anglosajón para mí".
Effectivement dans les propriétés du combo de l'USF, dans la propriété "RowSource" il y avait une adresse.
Je l'ai donc effacée. Elle n'interfère maintenant plus avec la macro. La liste du combo se dresse sans aucun problème.
Merci job.
J'en profite pour signaler que le "F1" et autre aide qui laisse à désirer ne m'auraient pas été d'un grand secours.
 

Si...

XLDnaute Barbatruc
Re : Créer une liste pour un ComboBox dans un USF

re

Bah, je ne répondais que dans ce cadre imposé.

Bonsoir,

J’ai un ComboBox dans un USF.
Ce ComboBox puise ses items dans un tableau sur la feuille.
Je n’ai que 2 items, à savoir : « lolo » et « zaza ».
Je voudrais m’affranchir de ce tableau sur la feuille avec ces 2 items et placer ces items directement à partir de la macro de l’USF.

Évidemment, ça ne marche pas...
Comment faire en sorte pour que ça marche ?

Maintenant, avec 256 items, un Array avec autant de données n’est pas la joie non plus et dans ce cas, je n’aurais rien proposé (surtout pour résoudre un problème mal exposé).
 

Magic_Doctor

XLDnaute Barbatruc
Re : Créer une liste pour un ComboBox dans un USF

Bonjour Si...,

Le problème n'était pas mal exposé puisque la macro que j'avais mise dans le 1er post marchait en fait très bien, si seulement et seulement si après avoir eliminé la pierre d'achoppement qui se dissimulait dans les propriétés du ComboBox. Autant pour moi !
En conséquence, quand une macro devrait normalement fonctionner pour un ComboBox et que ce ne soit pas le cas, toujours vérifier si une propriété de ce combo n'a pas été malencontrsement bloquée, interférant par là avec le bon fonctionnement de la macro.
 

Magic_Doctor

XLDnaute Barbatruc
Re : Créer une liste pour un ComboBox dans un USF

Bonsoir Dranreb,

Effectivement dans mon 1er post j'avais omis de signaler le type d'erreur que m'avait renvoyé Excel. Dans le post #5 j'y avais glissé la traduction de l'espagnol. En général quand ça plante Excel envoie un Nº d'erreur avec une sentence laconique (qui bien souvent ne veut pas dire grand chose...) et il est vrai qu'on oublie souvent de citer le message avec son Nº d'erreur (je me demande du reste qui peut les mémoriser...). Mais en revoyant votre solution, celle de Si..., de tototiti ou la mienne, nous disions tous à peu près la même chose et nous tournions en rond. Job, en revanche, a vu la faille. Mais en fait, l'intéressant dans cette histoire de ComboBox qui ne sont pas toujours faciles à gérer (loin s'en faut) et que l'on est souvent amenés à utiliser sur une feuille qui tient la route du point de vue ergonomique (pourquoi se servir d'Excel si on n'utilise pas ces trucs-là ?), c'est que lorsque on gère le ComboBox via une macro, il faut faire attention, s'il avait été paramétré auparavant, de purger certaines de ses propriétés, comme ce fut le cas en l'occurrence.

Bonne soirée et merci de vous être intéressé à mon fil.
 

Si...

XLDnaute Barbatruc
Re : Créer une liste pour un ComboBox dans un USF

salut

du diagnostic à la remédiation !

Les méthodes qu'on t'a indiquées (AddItem, Liste) fonctionnent sans problème.

A une seule condition : que la propriété RowSource de la ComboBox ne soit pas renseignée...
A+

Pas tout à fait d'accord, ci-joint un exemple où ".List" et ".AddItem" peuvent cohabiter sans problème avec "RowSource" !
 

Pièces jointes

  • Combo & RowSource.xls
    207.5 KB · Affichages: 50

Discussions similaires