Bug combobox & rowsource [Résolu]

Ben_Co

XLDnaute Nouveau
Bonjour à tous,

J'ai un petit soucis concernant cette ligne de code : STAT.RowSource = "'" & sheetgenname & "'!plgstatut"


STAT : listbox
sheetgenname (variable) : nom de la feuille où se trouve la plage "plgstatut"
plgstatut : nom de la plage des statuts.


MESSAGE D'ERREUR
Erreur d'éxecution '424' : Objet requis.


J'aimerai qu'à l'initialisation de mon userform, la listbox s'actualise en fonction de la plage "plgstatut".


Je vous remercie d'avance,
Cordialement,
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Bug listbox & rowsource

Bonsoir à tous


Evites le Rowsource, et tu éviteras bien des déboires ;)
VB:
Private Sub UserForm_Initialize()
Dim p As Range
With Sheets(1)
    Set p = Range(.[A1], .[A65536].End(xlUp)) 'adapte nom de  la feuille et adresse de plage
End With
p.Name = "plgstatut"
STAT.List = Application.Transpose([plgstatut])
End Sub
 

Ben_Co

XLDnaute Nouveau
Re : Bug listbox & rowsource

Bonsoir et tout d'abord merci de ta réponse.

Le truc c'est que j'aimerai éviter de faire 6 lignes de plus PAR listbox (j'en ai pas mal). Du coup j'aimerai vraiment utiliser "plgstatut" qui est une plage déjà nommé et référencé dans la base de nom.

De plus le [A65536] n'est pas compatible avec les variables déjà définies et utilisées. Enfin je ne peux pas me permettre de laisser une case/colonne (ici je parle surtout de la colonne A) fixe. Le programme est entièrement malléable et ce petit détail pourrait faire le bugger en entier.



Pour info : Names.Add Name:="plgstatut", RefersTo:="='" & sheetgenname & "'!" & Range(firstrowstatut & ":" & lastrowstatut).Address

plgstatut : nom de la plage
sheetgenname (variable) : nom de la feuille
firstrowstatut : première case (ligne/colonne) de la plage
lastrowstatut : dernière case (ligne/colonne) de la plage
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Bug listbox & rowsource

Re


Lis sur le net pourquoi il est déconseillé d'utiliser Rowsource

Pour infos:
Names.Add Name:="plgstatut", RefersTo:="='" & sheetgenname & "'!" & Range(firstrowstatut & ":" & lastrowstatut).Address
me semble légèrement plus long que:
p.Name = "plgstatut"
Enfin pour terminer
Le code que je te proposais répondait à ceci

J'aimerai qu'à l'initialisation de mon userform, la listbox s'actualise en fonction de la plage "plgstatut".
Il suffit d'adapter en conséquence ;)

Le programme est entièrement malléable et ce petit détail pourrait faire le bugger en entier.
Le bug est déjà là comme l'indique ton titre

Chez moi avec mon exemple pas de bug.

Et que ce soit dans ton code ou le mien, une ligne = une ligne
STAT.List = Application.Transpose([plgstatut]) ' 1 ligne
STAT.Rowsource=bug '1 ligne



PS: Si tu avais joint un fichier exemple, il serait plus simple de faire des tests.


 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Bug listbox & rowsource

Re

Si vraiment 6 lignes te gênent, désormais, il n'y en a plus que deux ;)
Code:
Private Sub UserForm_Initialize()
Dim p As Range: Set p = Sheets(1).Range(Sheets(1).[A1], Sheets(1).[A65536].End(xlUp)): p.Name = "plgstatut"
ListBox1.List = [plgstatut].Value
End Sub
PS: Tout l'heure, je m'étais égaré avec mon Application.Transpose ( l'heure tardive sans doute)
 
Dernière édition:

Ben_Co

XLDnaute Nouveau
Re : Bug combobox & rowsource

Re,

Vraiment merci de l'intérêt que tu portes à ce sujet. Il se fait tard je vais aller dormir, on peut en reparler demain si t'es ok.

Ps : j'me suis trompé dans l'intitulé c'est pas listbox mais combobox.

Bonne nuit
 

Staple1600

XLDnaute Barbatruc
Re : Bug combobox & rowsource

Re


ComboBox ou ListBox même combat ! ;)
Code:
Private Sub UserForm_Initialize()
Dim p As Range: Set p = Sheets(1).Range(Sheets(1).[A1], Sheets(1).[A65536].End(xlUp)): p.Name = "plgstatut"
ListBox1.List = [plgstatut].Value
ComboBox1.List = [plgstatut].Value
End Sub
Mais tu as raison.
Allez zou, sous la couette
(Euh enfin, chacun sous la sienne)

A demain ou ce week-end
 

Ben_Co

XLDnaute Nouveau
Re : Bug combobox & rowsource

Re,

Alors je viens de trouver la solution a l'instant.


Pour ceux qui auraient le même problème dans le futur :

Si vous travaillez dans un module il faut mettre le nom de votre userform devant (et pas Me.). Dans mon cas la ligne de code est donc : SAISIE.STAT.RowSource = "'" & sheetgenname & "'!plgstatut"

SAISIE : nom de mon userform
STAT : nom de ma combobox
sheetgenname (variable) : nom de ma feuille
plgstatut (variable): nom de la plage


Encore merci staple pour ton aide!
Bonne nuit
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Bug combobox & rowsource [Résolu]

Re


Tu verras un jour tu regretteras l'emploi de Rowsource...
(Mais bon cela va pas m’empêcher d'aller faire mon dodo (et/ou de le troubler) ;) )

PS: Je ne vois nulle part trace de Me dans ton premier message
Ni d'ailleurs de PJ ou de code VBA complet
Tu me diras cela m'aurait peut-être fait me coucher plus tôt mais il est trop tard ;)
 
Dernière édition:

Ben_Co

XLDnaute Nouveau
Re : Bug combobox & rowsource [Résolu]

Pas de trace car quand j'avais essayé ça ne marchait pas (et pour cause). Je croyais donc que ça n’influençait pas la ligne.

J'ai pas mit de PJ ni le code complet car inutile à la compréhension de mon problème. Il portait sur une seule ligne et je donnais tous les détails des variables/noms.




Fin' bref' un problème de résolu, dix de retrouvés. Je viens à peine de résoudre celui-ci que maintenant je bute sur :

Private Sub SAISIE_Initialize ()
...
End sub

qui ne se lance pas au démarrage du userform (cette macro se situe dans le module1).


Bon cette fois ci je vais vraiment me coucher.
Bonne nuit !
 

Staple1600

XLDnaute Barbatruc
Re : Bug combobox & rowsource [Résolu]

Bonsoir à tous

Ben_Co
Cette macro ne devrait pas se situé dans un module.
Comme tous les Initialize des Userforms de France et de Navarre.
 

Discussions similaires


Haut Bas