Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/08/2011, 18h38   #1
Nouveau Membre du Club
 
Homme Daniel CARROUE
Retraité actif passionné
Inscription : janvier 2011
Messages : 75
Détails du profil
Informations personnelles :
Nom : Homme Daniel CARROUE
Localisation : France

Informations professionnelles :
Activité : Retraité actif passionné

Informations forums :
Inscription : janvier 2011
Messages : 75
Points : 31
Points : 31
Par défaut Listview éviter sélection par défaut

Bonjour,

J'utilise des listviews dans tous mes formulaires avec beaucoup de satisfaction. Néanmoins j'aimerai éliminer un petit détail :

L'affichage du listview sélectionne une ligne par défaut (le premier enregistrement de la table), et je voudrais l'éviter pour ne pas troubler l'opérateur. Je n'ai vu aucune propriété qui évite ce focus.

Cordialement
Daniel
danisoaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2011, 20h57   #2
Membre éclairé
 
Inscription : juillet 2011
Messages : 141
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 141
Points : 382
Points : 382
Par défaut Selection vs. focus dans une ListBox d'UserForm Excel VBA

Bonjour

1. Selection vs. focus d'un item d'une ListBox dans un UserForm

Citation:
Envoyé par danisoaz Voir le message
L'affichage du listview sélectionne une ligne par défaut (le premier enregistrement de la table)
J'ai créé un UserForm1 avec une ListBox1 (je n'ai pas de ListView par défaut) et le bouton "OK" CmdBtnOk.
Code :
1
2
3
4
5
6
7
8
9
10
11
Option Explicit ' Selection vs. focus d'un item d'une ListBox dans un UserForm
Private Sub CmdBtnOk_Click()
    Unload Me
End Sub
Private Sub UserForm_Initialize()
    With Me.ListBox1
        .AddItem "Item1"
        .AddItem "Item2"
'        .ListIndex = 1 ' Sélectionne le second item
    End With
End Sub
Dans Module1, j'ouvre UserForm1 :
Code :
1
2
3
4
Option Explicit ' Ouverture d'un UserForm
Sub ShowUserForm()
    UserForm1.Show
End Sub
Le premier Item1 de ListBox1 a le focus mais n'est pas sélectionné.
Pour forcer une sélection, il faudrait aujouter:
Code :
ListBox1.ListIndex = 1 ' Sélectionne le second item
Par défaut on a :
Code :
ListBox1.ListIndex = -1 ' Aucun item n'est sélectionné.
2. Donner le focus à un autre contrôle dès le design

Citation:
Envoyé par danisoaz Voir le message
évite ce focus.
Pour éviter le focus sur ListBox1, il faut mettre le focus sur un autre contrôle de UserForm1 qui sera le nouveau contrôle par défaut.
On peut le faire au moment de la conception de la forme sans rajouter de code d'initialisation en changeant l'ordre du focus à savoir la propriété TabIndex initialement à zéro si on a créé en premier ListBox1 puis CmdBtnOk.

En mode design, sélectionner le bouton "OK".
Dans les propriétés de CmdBtnOk, scroller jusqu'à TabIndex = 1
Forcer la valeur 0. Tous les autres contrôles seront renumérotés automatiquement.

Dans la fenêtre d'Exécution immédiate (Ctrl+G) du VBE d'Excel, copier-coller et valider par ENTER :
Le bouton "OK" a le focus. Cela signifie que ListBox1 ne l'a plus.
MattChess est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 14/08/2011, 10h47   #3
Nouveau Membre du Club
 
Homme Daniel CARROUE
Retraité actif passionné
Inscription : janvier 2011
Messages : 75
Détails du profil
Informations personnelles :
Nom : Homme Daniel CARROUE
Localisation : France

Informations professionnelles :
Activité : Retraité actif passionné

Informations forums :
Inscription : janvier 2011
Messages : 75
Points : 31
Points : 31
Citation:
Envoyé par MattChess Voir le message
Pour éviter le focus sur ListBox1, il faut mettre le focus sur un autre contrôle de UserForm1.
Bonjour MattChess,
Heu, vu la solution j'ai un peu honte d'avoir posé la question...
Merci
Cordialement
Daniel
danisoaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h49.


 
 
 
 
Partenaires

Hébergement Web