ComboBox.....le mystère

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
 

Robert

XLDnaute Barbatruc
Repose en paix
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
 

Hervé

XLDnaute Barbatruc
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

  • Classeur1_20051118160307.zip
    8.4 KB · Affichages: 27

Robert

XLDnaute Barbatruc
Repose en paix
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.
 
F

Fanfan68

Guest
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

  • Classeur1_20051118160307_20051118171327.zip
    16.7 KB · Affichages: 19

Hervé

XLDnaute Barbatruc
re fanfan, robert

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

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
 
F

Fanfan68

Guest
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
 
F

Fanfan68

Guest
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
 

Hervé

XLDnaute Barbatruc
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

  • Classeur2_20051119115451.zip
    8.9 KB · Affichages: 32
F

Fanfan68

Guest
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 ....
 

Discussions similaires

Statistiques des forums

Discussions
312 391
Messages
2 087 954
Membres
103 685
dernier inscrit
janguypol