Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Listbox - manipulation

3 réponses
Avatar
René Delcourt
Bonjour,

Je ne m'y retrouve plus trop dans la manipulation des listbox.
J'ai une source de200 lignes sur 5 colonnes reprise dans un listbox qui
apparaît par événement.
J'aimerais :
Qu'à la première ouverture, rien ne soit sélectionner.
Qu'aux ouvertures suivantes, le focus (pas la sélection sinon plus moyen de
sélectionner!!!) soit, par défaut sur le choix précédent.
Récupérer dans 2 variables les valeurs des colonnes 1 et 2.
Merci de votre aide.
--
René Delcourt

3 réponses

Avatar
Hervé
Bonjour René,

Variable à mettre dans un module standard :
Public I As Integer
Public Ouvert As Boolean
Public ValColonne_1
Public ValColonne_2

Procs à mettre dans le module de la Form :
Private Sub UserForm_Initialize()
Dim Plage As Range
Dim J As Integer
Dim Col As String

With Worksheets("Feuil1")
Set Plage = .Range("A1:E" & _
.Range("E65536") _
.End(xlUp).Row)
End With

With ListBox1
.ColumnCount = Plage.Columns.Count
'largeur des colonnes 50 points
For J = 1 To Plage.Columns.Count
If Col = "" Then Col = "50": J = 2
Col = Col & ";50"
Next J
.ColumnWidths = Col
.RowSource = Plage.Address
If Ouvert = True Then
.ListIndex = I
End If
End With

Set Plage = Nothing
End Sub

Private Sub ListBox1_Click()
With ListBox1
I = .ListIndex
Ouvert = True
ValColonne_1 = .Column(0, .ListIndex)
ValColonne_2 = .Column(1, .ListIndex)
End With
End Sub

Hervé.



"René Delcourt" a écrit dans le message de news:

Bonjour,

Je ne m'y retrouve plus trop dans la manipulation des listbox.
J'ai une source de200 lignes sur 5 colonnes reprise dans un listbox qui
apparaît par événement.
J'aimerais :
Qu'à la première ouverture, rien ne soit sélectionner.
Qu'aux ouvertures suivantes, le focus (pas la sélection sinon plus moyen
de
sélectionner!!!) soit, par défaut sur le choix précédent.
Récupérer dans 2 variables les valeurs des colonnes 1 et 2.
Merci de votre aide.
--
René Delcourt


Avatar
René Delcourt
Merci, Hervé, de cette réponse que je n'attendais plus.
Je la teste lundi.
Bon dimanche
--
René Delcourt



Bonjour René,

Variable à mettre dans un module standard :
Public I As Integer
Public Ouvert As Boolean
Public ValColonne_1
Public ValColonne_2

Procs à mettre dans le module de la Form :
Private Sub UserForm_Initialize()
Dim Plage As Range
Dim J As Integer
Dim Col As String

With Worksheets("Feuil1")
Set Plage = .Range("A1:E" & _
.Range("E65536") _
.End(xlUp).Row)
End With

With ListBox1
.ColumnCount = Plage.Columns.Count
'largeur des colonnes 50 points
For J = 1 To Plage.Columns.Count
If Col = "" Then Col = "50": J = 2
Col = Col & ";50"
Next J
.ColumnWidths = Col
.RowSource = Plage.Address
If Ouvert = True Then
.ListIndex = I
End If
End With

Set Plage = Nothing
End Sub

Private Sub ListBox1_Click()
With ListBox1
I = .ListIndex
Ouvert = True
ValColonne_1 = .Column(0, .ListIndex)
ValColonne_2 = .Column(1, .ListIndex)
End With
End Sub

Hervé.



"René Delcourt" a écrit dans le message de news:

Bonjour,

Je ne m'y retrouve plus trop dans la manipulation des listbox.
J'ai une source de200 lignes sur 5 colonnes reprise dans un listbox qui
apparaît par événement.
J'aimerais :
Qu'à la première ouverture, rien ne soit sélectionner.
Qu'aux ouvertures suivantes, le focus (pas la sélection sinon plus moyen
de
sélectionner!!!) soit, par défaut sur le choix précédent.
Récupérer dans 2 variables les valeurs des colonnes 1 et 2.
Merci de votre aide.
--
René Delcourt







Avatar
René Delcourt
Bonjour Hervé,

Je viens d'effacer une lithanie inutile expliquant le non fonctionnement...
pour te dire que ça fonctionne à merveille; ma plage ne reprenait pas les
titres (A2:E65000) au lieu de A1:E65000.

Je te remercie pour l'effort.