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 :

Probleme ListBox Userform [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Par défaut Probleme ListBox Userform
    Bonjour,

    J'ai un petit soucis avec une listBox, enfete sur la feuil1 j'ai un bouton qui me permet de récupérer la liste des différents onglets du classeur
    et qui me permet de naviguer vers celle-ci en double-cliquant dessus.

    Jusqu'ici tous vas bien mais quand j'arrive sur la page voulu le userform ce ferme donc, mais la molette de la souris reste sur la feuil1 quand je décent , il ne ce passe rien sur ma page mais la feuil1 décent.

    je ne sais pas si je suis claire

    voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Option Explicit
     
    'Initialisation du UserForm Selectionner Page
    Private Sub UserForm_Initialize()
     
        'Declaration des varibles
        Dim Ligne As Integer
        Dim DerniereLigne As Integer
        Dim i As Integer
     
            'Liste Des onglet du classeur
            With Sheets("Listes")
                DerniereLigne = .Range("K21").End(xlDown).Row
                For Ligne = 21 To DerniereLigne
                    Me.ListBox1.AddItem .Range("K" & Ligne)
                Next Ligne
            End With
     
    End Sub
     
    'Affectation du boutton OK
    'Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
     
        'Declaration des varibles
        Dim i As Integer
        Dim Txt As String
     
            'Selection de la page voulu dans la liste
            For i = 0 To ListBox1.ListCount
                If ListBox1.Selected(i) = True Then
                    Txt = ListBox1.List(i)
                End If
            Next i
     
            'Navigation vers la page voulu
            Sheets(Txt).Select
            Range("a20").Select
     
        'Déchargement du UserForm
        Unload Me
     
    End Sub
    merci

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par crywiddo Voir le message
    Bonjour,

    J'ai un petit soucis avec une listBox, enfete sur la feuil1 j'ai un bouton qui me permet de récupérer la liste des différents onglets du classeur
    merci
    Pourquoi faire une liste dans une feuille quand tu peux remplir ton Listbox directement:

    Pas testé, mais cela devrait ressembler à cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub IlFautRemplirLeListbox()
        for Each feuille in activeworkbook.sheets
            Listbox1.additem(feuille.name)
        next
    end sub
    P.S. Ceci marche chez moi et la cellule "A40" est sélectionnée et visible en plein milieu de l'écran:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("feuil1").Range("A40").Activate

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Par défaut
    Boujour,

    Oui tout a fait cela sera plus rapide.(je suis débutant donc pas encore assez instinctif)

    mais cela ne répond pas a m'as question,

    J'ai trouvé un programme plus simple encore :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub CommandButton1_Click()
    Unload Me
    End Sub
     
     
    Private Sub ListBox1_Click()
    Sheets(ListBox1.Value).Select
    Unload Me
    End Sub
     
    Private Sub UserForm_Initialize()
    For i = 1 To Sheets.Count
    ListBox1.AddItem Sheets(i).Name
    Next i
    End Sub
    c'est exactement ça mais le problème c'est que cela ne résoud pas mon soucis de molette qui reste sur la première page...

    Quelqu'un a une idée?

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonsoir

    je crois comprendre to soucis mais si j'ai raison il n'y a pas de solution simple en tout cas

    la molette ne fonctionne nativement qu'avec une listview et non une listbox

    tu trouvera parci par la et meme sur DVP un module qui fait fonctionner la molette sur une listebox mais c'est bancale et pour moi inutile

    sert toi plutot d'une listview sinon c'est mort
    il y a bien une autre solution mais elle est plus compliqué a mettre en place

    et la on parle
    d'une frame
    de controls ajouté dynamiquement
    du reglage de la scroll de la frame
    etc......
    et la oui tes items défileront avec la molette
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    comment appelle-tu l'userform .. ( code ?)

  6. #6
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Par défaut
    Bonjour,

    Tous d'abord merci pour vos réponses.

    Attention je pense que vous ne m'avais pas bien compris , je ne cherche pas a faire fonctionner ma molette SUR la listBox mais sur la FEUILLE que je viens de sélectionner dans ma listBox. j'ai un peut de mal expliqué .

    Prenons un exemple d'un classeur avec 3 Feuilles 1-2-3 sur lesquels il y a 3 tableaux avec 1 ligne figée en haut

    un bouton sur les 3 feuilles avec un userform composé d'une listbox sélectionnable qui affiche toutes les feuilles présente dans le classeurs (ajout régulé de page par macro...) qui renvoi vers les 3 pages.

    si j'active le userform alors que je suis sur la Feuille 1 et que je choisi la feuille 3 (par exemple) et que j'essai de descendre dans le tableau avec la molette vers le bas donc, la page reste figé mais le tableau de la page 1 descend ... oui oui je sais c'est con mais pourtant c'est le cas

    Voici un fichier exemple: 111.xls

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par bbil Voir le message
    Bonjour,

    comment appelle-tu l'userform .. ( code ?)

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

Discussions similaires

  1. probleme Listbox et requete
    Par onizuka159 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 14/05/2007, 14h02
  2. Problème LISTBOX
    Par nuans dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 17/04/2007, 11h44
  3. [VBA-E]probleme VBA USERFORM
    Par alexandre707 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/03/2007, 18h17
  4. Probleme ListBox sur evenement Tick du Timer
    Par MadCat34 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 12/01/2007, 16h28
  5. Probleme listbox
    Par bigal dans le forum Access
    Réponses: 5
    Dernier message: 15/03/2006, 23h52

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