ComboBox.....le mystère

  • Initiateur de la discussion Initiateur de la discussion Fanfan68
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

Fanfan68

Guest
Bonjour à toutes et à tous

Voici mon souci mystèrieux :

J'ai sur un form, une comboBox nommée 'Entreprise', la source qui alimente cette combo, se trouve sur une feuille nommée 'Base'.

Le code que j'ai mis dans l'initialize de mon userform est le suivant

Me.Entreprises.RowSource = 'Base!A1:A' & Sheets('Base').Cells(1, 1).End(xlDown).Row

Résultat, quand je lance mon userforme, dans ma combo, se trouve toutes les données de ma colonne A(sans les vides), de ma feuille 'Base'

Donc, pas de soucis, par contre, la ou je ne comprend plus rien, c'est que si au lieu de passer par un userform, je souhaite mettre directement une combo sur ma feuille('Liste') et que je met dans l'activate de cette feuille, le code suivant :

ComboBox1.RowSource = 'Base!A1:A' & Sheets('Base').Cells(1, 1).End(xlDown).Row

Cela ne fonctionne pas, ça plante et je n'arrive pas à trouver un code valable équivalent à celui de mon userform

Merci d'avance
 
Bonjour Fanfan, Hervé, bonjour le forum,

Tout comme Hervé je n'aime guère la methode RowSource. Mais pour une Combobox directement dans la feuille je ne vois pas comment faire autrement... Mais, là ou l'équipe à Bilou est très forte, c'est que la syntaxe est différente. Il faut écrire : ListFillRange au lieu de RowSource.

ComboBox1.ListFillRange = 'Base!A1:A' & Sheets('Base').Cells(1, 1).End(xlDown).Row
 
re fanfan, salut ami robert 🙂

Content de te croiser robert.

Je voulais simplement préciser que la méthode list fonctionne aussi avec une combobox placer dans une feuille.

par contre fanfan, ne confondrais-tu pas les combobox de la boite à outils controles, avec celles de la barre d'outil formulaire.

en pièce jointe une petite démo.

salut


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

Pièces jointes

Bonjour Fanfan, Hervé, bonjour le forum,

Hervé je t'avoue que je ne comprends pas car comme Fanfan quand j'ai testé ton code ça ne marchait pas (même erreur) alors j'ai pensé que tu avais fait une petite erreur et j'ai remplacé .Value par .Row. Toujours la même erreur...

J'ouvre donc ta pièce jointe et je vois que ça marche mais si je remplace .Value par .Row ça ne marche plus...
Je ne comprends plus rien car il me semble que .Row serait plus approprié, d'ailleurs la combobox affiche des lignes vides ét aurait planté si en dernière cellule tu avait un nombre négatif.
 
Re-bonjour Hervé,

J'avoue que la, je suis largué, c'est vrai que ta liste fonctionne maintenant, comme l'a dit robert, la combo affiche les lignes vides, plante si il y a un nombre négatif sur la dernière ligne et plante également si tu mets du texte en dernière ligne.

Pour répondre à ta question, oui, j'ai bien pris une combobox de la boite à outils controles et non celles de
la barre d'outil formulaire.

Je te joint mon fichier(classeur2 dans le zip)

A bientôt [file name=Classeur1_20051118160307_20051118171327.zip size=17080]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1_20051118160307_20051118171327.zip[/file]
 

Pièces jointes

re fanfan, robert

Vous avez raison les amis, mon code buggait, il lui manquait un .row apres le xldown 😱

sans ce row, le code prenait le nombre de ligne indiquer dans la derniere cellule de la colonne A.

Ainsi, si vous mettiez 100 en cellule A10, vous vous retrouviez avec 100 lignes dans la combobox, d'ou les lignes vides et le bug sur un chiffre négatif ou du texte.

désolé.

Donc le code pour fanfan :

Private Sub Worksheet_Activate()
With Sheets('Base')
    ComboBox1.Clear
    ComboBox1.List = .Range('F2:F' & .Range('F2').End(xlDown).Row).Value
End With
End Sub

PS : attention, fanfan, le xldown induit que tu n'auras pas de ligne vide dans ta matrice, sinon : range('a65536').end(xlup).row).value

salut
 
Re-bonjour Hervé ou plutôt bonsoir,

Super, ça fonctionne maintenant, par contre si je mets dans les proprités Columnheads à true et que je mets quelque chose en F1, j'ai bien une ligne d'en-tête dans ma combo mais rien se s'y affiche, même chose si je rajoute la ligne directement dans le code.

Mais bon, ne t'embêtes pas avec ça, je suis déja content que cela fonctionne et je te remercie encore et te dis bravo pour ta persévérance.

A bientôt

Encore merci à toi Robert
 
Re-Re-bonsoir Hervé et Robert,

Au risque d'abuser, je voudrai profiter encore de vos compétences et de votre gentillesse.

Comment dois-je faire pour avoir le même résultat mais avec une combo à 2 colonnes avec des données qui seraient donc dans ma feuille 'base' colonnes F(départ F2) et G(Départ G2).

Merci encore
 
Bonjour fanfan, robert, le monde

fanfan, ne pas savoir ce qu'est une duvel, tu froles le sacrilège xldien.

Tu aurais pu le dire tout de suite que tu voulais des entetes à ta combobox, ca nous aurait permis de t'orienter plus facilement dès le début.

Car là, la méthode list, n'est plus bonne, elle interdit l'utilisation de la propriété columnheads.

Il faut donc revenir à la proposition initiale de robert (quelle clairvoyance, robert 😉 ), et utiliser la méthode listfillrange.

donc en pièce jointe ton fichier modifié.

salut

Private Sub Worksheet_Activate()
With Sheets('Base')
    ComboBox1.ColumnCount = 2
'nombre de colonne
    ComboBox1.ColumnHeads =
True 'entete
    ComboBox1.ListFillRange = 'Base!F2:G' & Sheets('Base').Cells(2, 6).End(xlDown).Row
End With
End Sub
[file name=Classeur2_20051119115451.zip size=9130]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur2_20051119115451.zip[/file]
 

Pièces jointes

Bonjour Hervé,

Ouffffffff! aprés mon petit écart, j'avais peur de ne plus avoir de réponses....

Merci pour ton aide Hervé, ça fonctionne et cela correspond exactement à ce que recherchais.

A bientôt...peut-être un jour devant une Duvel, qui sait ....
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
417
Réponses
15
Affichages
776
Réponses
38
Affichages
1 K
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
734
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
449
Retour