Combobox/Rowsource sous Excel (sans userform)

  • Initiateur de la discussion Initiateur de la discussion ben
  • 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 !

B

ben

Guest
Bonjour aux cracks du VBA (thierry particulièrement),

Je préfère préciser que je ne suis pas débutant, j ai déjà
fait un petit programme assez évolué par des userforms.

Le problème c est que là je travaille en VBA avec notamment
des combobox directement sous Excel (contrainte du boulot) et ça change tout. J ai fouillé dans ce forum et je ne crois pas que quelqu'un ait soulevé ce problème

Ainsi j ai mis les valeurs d initialisation (additem) des combobox dans le ThisWorkbook au lieu du traditionnel Private Sub userform_initialize puis sheets(« X »).activate. Sinon les données des combobox ne se
remplissent pas ou alors se remplissent autant de fois que on change la valeur de la combobox. Avec les AddItems (les combobox CBloc et CBmonth), ca marche parfaitement.

Le problème vient de ma combobox à données variables c est
à dire dont le contenu s adapte aux valeurs présentes dans
une colonne d excel et qui s arrête donc à la dernière
ligne remplie.


La formule ci dessous qui marche parfaitement sous une userform classique ne marche plus lorsqu on le place dans le ThisWorkbook :
Dim DerCell As String
DerCell = Sheets("Report").range("B16").End(xlDown).Address
Sheets("Report").CBact.RowSource = "B17:" & DerCell

Je vous remercie (beaucoup) pour votre aide éventuelle

PS : Je sais que vous n'aimez pas les fichiers joints mais
si vous en avez besoin, il ne fait que 27ko compressé.

PS2 : voilà le code complet :

>>>>dans ma feuille REPORT :

Private Sub CBloc_Change()

Dim Location As Variant

Location = CBloc.Value
range("Report!C7").Value = Location

End Sub

Private Sub CBmonth_Change()

Dim Month As Variant

Month = CBmonth.Value
range("Report!C8").Value = Month

End Sub

Private Sub CBact_Change()

Dim Activity As Variant

Activity = CBact.Value
range("Report!C9").Value = Activity

End Sub


>>>>> dans mon classeur THISWORKBOOK :

Private Sub Workbook_Open()

'Combo choix des loc
Sheets("Report").CBloc.AddItem ("Localizations")
Sheets("Report").CBloc.AddItem ("SGPM Paris")
Sheets("Report").CBloc.AddItem ("S.G. UK")
Sheets("Report").CBloc.AddItem ("Europe >")
Sheets("Report").CBloc.AddItem ("America >")
Sheets("Report").CBloc.AddItem ("Asia >")

'Combo choix du mois
Sheets("Report").CBmonth.AddItem ("Periods")
Sheets("Report").CBmonth.AddItem ("January")
Sheets("Report").CBmonth.AddItem ("February")
Sheets("Report").CBmonth.AddItem ("March")
Sheets("Report").CBmonth.AddItem ("April")
Sheets("Report").CBmonth.AddItem ("May")
Sheets("Report").CBmonth.AddItem ("June")
Sheets("Report").CBmonth.AddItem ("July")
Sheets("Report").CBmonth.AddItem ("August")
Sheets("Report").CBmonth.AddItem ("September")
Sheets("Report").CBmonth.AddItem ("October")
Sheets("Report").CBmonth.AddItem ("November")
Sheets("Report").CBmonth.AddItem ("December")

'Combo choix activities
Sheets("Report").Select

Dim LastCell As String
LastCell = range("Report!B15").End(xlDown).Address
CBact.RowSource = "Report!B16:" & LastCell

End Sub
 
Héhéhé Xavier !

C'est sympa... Bientôt... quand David aura dépassé ses problèmes servers et PHP, la partie membre permettra d'un peu plus avoir une communauté de personnes pour un peu se situer...

@+Thierry
 
Comme sur mon forum (dont je ne donnerais pas l'adresse afin de ne pas être accusé de pub), l'ambiance est très sympa ici.

Même si je n'ai pas de VBA à faire, je viendrais de temps en temps. En fait si je vais peut être avoir du VBA à faire vu que je développe des macros (simples) au boulot pour automatiser certaines tâches (je suis stagiaire).

Au fait je n'ai pas détruit mon clavier. Ouf ! je suis parti avant de le faire et ensuite quand je suis rentré chez moi, j'étais calmé. J'ai écouté un groupe de rock dans le train et ca m'a permis de me défoulé mentalement. D'ailleurs je vous donne l'adresse pour le télécharger, profitez en c'est gratuit et c'est bon :
http://julyforkings.com/music/normal_life_128kBit.mp3

Un grand merci à tous et certainement à la semaine prochaine pour de nouvelles aventures.
 
ça marche !!!

Donc finalement si je résume j'ai perdu une journée de boulot à cause d'un mot : RowSource au lieu de ListFillRange. Et encore heureusement que vous êtes là, sinon la semaine suivante ou au moins une partie aurait été perdu.

Merci, merci, merci.
 
- 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
3
Affichages
599
Réponses
3
Affichages
239
Réponses
2
Affichages
423
Retour