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

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

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

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Points : 10
    Points
    10
    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 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    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
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

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

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

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Points : 10
    Points
    10
    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 379
    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 379
    Points : 12 075
    Points
    12 075
    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 sénior


    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
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonjour,

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

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

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

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Points : 10
    Points
    10
    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 sénior


    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
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par bbil Voir le message
    Bonjour,

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

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

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

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    oui désoler j'ai oublié de préciser: UserForm_SelectionnerPage et le code que j'ai posté ci-dessus ce trouve sur ce userform avec en macro1 un simple userform.show

  9. #9
    Expert éminent sénior


    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
    Points : 20 038
    Points
    20 038
    Par défaut
    Quand je dis "appelle" je veux dire comment provoque tu l'appel de ton userForm ..,je ne vois pas le code .. ! utilise les balises de code [code] [/code] pour le poster sur le forum ...


    voir peu-être : http://www.developpez.net/forums/d84...s-discussions/

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

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

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    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
    Option Explicit
     
    'Initialisation du UserForm Selectionner Page
    Private Sub UserForm_Initialize()
     
        'Declaration des varibles
        Dim i As Integer
     
            'Liste Des onglet du classeur
            For i = 1 To Sheets.Count
                ListBox1.AddItem Sheets(i).Name
            Next i
     
    End Sub
     
    'Affectation du boutton OK
    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
     
            'Selection page dans la liste
            Sheets(ListBox1.Value).Select
     
        'Déchargement du UserForm
        Unload Me
     
    End Sub

  11. #11
    Expert éminent sénior


    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
    Points : 20 038
    Points
    20 038
    Par défaut
    non ce n'est pas le code d'appel de ton userform ...

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

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

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    ha pardon j'avais pas compris désolé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub SelectionnerPage()
     
        'Affectation Bouton Ajout Nouvelle Banque
        UserForm_SelectionnerPage.Show
     
    End Sub

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonsoir
    si ca n'est que ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub SelectionnerPage()
     
        'Affectation Bouton Ajout Nouvelle Banque
        UserForm_SelectionnerPage.Show 0 
    End Sub
    le zero c'est pour le mode modless
    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

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

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

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

    Oui c’était un truc tous bête je sais, mais je ne connaissais pas.

    en tous cas merci beaucoup à vous tous pour avoir pris de votre temps pour résoudre mon problème.

    Bonne journée.

+ 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