bonjour à tous
j'ai modifié la propriété multiselect de ma listbox mais du coup des actions
que je faisais avant sur double click qui devait récupérer les données de ma
listbox ne fonctionne plus. j'ai compris qu'avec la propriété mulselect on ne
peut plus agir comme d'ahabitude grâce aux autres messages sur le sujet.
Cependant je n'arrive pas à modifier mon programme.
pouvez vous m'aidez??
programme qui coince::
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
chemin
'on prend les données de la deuxième colonne de listbox si la ligne est non
vide alors
'elle s'ouvre grâce au chemin
statut = ListBox1.Column(0) <-----------------ICI
FicheProjet = ListBox1.Column(4)
If statut = "Actif" Then
Workbooks.Open (route & FicheProjet & ".xls")
'copie des trigrammes dans la feuille données
Workbooks(FicheProjet).Worksheets("données").Range("K3:K40").Clear
Workbooks("Charge_V1").Worksheets("Personne").Range("trigramme").Copy
UserForm1.Hide
Unload UserForm1
'si la ligne est vide ce message s'affiche
Else: MsgBox "Ce projet est terminé!", vbInformation
End If
End Sub
initialisation de ma listbox::
Sub InitialerListBox()
Dim Tblo As Variant
With Worksheets("projets")
Set Rg = .Range("source_liste")
Tblo = Rg
End With
With Me.ListBox1
.ColumnCount = Rg.Columns.Count
.List = Tblo
.ColumnHeads = True
.ListStyle = fmListStyleOption
.MultiSelect = 1
End With
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Maud,
Je n'ai pas tout compris ton code et ce que tu voulais faire...mais il y a un truc qui facilite drôlement la vie lorsque l'on utiliser un combobox ou listbox avec plusieurs colonnes.
La propriété " BoundColumn " est habituellement défini à 1 c'est à dire lorsque l'on veut récupérer le contenu du contrôle par une ligne de code comme celle-ci : A = Me.listbox1.value , nous récupérons la valeur de la colonne 1 affichée dans le contrôle.
Cependant, si pour une raison particulière c'est la colonne 2 ou 3 qui nous intéresse, il est possible de modifier cette propriété en conséquence BoundColumn = 2 ou 3 et par la même ligne de code que précédemment, obtenir l'information directement.
'modifie la colonne liée Me.ListBox1.BoundColumn = 3 'affiche le résultat (colonne3) de la valeur de l'item sélectionné MsgBox Me.ListBox1.Value
Tu obtiens la même chose avec ce bout de code :
With Me.ListBox1 MsgBox .List(.ListIndex, 2) End With
Tu peux aussi écrire : Msgbox Me.Listbox.list(Me.listbox1.Listindex,2)
Salutations!
"Maud" a écrit dans le message de news: bonjour à tous j'ai modifié la propriété multiselect de ma listbox mais du coup des actions que je faisais avant sur double click qui devait récupérer les données de ma listbox ne fonctionne plus. j'ai compris qu'avec la propriété mulselect on ne peut plus agir comme d'ahabitude grâce aux autres messages sur le sujet. Cependant je n'arrive pas à modifier mon programme. pouvez vous m'aidez??
programme qui coince:: Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) chemin 'on prend les données de la deuxième colonne de listbox si la ligne est non vide alors 'elle s'ouvre grâce au chemin statut = ListBox1.Column(0) <-----------------ICI
FicheProjet = ListBox1.Column(4) If statut = "Actif" Then Workbooks.Open (route & FicheProjet & ".xls")
'copie des trigrammes dans la feuille données Workbooks(FicheProjet).Worksheets("données").Range("K3:K40").Clear Workbooks("Charge_V1").Worksheets("Personne").Range("trigramme").Copy
UserForm1.Hide Unload UserForm1 'si la ligne est vide ce message s'affiche Else: MsgBox "Ce projet est terminé!", vbInformation End If
End Sub
initialisation de ma listbox:: Sub InitialerListBox()
Dim Tblo As Variant
With Worksheets("projets") Set Rg = .Range("source_liste") Tblo = Rg End With With Me.ListBox1 .ColumnCount = Rg.Columns.Count .List = Tblo .ColumnHeads = True .ListStyle = fmListStyleOption .MultiSelect = 1 End With End Sub
merci d'avance ;-)
Bonjour Maud,
Je n'ai pas tout compris ton code et ce que tu voulais faire...mais il y a un truc qui facilite drôlement la vie lorsque l'on
utiliser un combobox ou listbox avec plusieurs colonnes.
La propriété " BoundColumn " est habituellement défini à 1 c'est à dire lorsque l'on veut récupérer le contenu du contrôle par une
ligne de code comme celle-ci : A = Me.listbox1.value , nous récupérons la valeur de la colonne 1 affichée dans le contrôle.
Cependant, si pour une raison particulière c'est la colonne 2 ou 3 qui nous intéresse, il est possible de modifier cette propriété
en conséquence BoundColumn = 2 ou 3 et par la même ligne de code que précédemment, obtenir l'information directement.
'modifie la colonne liée
Me.ListBox1.BoundColumn = 3
'affiche le résultat (colonne3) de la valeur de l'item sélectionné
MsgBox Me.ListBox1.Value
Tu obtiens la même chose avec ce bout de code :
With Me.ListBox1
MsgBox .List(.ListIndex, 2)
End With
Tu peux aussi écrire :
Msgbox Me.Listbox.list(Me.listbox1.Listindex,2)
Salutations!
"Maud" <Maud@discussions.microsoft.com> a écrit dans le message de news: 401BFC64-4399-4187-ABCB-980AFC379369@microsoft.com...
bonjour à tous
j'ai modifié la propriété multiselect de ma listbox mais du coup des actions
que je faisais avant sur double click qui devait récupérer les données de ma
listbox ne fonctionne plus. j'ai compris qu'avec la propriété mulselect on ne
peut plus agir comme d'ahabitude grâce aux autres messages sur le sujet.
Cependant je n'arrive pas à modifier mon programme.
pouvez vous m'aidez??
programme qui coince::
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
chemin
'on prend les données de la deuxième colonne de listbox si la ligne est non
vide alors
'elle s'ouvre grâce au chemin
statut = ListBox1.Column(0) <-----------------ICI
FicheProjet = ListBox1.Column(4)
If statut = "Actif" Then
Workbooks.Open (route & FicheProjet & ".xls")
'copie des trigrammes dans la feuille données
Workbooks(FicheProjet).Worksheets("données").Range("K3:K40").Clear
Workbooks("Charge_V1").Worksheets("Personne").Range("trigramme").Copy
UserForm1.Hide
Unload UserForm1
'si la ligne est vide ce message s'affiche
Else: MsgBox "Ce projet est terminé!", vbInformation
End If
End Sub
initialisation de ma listbox::
Sub InitialerListBox()
Dim Tblo As Variant
With Worksheets("projets")
Set Rg = .Range("source_liste")
Tblo = Rg
End With
With Me.ListBox1
.ColumnCount = Rg.Columns.Count
.List = Tblo
.ColumnHeads = True
.ListStyle = fmListStyleOption
.MultiSelect = 1
End With
End Sub
Je n'ai pas tout compris ton code et ce que tu voulais faire...mais il y a un truc qui facilite drôlement la vie lorsque l'on utiliser un combobox ou listbox avec plusieurs colonnes.
La propriété " BoundColumn " est habituellement défini à 1 c'est à dire lorsque l'on veut récupérer le contenu du contrôle par une ligne de code comme celle-ci : A = Me.listbox1.value , nous récupérons la valeur de la colonne 1 affichée dans le contrôle.
Cependant, si pour une raison particulière c'est la colonne 2 ou 3 qui nous intéresse, il est possible de modifier cette propriété en conséquence BoundColumn = 2 ou 3 et par la même ligne de code que précédemment, obtenir l'information directement.
'modifie la colonne liée Me.ListBox1.BoundColumn = 3 'affiche le résultat (colonne3) de la valeur de l'item sélectionné MsgBox Me.ListBox1.Value
Tu obtiens la même chose avec ce bout de code :
With Me.ListBox1 MsgBox .List(.ListIndex, 2) End With
Tu peux aussi écrire : Msgbox Me.Listbox.list(Me.listbox1.Listindex,2)
Salutations!
"Maud" a écrit dans le message de news: bonjour à tous j'ai modifié la propriété multiselect de ma listbox mais du coup des actions que je faisais avant sur double click qui devait récupérer les données de ma listbox ne fonctionne plus. j'ai compris qu'avec la propriété mulselect on ne peut plus agir comme d'ahabitude grâce aux autres messages sur le sujet. Cependant je n'arrive pas à modifier mon programme. pouvez vous m'aidez??
programme qui coince:: Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) chemin 'on prend les données de la deuxième colonne de listbox si la ligne est non vide alors 'elle s'ouvre grâce au chemin statut = ListBox1.Column(0) <-----------------ICI
FicheProjet = ListBox1.Column(4) If statut = "Actif" Then Workbooks.Open (route & FicheProjet & ".xls")
'copie des trigrammes dans la feuille données Workbooks(FicheProjet).Worksheets("données").Range("K3:K40").Clear Workbooks("Charge_V1").Worksheets("Personne").Range("trigramme").Copy
UserForm1.Hide Unload UserForm1 'si la ligne est vide ce message s'affiche Else: MsgBox "Ce projet est terminé!", vbInformation End If
End Sub
initialisation de ma listbox:: Sub InitialerListBox()
Dim Tblo As Variant
With Worksheets("projets") Set Rg = .Range("source_liste") Tblo = Rg End With With Me.ListBox1 .ColumnCount = Rg.Columns.Count .List = Tblo .ColumnHeads = True .ListStyle = fmListStyleOption .MultiSelect = 1 End With End Sub
merci d'avance ;-)
anonymousA
bonjour,
Sur tes explications, il me semble qu'un problème va se poser du fait que Maud affecte la propriété multiselect à son listbox.
A+
Bonjour Maud,
Je n'ai pas tout compris ton code et ce que tu voulais faire...mais il y a un truc qui facilite drôlement la vie lorsque l'on utiliser un combobox ou listbox avec plusieurs colonnes.
La propriété " BoundColumn " est habituellement défini à 1 c'est à dire lorsque l'on veut récupérer le contenu du contrôle par une ligne de code comme celle-ci : A = Me.listbox1.value , nous récupérons la valeur de la colonne 1 affichée dans le contrôle.
Cependant, si pour une raison particulière c'est la colonne 2 ou 3 qui nous intéresse, il est possible de modifier cette propriété en conséquence BoundColumn = 2 ou 3 et par la même ligne de code que précédemment, obtenir l'information directement.
'modifie la colonne liée Me.ListBox1.BoundColumn = 3 'affiche le résultat (colonne3) de la valeur de l'item sélectionné MsgBox Me.ListBox1.Value
Tu obtiens la même chose avec ce bout de code :
With Me.ListBox1 MsgBox .List(.ListIndex, 2) End With
Tu peux aussi écrire : Msgbox Me.Listbox.list(Me.listbox1.Listindex,2)
Salutations!
"Maud" a écrit dans le message de news: bonjour à tous j'ai modifié la propriété multiselect de ma listbox mais du coup des actions que je faisais avant sur double click qui devait récupérer les données de ma listbox ne fonctionne plus. j'ai compris qu'avec la propriété mulselect on ne peut plus agir comme d'ahabitude grâce aux autres messages sur le sujet. Cependant je n'arrive pas à modifier mon programme. pouvez vous m'aidez??
programme qui coince:: Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) chemin 'on prend les données de la deuxième colonne de listbox si la ligne est non vide alors 'elle s'ouvre grâce au chemin statut = ListBox1.Column(0) <-----------------ICI
FicheProjet = ListBox1.Column(4) If statut = "Actif" Then Workbooks.Open (route & FicheProjet & ".xls")
'copie des trigrammes dans la feuille données Workbooks(FicheProjet).Worksheets("données").Range("K3:K40").Clear Workbooks("Charge_V1").Worksheets("Personne").Range("trigramme").Copy
UserForm1.Hide Unload UserForm1 'si la ligne est vide ce message s'affiche Else: MsgBox "Ce projet est terminé!", vbInformation End If
End Sub
initialisation de ma listbox:: Sub InitialerListBox()
Dim Tblo As Variant
With Worksheets("projets") Set Rg = .Range("source_liste") Tblo = Rg End With With Me.ListBox1 .ColumnCount = Rg.Columns.Count .List = Tblo .ColumnHeads = True .ListStyle = fmListStyleOption .MultiSelect = 1 End With End Sub
merci d'avance ;-)
bonjour,
Sur tes explications, il me semble qu'un problème va se poser du fait que
Maud affecte la propriété multiselect à son listbox.
A+
Bonjour Maud,
Je n'ai pas tout compris ton code et ce que tu voulais faire...mais il y a un truc qui facilite drôlement la vie lorsque l'on
utiliser un combobox ou listbox avec plusieurs colonnes.
La propriété " BoundColumn " est habituellement défini à 1 c'est à dire lorsque l'on veut récupérer le contenu du contrôle par une
ligne de code comme celle-ci : A = Me.listbox1.value , nous récupérons la valeur de la colonne 1 affichée dans le contrôle.
Cependant, si pour une raison particulière c'est la colonne 2 ou 3 qui nous intéresse, il est possible de modifier cette propriété
en conséquence BoundColumn = 2 ou 3 et par la même ligne de code que précédemment, obtenir l'information directement.
'modifie la colonne liée
Me.ListBox1.BoundColumn = 3
'affiche le résultat (colonne3) de la valeur de l'item sélectionné
MsgBox Me.ListBox1.Value
Tu obtiens la même chose avec ce bout de code :
With Me.ListBox1
MsgBox .List(.ListIndex, 2)
End With
Tu peux aussi écrire :
Msgbox Me.Listbox.list(Me.listbox1.Listindex,2)
Salutations!
"Maud" <Maud@discussions.microsoft.com> a écrit dans le message de news: 401BFC64-4399-4187-ABCB-980AFC379369@microsoft.com...
bonjour à tous
j'ai modifié la propriété multiselect de ma listbox mais du coup des actions
que je faisais avant sur double click qui devait récupérer les données de ma
listbox ne fonctionne plus. j'ai compris qu'avec la propriété mulselect on ne
peut plus agir comme d'ahabitude grâce aux autres messages sur le sujet.
Cependant je n'arrive pas à modifier mon programme.
pouvez vous m'aidez??
programme qui coince::
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
chemin
'on prend les données de la deuxième colonne de listbox si la ligne est non
vide alors
'elle s'ouvre grâce au chemin
statut = ListBox1.Column(0) <-----------------ICI
FicheProjet = ListBox1.Column(4)
If statut = "Actif" Then
Workbooks.Open (route & FicheProjet & ".xls")
'copie des trigrammes dans la feuille données
Workbooks(FicheProjet).Worksheets("données").Range("K3:K40").Clear
Workbooks("Charge_V1").Worksheets("Personne").Range("trigramme").Copy
UserForm1.Hide
Unload UserForm1
'si la ligne est vide ce message s'affiche
Else: MsgBox "Ce projet est terminé!", vbInformation
End If
End Sub
initialisation de ma listbox::
Sub InitialerListBox()
Dim Tblo As Variant
With Worksheets("projets")
Set Rg = .Range("source_liste")
Tblo = Rg
End With
With Me.ListBox1
.ColumnCount = Rg.Columns.Count
.List = Tblo
.ColumnHeads = True
.ListStyle = fmListStyleOption
.MultiSelect = 1
End With
End Sub
Sur tes explications, il me semble qu'un problème va se poser du fait que Maud affecte la propriété multiselect à son listbox.
A+
Bonjour Maud,
Je n'ai pas tout compris ton code et ce que tu voulais faire...mais il y a un truc qui facilite drôlement la vie lorsque l'on utiliser un combobox ou listbox avec plusieurs colonnes.
La propriété " BoundColumn " est habituellement défini à 1 c'est à dire lorsque l'on veut récupérer le contenu du contrôle par une ligne de code comme celle-ci : A = Me.listbox1.value , nous récupérons la valeur de la colonne 1 affichée dans le contrôle.
Cependant, si pour une raison particulière c'est la colonne 2 ou 3 qui nous intéresse, il est possible de modifier cette propriété en conséquence BoundColumn = 2 ou 3 et par la même ligne de code que précédemment, obtenir l'information directement.
'modifie la colonne liée Me.ListBox1.BoundColumn = 3 'affiche le résultat (colonne3) de la valeur de l'item sélectionné MsgBox Me.ListBox1.Value
Tu obtiens la même chose avec ce bout de code :
With Me.ListBox1 MsgBox .List(.ListIndex, 2) End With
Tu peux aussi écrire : Msgbox Me.Listbox.list(Me.listbox1.Listindex,2)
Salutations!
"Maud" a écrit dans le message de news: bonjour à tous j'ai modifié la propriété multiselect de ma listbox mais du coup des actions que je faisais avant sur double click qui devait récupérer les données de ma listbox ne fonctionne plus. j'ai compris qu'avec la propriété mulselect on ne peut plus agir comme d'ahabitude grâce aux autres messages sur le sujet. Cependant je n'arrive pas à modifier mon programme. pouvez vous m'aidez??
programme qui coince:: Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) chemin 'on prend les données de la deuxième colonne de listbox si la ligne est non vide alors 'elle s'ouvre grâce au chemin statut = ListBox1.Column(0) <-----------------ICI
FicheProjet = ListBox1.Column(4) If statut = "Actif" Then Workbooks.Open (route & FicheProjet & ".xls")
'copie des trigrammes dans la feuille données Workbooks(FicheProjet).Worksheets("données").Range("K3:K40").Clear Workbooks("Charge_V1").Worksheets("Personne").Range("trigramme").Copy
UserForm1.Hide Unload UserForm1 'si la ligne est vide ce message s'affiche Else: MsgBox "Ce projet est terminé!", vbInformation End If
End Sub
initialisation de ma listbox:: Sub InitialerListBox()
Dim Tblo As Variant
With Worksheets("projets") Set Rg = .Range("source_liste") Tblo = Rg End With With Me.ListBox1 .ColumnCount = Rg.Columns.Count .List = Tblo .ColumnHeads = True .ListStyle = fmListStyleOption .MultiSelect = 1 End With End Sub
merci d'avance ;-)
Maud
Merci michDenis la première ne fonctionnait pas (à cause de multiselect je pense) mais la seconde oui!! Merci beaucoup
Bonjour Maud,
Je n'ai pas tout compris ton code et ce que tu voulais faire...mais il y a un truc qui facilite drôlement la vie lorsque l'on utiliser un combobox ou listbox avec plusieurs colonnes.
La propriété " BoundColumn " est habituellement défini à 1 c'est à dire lorsque l'on veut récupérer le contenu du contrôle par une ligne de code comme celle-ci : A = Me.listbox1.value , nous récupérons la valeur de la colonne 1 affichée dans le contrôle.
Cependant, si pour une raison particulière c'est la colonne 2 ou 3 qui nous intéresse, il est possible de modifier cette propriété en conséquence BoundColumn = 2 ou 3 et par la même ligne de code que précédemment, obtenir l'information directement.
'modifie la colonne liée Me.ListBox1.BoundColumn = 3 'affiche le résultat (colonne3) de la valeur de l'item sélectionné MsgBox Me.ListBox1.Value
Tu obtiens la même chose avec ce bout de code :
With Me.ListBox1 MsgBox .List(.ListIndex, 2) End With
Tu peux aussi écrire : Msgbox Me.Listbox.list(Me.listbox1.Listindex,2)
Salutations!
"Maud" a écrit dans le message de news: bonjour à tous j'ai modifié la propriété multiselect de ma listbox mais du coup des actions que je faisais avant sur double click qui devait récupérer les données de ma listbox ne fonctionne plus. j'ai compris qu'avec la propriété mulselect on ne peut plus agir comme d'ahabitude grâce aux autres messages sur le sujet. Cependant je n'arrive pas à modifier mon programme. pouvez vous m'aidez??
programme qui coince:: Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) chemin 'on prend les données de la deuxième colonne de listbox si la ligne est non vide alors 'elle s'ouvre grâce au chemin statut = ListBox1.Column(0) <-----------------ICI
FicheProjet = ListBox1.Column(4) If statut = "Actif" Then Workbooks.Open (route & FicheProjet & ".xls")
'copie des trigrammes dans la feuille données Workbooks(FicheProjet).Worksheets("données").Range("K3:K40").Clear Workbooks("Charge_V1").Worksheets("Personne").Range("trigramme").Copy
UserForm1.Hide Unload UserForm1 'si la ligne est vide ce message s'affiche Else: MsgBox "Ce projet est terminé!", vbInformation End If
End Sub
initialisation de ma listbox:: Sub InitialerListBox()
Dim Tblo As Variant
With Worksheets("projets") Set Rg = .Range("source_liste") Tblo = Rg End With With Me.ListBox1 .ColumnCount = Rg.Columns.Count .List = Tblo .ColumnHeads = True .ListStyle = fmListStyleOption .MultiSelect = 1 End With End Sub
merci d'avance ;-)
Merci michDenis
la première ne fonctionnait pas (à cause de multiselect je pense) mais la
seconde oui!!
Merci beaucoup
Bonjour Maud,
Je n'ai pas tout compris ton code et ce que tu voulais faire...mais il y a un truc qui facilite drôlement la vie lorsque l'on
utiliser un combobox ou listbox avec plusieurs colonnes.
La propriété " BoundColumn " est habituellement défini à 1 c'est à dire lorsque l'on veut récupérer le contenu du contrôle par une
ligne de code comme celle-ci : A = Me.listbox1.value , nous récupérons la valeur de la colonne 1 affichée dans le contrôle.
Cependant, si pour une raison particulière c'est la colonne 2 ou 3 qui nous intéresse, il est possible de modifier cette propriété
en conséquence BoundColumn = 2 ou 3 et par la même ligne de code que précédemment, obtenir l'information directement.
'modifie la colonne liée
Me.ListBox1.BoundColumn = 3
'affiche le résultat (colonne3) de la valeur de l'item sélectionné
MsgBox Me.ListBox1.Value
Tu obtiens la même chose avec ce bout de code :
With Me.ListBox1
MsgBox .List(.ListIndex, 2)
End With
Tu peux aussi écrire :
Msgbox Me.Listbox.list(Me.listbox1.Listindex,2)
Salutations!
"Maud" <Maud@discussions.microsoft.com> a écrit dans le message de news: 401BFC64-4399-4187-ABCB-980AFC379369@microsoft.com...
bonjour à tous
j'ai modifié la propriété multiselect de ma listbox mais du coup des actions
que je faisais avant sur double click qui devait récupérer les données de ma
listbox ne fonctionne plus. j'ai compris qu'avec la propriété mulselect on ne
peut plus agir comme d'ahabitude grâce aux autres messages sur le sujet.
Cependant je n'arrive pas à modifier mon programme.
pouvez vous m'aidez??
programme qui coince::
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
chemin
'on prend les données de la deuxième colonne de listbox si la ligne est non
vide alors
'elle s'ouvre grâce au chemin
statut = ListBox1.Column(0) <-----------------ICI
FicheProjet = ListBox1.Column(4)
If statut = "Actif" Then
Workbooks.Open (route & FicheProjet & ".xls")
'copie des trigrammes dans la feuille données
Workbooks(FicheProjet).Worksheets("données").Range("K3:K40").Clear
Workbooks("Charge_V1").Worksheets("Personne").Range("trigramme").Copy
UserForm1.Hide
Unload UserForm1
'si la ligne est vide ce message s'affiche
Else: MsgBox "Ce projet est terminé!", vbInformation
End If
End Sub
initialisation de ma listbox::
Sub InitialerListBox()
Dim Tblo As Variant
With Worksheets("projets")
Set Rg = .Range("source_liste")
Tblo = Rg
End With
With Me.ListBox1
.ColumnCount = Rg.Columns.Count
.List = Tblo
.ColumnHeads = True
.ListStyle = fmListStyleOption
.MultiSelect = 1
End With
End Sub
Merci michDenis la première ne fonctionnait pas (à cause de multiselect je pense) mais la seconde oui!! Merci beaucoup
Bonjour Maud,
Je n'ai pas tout compris ton code et ce que tu voulais faire...mais il y a un truc qui facilite drôlement la vie lorsque l'on utiliser un combobox ou listbox avec plusieurs colonnes.
La propriété " BoundColumn " est habituellement défini à 1 c'est à dire lorsque l'on veut récupérer le contenu du contrôle par une ligne de code comme celle-ci : A = Me.listbox1.value , nous récupérons la valeur de la colonne 1 affichée dans le contrôle.
Cependant, si pour une raison particulière c'est la colonne 2 ou 3 qui nous intéresse, il est possible de modifier cette propriété en conséquence BoundColumn = 2 ou 3 et par la même ligne de code que précédemment, obtenir l'information directement.
'modifie la colonne liée Me.ListBox1.BoundColumn = 3 'affiche le résultat (colonne3) de la valeur de l'item sélectionné MsgBox Me.ListBox1.Value
Tu obtiens la même chose avec ce bout de code :
With Me.ListBox1 MsgBox .List(.ListIndex, 2) End With
Tu peux aussi écrire : Msgbox Me.Listbox.list(Me.listbox1.Listindex,2)
Salutations!
"Maud" a écrit dans le message de news: bonjour à tous j'ai modifié la propriété multiselect de ma listbox mais du coup des actions que je faisais avant sur double click qui devait récupérer les données de ma listbox ne fonctionne plus. j'ai compris qu'avec la propriété mulselect on ne peut plus agir comme d'ahabitude grâce aux autres messages sur le sujet. Cependant je n'arrive pas à modifier mon programme. pouvez vous m'aidez??
programme qui coince:: Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) chemin 'on prend les données de la deuxième colonne de listbox si la ligne est non vide alors 'elle s'ouvre grâce au chemin statut = ListBox1.Column(0) <-----------------ICI
FicheProjet = ListBox1.Column(4) If statut = "Actif" Then Workbooks.Open (route & FicheProjet & ".xls")
'copie des trigrammes dans la feuille données Workbooks(FicheProjet).Worksheets("données").Range("K3:K40").Clear Workbooks("Charge_V1").Worksheets("Personne").Range("trigramme").Copy
UserForm1.Hide Unload UserForm1 'si la ligne est vide ce message s'affiche Else: MsgBox "Ce projet est terminé!", vbInformation End If
End Sub
initialisation de ma listbox:: Sub InitialerListBox()
Dim Tblo As Variant
With Worksheets("projets") Set Rg = .Range("source_liste") Tblo = Rg End With With Me.ListBox1 .ColumnCount = Rg.Columns.Count .List = Tblo .ColumnHeads = True .ListStyle = fmListStyleOption .MultiSelect = 1 End With End Sub