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 :

[EXCEL] Insertion liste déroulante dans une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut [EXCEL] Insertion liste déroulante dans une cellule
    Bonjour tout le monde,

    Je génère un fichier EXCEL en VB et je souhaite utiliser des listes déroulantes pour certaines cellules.

    Après une recherche sur les forums, j'ai trouvé ce post http://www.developpez.net/forums/vie...ht=excel+liste qui me semble intéressant mais je souhaite des informations plus précises telles que les attributs utilisés ou le fonctionnement général.

    Je me permets donc de vous demander si quelqu'un aurait quelques exemples de code ou une doc à me passer.

    Merci pour votre aide
    "Patience et longueur de temps font plus que force ni que rage ..."

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Dans les cours VB, on a une présentation du pilotage d'Excel à partir de VB, et une doc plus conséquente (en VBA, mais la syntaxe est à peu près la même qu'en VB) : http://vb.developpez.com/cours/#app_office

    En espérant que tu y trouve ton bonheur
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut Insertion de liste déroulante dans une cellule
    Bonjour,
    N'oublie pas la référence à Excel.
    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
     
    Private Sub Command1_Click()
    Dim objXL As New Excel.Application
    Dim wbXL As New Excel.Workbook
    Dim wsXL As New Excel.Worksheet
    If Not IsObject(objXL) Then
        MsgBox "Vous Avez Besoin de Microsoft Excel  pour cette Fonction", vbExclamation, "Excel"
        Exit Sub
    End If
    ' Ouvre Excel
    objXL.Visible = True
    Set wbXL = objXL.Workbooks.Add
    Set wsXL = objXL.ActiveSheet
     
    Range("A1").Value = "Bonjour"
    Range("A2").Value = "Comment ça va ?"
    Range("A3").Value = "Bien et toi ?"
     
        wsXL.Cells(2, 3).Select
        With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=$A$1:$A$3"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
     
    End Sub
    jpleroisse

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut
    OK je réussi à générer une feuille excel dans laquelle j'ai un tableau.
    Dans ce tablau certaines cellules possèdent une liste déroulante de valeurs.

    Un problème et une question :

    1/ Lorsque j'ouvre mon fichier généré, il m'ouvre deux fichiers excel:
    - mon fichier généré et
    - un fichier nommé Classeur6.xls

    2/ Comment positionner la liste avec une valeur présélectionnée ?

    Aussi, autre question, si je double-clique dans la cellule contenant une liste, je peux saisir une valeur quelconque à la main (n'appartenant pas forcément à la liste).Comment empécher cette saisie ?

    Merci
    "Patience et longueur de temps font plus que force ni que rage ..."

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut
    Pas d'idées ?
    "Patience et longueur de temps font plus que force ni que rage ..."

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Hello,

    Je réponds à ça :
    je peux saisir une valeur quelconque à la main (n'appartenant pas forcément à la liste).Comment empécher cette saisie ?
    Mets la propriété Locked = false mais laisse Enabled = true

    A+

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1/ Lorsque j'ouvre mon fichier généré, il m'ouvre deux fichiers excel: 
    - mon fichier généré et 
    - un fichier nommé Classeur6.xls
    OK problème réglé

    Par contre je ne sais toujours pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2/ Comment positionner la liste avec une valeur présélectionnée ?
    Merci
    "Patience et longueur de temps font plus que force ni que rage ..."

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Hello,

    Je crois que je vais pouvoir t'aider pour ça
    2/ Comment positionner la liste avec une valeur présélectionnée ?
    Pour pris pour valeur,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub MaListeBox_Enter()
    MaListeBox.BoundValue = "BLOUIN"
    End Sub
    me place sur "BLOUIN" quand je clique dans ma liste

    A+

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 255
    Points : 53
    Points
    53
    Par défaut
    J'ai défini ma liste de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    maCellule.Select
     
    With Selection.Validation
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=valeursCombo
                .InCellDropdown = True
    End With
    Comment récupérer ma liste pour lui appliquer le BoundValue ?
    "Patience et longueur de temps font plus que force ni que rage ..."

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Hello,

    Je voulais partir à 18h (heure d'automne française - pour les canadiens...)
    c'est rapé

    Ou tu nommes tes liste par soft ou tu fais deux clics sur tes listes pour avoir le nom, et dans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ListBox1_Click()
    'Tu mets ta/tes ligne(s) de code
    End Sub
    Si ça ne marche pas avec click, essaie avec doubleClick, regarde la liste des évènements
    Là, je dois vraiment me sauver sinon je vais me faire appeler Arthur...

    Bon courage

    A+


    NB - Comme je vois que tu as créé tes lignes en dynamique, ce que je te propose risque fort de ne pas convenir mais il y aura bien quelqu'un pour résoudre ton pb... ou demain, je suis là...

Discussions similaires

  1. [XL-2007] Créer une liste déroulante dans une cellule avec vba
    Par destroyed dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/07/2014, 09h19
  2. Réponses: 5
    Dernier message: 21/06/2012, 14h22
  3. [XL-2010] Liste déroulante dans une cellule
    Par superloupiot dans le forum Excel
    Réponses: 9
    Dernier message: 17/01/2012, 17h46
  4. [XL-2007] Pb. de liste déroulante dans une cellule
    Par Joseph67 dans le forum Excel
    Réponses: 3
    Dernier message: 19/08/2009, 15h07
  5. Réponses: 1
    Dernier message: 11/09/2006, 10h14

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