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 :

utilisation des listbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Par défaut utilisation des listbox
    bonjour,

    Voici mon problème :

    Je voudrai, que selon le contenu que l'utilisateur entre dans une cellule, une listbox apparaisse.
    Dans cette listbox, une liste de choix, qui doit être conditionnée par le contenu de la cellule.

    j'utilise le Sub Worksheet_Change(ByVal Target As Range) pour la detection de la valeur que l'utilisateur entre dans la cellule, et j'ai une erreur "objet recquis", au moment d'affecter la plage-source à la listbox.

    Je ne sais pas où je dois mettre la listbox : userform ? sur la feuille excell ??

    Merci,
    Clarisse.

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    peut etre que ca t'aidera

    ce code ajoute dans la listebox, les valeurs saisient dans la cellule A1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Target.Address = "$A$1" Then
     
        If Target.Value <> "" Then
            Me.OLEObjects("listbox1").Visible = True
            Me.OLEObjects("listbox1").Object.AddItem (Target.Value)
            Target.Value = ""
        End If
     
    End If
     
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Par défaut
    salut Jérôme,

    Désolée mais ça ne m'aide pas trop :

    - j'ai essayé ton code, j'ai une erreur "la méthode OLEObjects de l'object Worksheet a échoué"

    - cela ne réponds pas exactement à ce que je souhaite :

    par exemple, l'utilisateur entre "1" dans une cellule, et une listbox s'affiche avec différents choix (situés dans une plage d'une feuille de calcul)
    S'il entre "2", la listbox s'affiche avec d'autres choix...

    Je ne sais pas si je suis claire dans mes explications...

    Merci.
    Clarisse

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Ci joint le code + le fichier

    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
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long
    i = 1
     
    If Target.Address = "$A$1" Then
     
        If Target.Value <> "" Then
            Me.OLEObjects("listbox1").Object.Clear
            Me.OLEObjects("listbox1").Visible = True
     
            Do While Range("F" & i).Value <> vide
                If Range("F" & i).Value = Target.Value Then
                    Me.OLEObjects("listbox1").Object.AddItem (Range("G" & i).Value)
                End If
                i = i + 1
            Loop
     
            Target.Value = ""
        End If
     
    End If
     
    End Sub
    Pièce jointe 16904

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Par défaut
    Salut Jérôme !

    Merci bien pour l'envoi du code et du fichier, c'est vraiment cool.
    Ca marche nickel !

    Bonne fin d'aprem, et surtout, bon week end !

    Clarisse.

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

Discussions similaires

  1. Listbox, récupérer et utiliser des choix
    Par Raikyn dans le forum Tkinter
    Réponses: 5
    Dernier message: 24/04/2012, 09h21
  2. Utilisation du Enable avec des combobox ou des listbox
    Par legos dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 19/09/2006, 22h35
  3. utilisation des sockets sous windows
    Par Tupac dans le forum Réseau
    Réponses: 2
    Dernier message: 21/12/2002, 18h24
  4. [Crystal Report] Utilisation des vues de sql serveur
    Par Olivierakadev dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 15/11/2002, 17h44
  5. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01

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