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
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
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)
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)
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
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
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 !