Listbox - manipulation

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Hervé
Le #6749831
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"
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


René Delcourt
Le #6750731
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"
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







René Delcourt
Le #6758081
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.
Publicité
Poster une réponse
Anonyme