IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Double clic pour ouvrir une listbox et sélection intempestive


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 7
    Par défaut Double clic pour ouvrir une listbox et sélection intempestive
    Bonjour à tous,
    Je rencontre régulièrement le problème suivant et je n'ai jusqu'alors pas trouvé de solution :

    Mon classeur Excel se compose de la manière suivante :
    - Je double clic sur une "cellule A"
    - Un UserForm s'ouvre avec une Listbox et un Bouton Ok
    - Je peux sélectionner plusieurs ligne de ma Listbox et en pressant Ok, ma cellule A va se remplir avec les valeurs sélectionnées dans ma Listbox.
    - Si je refais un double clique sur ma cellule A, alors la listbox surlignera en bleue les choix précédemment sélectionné à l'étape précédente (correspondant donc aussi au contenu de ma cellule)
    - Je peux alors les sélectionner/dé-selectionner pour ajouter/enlever des éléments à ma cellule.

    Mon problème est le suivant :
    Lorsque je double clic sur ma cellule A, SI l'userForm s'ouvre devant ma cellule A alors cela sélectionne automatiquement la première ligne de la Listbox PLUS la ligne se trouvant sous ma souris lors du double clic.

    Nom : 1.png
Affichages : 1802
Taille : 30,3 Ko
    Sur l'exemple ci-dessous :
    - je double clique sur la cellule qui se trouve à l'exacte position du pointeur de ma souris sur l'image ci-dessus (la cellule est donc sous l'Userbox puisque celui-ci s'est ouvert correctement)
    - mon Userform s'ouvre et cela sélectionne automatique le 1er élément plus celui se trouvant sous mon pointeur alors que dans ce cas aucune ligne de ma Listbox ne devrait être sélectionné

    Voilà j'espère avoir été clair, merci par avance de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Il faudrait voir ton code pour mieux comprendre.
    Comment codes-tu le double-click ?
    Comment fermes-tu le Userform ? Hide ou Unload ?
    Comment inscris-tu tes données quand tu cliques le bouton OK ?

    Sur l'image que tu fournis, tu dis que les items de la listbox ne devraient pas être sélectionnés.
    Il n'y avait donc aucune donnée dans ta cellule ? c'est ça ?

  3. #3
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,
    Je ne vais pas résoudre le problème, mais j'essaie de trouver une explication à ce qu'il se passe.
    J'imagine que tu as codé avec un evenement BeforeDoubleClick ? Or comme le dit son nom, les actions qui sont codées dans la macro BeforeDoubleClick s'effectuent avant de prendre en compte le double clique.
    Donc d'abord tu ouvres le userform et ensuite Excel prend en compte ton double clique, donc il sélectionne ce qu'il y a sous ta souris.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 7
    Par défaut
    J'ai fais un exemple simple qui devrait répondre à toutes vos questions :
    - Créer un nouveau classeur Excel
    - Feuil1 : dans les cases A1:A5 taper a,b,c,d,e
    Nom : a.png
Affichages : 1532
Taille : 1,9 Ko

    - Dans le code VBA correspondant à la feuille1 taper le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Load UserForm1
    UserForm1.Show
    End Sub
    Nom : b.png
Affichages : 1563
Taille : 11,8 Ko

    - Créer un Userform : UserForm1 (nom par défaut) avec une Listbox : ListBox1 (nom par défaut)
    Nom : c.png
Affichages : 1595
Taille : 11,3 Ko

    - Ajouter le code suivant à la listbox que vous venez de créer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub UserForm_Initialize()
    UserForm1.ListBox1.MultiSelect = fmMultiSelectMulti
    ActiveWorkbook.Names.Add "List_Box", "=" + Feuil1.Name + "!R1C1:R5C1"
    UserForm1.ListBox1.RowSource = "List_Box"
    End Sub
    Nom : d.png
Affichages : 1580
Taille : 12,8 Ko

    Maintenant pour tester le problème retourner dans le classeur à la feuil1.
    Un double click permet de lancer le formulaire, placez votre curseur de façon à ce que la liste s'ouvre dessus comme sur l'image suivante.
    Nom : e.png
Affichages : 1587
Taille : 64,2 Ko

    Maintenant double cliqué et vous verrez que deux éléments sont sélectionné...
    Nom : f.png
Affichages : 1577
Taille : 80,3 Ko

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    C'est effectivement très bizarre...
    C'est la 1ere fois que je vois ça.

    Tu pourrais toujours tricher un peu en décalant le Userform
    Quelque chose dans le genre de ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Cancel = True
        UserForm1.StartUpPosition = 0
        UserForm1.Left = Application.Left + ActiveCell.Left + ActiveCell.Width
        UserForm1.Top = 200
        UserForm1.Show
    End Sub

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 7
    Par défaut
    J'y avais déjà pensé mais ici c'est juste un exemple mon formulaire est bcp trop grand pour pouvoir l'écarter de la feuille avec cette méthode...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Double clic pour ouvrir un lien ?
    Par gantec dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/05/2011, 10h55
  2. visualiser un PDF : double clic pour ouvrir le fichier
    Par ETL68350 dans le forum Access
    Réponses: 2
    Dernier message: 07/04/2010, 13h28
  3. Réponses: 1
    Dernier message: 02/10/2009, 00h17
  4. [VB.NET] Problème pour alimenter une listbox.
    Par gueguen23 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 17/01/2005, 14h05
  5. API pour ouvrir une BD Access
    Par GofAcid dans le forum Access
    Réponses: 2
    Dernier message: 15/12/2004, 19h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo