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 :

VBAExcel : Menu déroulant


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 4
    Par défaut VBAExcel : Menu déroulant
    Bonjour à tous,

    Ayant très peu de temps pour chercher, la réponse à ma question est peut-être déjà en ligne... D'avance, je vous présente mes excuses...

    Je voudrais créer une liste déroulante dans Excel pour sélectionner un élément, et que d'autres champs se remplissent automatiquement selon l'élément sélectionné. Et tout ça avec Excel (pas ACCESS).

    J'ai acheté deux gros livres sur VBA Excel mais tout est flou et je ne trouve pas cette fonction. Est-ce possible ?

    D'avance merci.

    Niko

  2. #2
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 4
    Par défaut
    Merci beaucoup de ta réponse rapide...

    En fait, je voudrais créer une liste déroulante dans un champ de la feuille excel. Un peu comme un formulaire.

    Comme support j'ai une trame excel (un devis vierge) que je ne peux pas modifier au niveau de la forme (format entreprise oblige...)

    Si j'ai bien compris, ton code sert à créer un menu déroulant dans la barre d'outil, qui appelle d'autres feuilles... Mais il me faut un menu qui sélectionnerait les données d'une autre feuille pour les placer dans les champs correspondant sur mon devis.

    Je ne sais pas si je suis assez clair, mais tu peux me demander plus d'explications...

    Je ne sais même pas si ce que je demande est possible ...

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Par défaut Menu déroulant
    Bonjour,
    Ce code crée un nouveau menu(Mon menu) avant le menu fichier et un sous-menu(Exécuter) qui lance la macro1. Seulement pour réaliser la macro1 il faut -être au courant des données (comme je te l'ai demander ci-dessus) ou que tu la fabrique toi-même.

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
     
    Sub AjouterNouveauMenu()
    Dim HelpIndex As Integer
    Dim NewMenu As CommandBarPopup
    Dim MenuItem As CommandBarControl
    'Supprimer le menu s'il existe déjà
    Call DeleteMenu
    'Obtenir l'index du menu Fichier
    HelpIndex = CommandBars(1).Controls("Fichier").Index
     
    'Créer le menu
    Set NewMenu = CommandBars(1).Controls.Add _
    (Type:=msoControlPopup, _
    Before:=HelpIndex, Temporary:=True)
     
    'Ajouter une légende
    NewMenu.Caption = "Mon menu"
     
    'Premier élément de menu
    Set MenuItem = NewMenu.Controls.Add _
    (Type:=msoControlButton)
    With MenuItem
        .Caption = "&Imprimer"
        .FaceId = 162
        .OnAction = "Macro1"
    End With
    'Deuxième élément de menu
    Set MenuItem = NewMenu.Controls.Add _
    (Type:=msoControlButton)
    With MenuItem
        .Caption = "&Exécuter"
        .FaceId = 590
        .OnAction = "Macro1"
    End With
    End Sub
     
    Sub DeleteMenu()
    On Error Resume Next
    CommandBars(1).Controls("Mon menu").Delete
    End Sub
     
    'Si tu veux que le menu soit effacé à la fermeture du classeur, tu mets dans 
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call DeleteMenu
    End Sub
    'Si tu veux que le menu soit créé à l'ouverture du classeur tu mets dans
     
    Private Sub Workbook_Open()
    Call AjouterNouveauMenu
    End Sub
    'Bien sur tu enregistre ce classeur.
    jpleroisse

  4. #4
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 4
    Par défaut
    Exactement !!

    Je voudrais avoir une liste déroulante dans la cellule A2 de ma feuille feuil1, et les informations seraient dans la feuil2 par exemple.
    Ensuite, selon le choix effectué dans la cellule A2, les cellules B2, B3 et B4 se rempliraient grâce aux informations liées au choix A2.

    Je ne sais pas si je suis bien clair, mais en tout cas je ne souhaite pas utiliser de menu dans la barre des tâches.

    ...

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 4
    Par défaut
    Merci vraiment beaucoup.

    J'essaie ça ce week end et je t'informe.


  6. #6
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Salut

    Tu peux passer par la validation de saisie qui est une des fonctionnalités d'Excel. A mano, ça donne ceci:

    Tu mets dans un coin non visible de la feuille où doivent apparaître la liste déroulante un petit tableau (sans entête) contenant les items à sélectionner dans ta liste sur une seule colonne. Tu pourras masquer la colonne par la suite si ça t'arrange.

    Tu sélectionne ensuite la cellule où tu désires placer ta liste. Puis clique sur Données / Validation.

    À Autoriser, choisis Liste.
    Clique sur le bouton à droite dans le champ Source. sélectionne la plage qui contient la liste et reclique sur le bouton pour réagrandir la boîte de dialogue.

    Par défaut, deux cases à cocher sont activées. Si tu veux que l'utilisateur sélectionne absolument quelque chose, décoche la calse Ignorer si vide.

    Clique sur OK pour terminer.

    Voilà! Ta liste est prête!

  7. #7
    Invité de passage
    Inscrit en
    Octobre 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 1
    Par défaut
    Salut niko7676,
    je suis en train de me poser les m^m questions pour pouvoir remplir un devis en n'entrant que la référence dans une cellule et que la désignation ainsi que le prix s'affiche dans les cellules suivantes...
    As tu réussi cette prouesse? oui g bien dis prouesse car moi et excel et stt les macros nous sommes deux....
    si tu pouvait me donner des soluces(si elles sont en ta possessions..!)
    merci
    Lolo

Discussions similaires

  1. recuperation valeur menu déroulant
    Par jerome1 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 08/06/2005, 11h39
  2. [menu]faire un menu déroulant
    Par Nadine dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 24/03/2005, 08h33
  3. Dimensions d'un Menu déroulant
    Par polo-j dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/02/2005, 14h26
  4. Menu déroulant valeur par défaut
    Par Gourouni dans le forum ASP
    Réponses: 11
    Dernier message: 06/12/2004, 16h31
  5. Menu déroulant suite au passage sur un TMenuItem
    Par James_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 05/05/2004, 14h31

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