bonjour a vous tous
comment puisse faire pour qu'une listbox prennent en entêtes les entêtes de "A1:K1 des feuilles qui sont ouvertes a l'aide d'une combobox, en sachant que toutes les feuilles sont identiques.
cordialement
Pascal
Version imprimable
bonjour a vous tous
comment puisse faire pour qu'une listbox prennent en entêtes les entêtes de "A1:K1 des feuilles qui sont ouvertes a l'aide d'une combobox, en sachant que toutes les feuilles sont identiques.
cordialement
Pascal
Salut
:fleche:Dans les propriété de ta listbox, tu mets columnheaders à true
:fleche:Ensuite tu renseignes sa propriété SourceRow avec A2:K8 (bien sur il faudra adapter)
++
Qwaz
bonjour Qwazerty
merci de ta réponse qui me semble bien mais j'ai une erreur non répertorié a l'appui sur le bouton qui ouvre l'usf et la ligne de bug estje joint un fichier exempleCitation:
"userform1.show"
cordialement
Pascal
SAlut
Je suis en retard, mais ton erreur vient d'ici
++Code:Me.ListBox1.Clear
Qwaz
bonsoir Qwazerty
j'avais essayer justement avec =" " mais sans succès mais j'ai supprimé cette ligne et c'est parfait, mais la combobox qui se trouve dessous bug quand je veux ouvrir une feuile dans la listboxet débogage a la ligne duCitation:
erreur 70 permission refusée
merci pour ce qui est de ta solutionCode:sub essai()du module1
cordialement
Pascal
et il y as quoi dans cette sub ?
-----------------------------------------------------------------------
Je n'ouvre pas les pièces jointes.
bonjour bbil
voici le contenu de la sub
cordialementCode:UserForm1.ListBox1.List = ActiveSheet.Range("A2:L240").Value
Pascal
Salut
Essai plutôt quelque chose comme
Dans ce cas, si tu modifies le contenu des cellules le contenu de ta liste sera modifié. Si tu ne souhaites pas une telle liaison, il faudra boucler sur chaque cellule contenant les valeurs et les insérer une à une dans la listBox à l'aide de la méthode AddItem.Code:UserForm1.ListBox1.RowSource = ActiveSheet.Name & "!" & Range("A2:L240").Address
++
Qwaz
bonsoir Qwazerty
j'ai essayer le code modifié mais aucun changement, mais quand la page bug arrive en cliquant sur F8 cela m'envoie sur le code sur l'initialisation de l'usf
voila maintenant vous avez toutes les données et même le fichierCode:
1
2
3
4
5
6
7
8
9
10
11 Private Sub UserForm_Initialize() Me.ListBox1.Clear Dim Sh As Worksheet For Each Sh In ThisWorkbook.Worksheets Me.ComboBox1.AddItem Sh.Name Next ListBox1.ColumnCount = 9 ListBox1.ColumnWidths = "20;1;230;1;1;40;40;1;20" ListBox1.ColumnHeads = True ListBox1.RowSource = Range("A1:f" & Cells(Rows.Count, "a").End(xlUp).Row).Address End Sub
cordialement
Pascal
Salut
Attention au code présent dans UserForm_ActivateCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Private Sub UserForm_Initialize() Dim Sh As Worksheet 'Ce qui suit est utile uniquement si tu ne souhaites pas faire une laison avec des cellules 'Me.ListBox1.Clear 'For Each Sh In ThisWorkbook.Worksheets 'Me.ComboBox1.AddItem Sh.Name 'Next ListBox1.ColumnCount = 9 ListBox1.ColumnWidths = "20;1;230;1;1;40;40;1;20" 'Ici on fait la liaison avec les cellules qui nous interesse 'On commence le tableau à la ligne 2, la ligne 1 sera automatiquement prise en compte pour les entêtes ListBox1.RowSource = Range("A2:F" & Cells(Rows.Count, "A").End(xlUp).Row).Address End Sub
Dans cette configuration soit bien conscient que les modification faite sur la listebox sont répercutées dans ta feuille excel et vice versa ;)
++
Qwaz
bonsoir Qwazerty
merci de ta réponse mais maintenant dans l'initialisation il y a un activex qui manque, je remets le fichier modifié et tu vas constater si j'opère mal la transcription ou s'il y a autre chose ce n'est qu'une ébauche pour autre chose
Merci pour tout
Pascal
Salut
Que souhaites tu faire avec ce code exactement?
Je ne comprend pas, tu initialises ta listBox, lors de la création de ton UserForm (Initialize), en lui plaçant 9 colonnes et en liant sont contenu aux valeurs contenu dans une des feuille de ton classeur.Code:
1
2
3
4
5
6
7
8
9
10 Private Sub UserForm_Activate() Dim tableau As Variant ListBox1.ColumnCount = 6 ListBox1.ColumnHeads = True tableau = Sheets("feuil1").Range("a2:j" & Sheets("feuil1").Range("a65530").End(xlUp).Row) ListBox1.List = tableau UserForm1.Caption = "Sélection d'un article" End Sub
Et lorsque tu actives la UserForm (a chaque fois qu'elle prend le focus), tu redimensionnes de nouveau ta listBox pour qu'elle ne contienne que 6 colonnes... pourquoi l'initialiser à 9 colonnes?:koi:
Essai en enlevant tout le code contenu dans UserForm_Activate et dit nous
++
Qwaz
bonsoir Qwazerty
merci de ta réponse, en fait le code de l'activation de l'usf a été placé avant la venue de ton code en initializant et oubli :oops:de l'enlever comme tu vient de le dire:cry:
désolé pour tous les désagrément que j'ai causé a vos réponses qui était parfaite si je n'avais pas mélangé activate et initialize
maintenant qu'activate a disparu plus de problème
un très grand Merci
cordialement
Pascal