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 :

VBA Excel XP (Documentation & DropDown List)


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Points : 18
    Points
    18
    Par défaut VBA Excel XP (Documentation & DropDown List)
    Bonjour tout le monde,

    J'ai besoin de vos lanternes !

    Je doit faire une application VBA sur Excel XP, Et je m'arrache les cheveux pour trouver de la doc...

    Je code sur l'éditeur fourni avec Excel... qui n'est vraiment pas top.

    Existe-t-il un éditeur plus plus intelligent au niveau du modèle objet. Qui pourrais me donner l'ensemble des Méthode/Propriétés d'un objet ?

    Exemple :

    Si j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WorkSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Name:="BB", Link:=False, Left:=10, Top:=10, Width:=100, Height:=20)
    Comment puis-je trouver la liste des paramètre que cette méthode peux prendre en options (ex ClassType, Left... )?


    Plus précisément sur le cas qui me pose problème actuellement :

    Je doit créer en VBA ( de A a Z ) sur une feuille donnée, une DropDown List, ensuite la remplir (toujours en VBA) puis, écouter le changement de sélection de cette liste pour effectuer une certaine action.


    D'après ce que j'ai vu il existe plein de manière de faire cela, mais je ne sais pas si elle sont compatible avec Excel 2000 ni comment ajouter des item à la main en VBA.

    J'ai testé en utilisant une shape ce qui était parfais sauf que je n'arrive pas à lier de macro au changement de l'élément sélectioné.

    Ensuite j'ai testé l'exemple que vous voyez plus haut, mais impossible de trouver comment ajouter un item et comment lier une macro.

    Si vous avez des idées se serai avec grand plaisir !

    Good Night

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Je n'ai pas encore vu de document reprenant les paramètres et méthodes d'utilisation des contrôles issu du menu "Boîtes à outils contrôles". Je vais me pencher sur le sujet pour sortir un tuto.

    En attendant voici une méthode pour créer une ComboBox sur une feuille.
    • Création de l'objet
      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
      Sub test_combo()
      Dim Obj As OLEObject
       
      Set Obj = Sheets(1).OLEObjects.Add(ClassType:="Forms.ComboBox.1")
       
      With Obj
          .Left = Range("B2").Left
          .Top = Range("B2").Top
          .Height = Range("B2:B3").Height
          .Width = Range("B2:D2").Width
          .Name = "MonCombo"
      End With
       
      'voir ci-dessous pour les méthodes de remplissage
       
      End Sub
    • 1ère méthode de remplissage via ListFillRange (qui correspond à RowSource pour une Combo insérée sur un UserForm)
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Obj.ListFillRange = "Feuil2!A1:A20"
    • 2ème méthode de remplissage via AddItem
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      For i = 1 To 20
          Obj.Object.AddItem "N° " & i
      Next

    Remarque importante : on ne peut pas mélanger les deux méthodes de remplissage, soit on utilise ListFillRange, soit AddItem.
    .
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    Ah Merci beaucoup !

    Cela me débloque pour la création, il ne reste plus qu'a pouvoir écouter l'évènement de changement de la sélection dans la liste.

    Cela est possible avec les OleObject ?

    Ayant déjà fait du PHP/JAVA/.Net/JS c'est extrêmement déroutant de ne pas avoir de documentation...

    Je sais exactement se que je veux faire et comment le faire par rapport aux méthodes classiques qu'on pourrai attendre un objet, il me manque juste le nom précis et son utilisation. Ce qui est introuvable hormis sur des forum ou des tutoriels.

    Du coup, autre question, J'ai aussi besoin de réinitialiser la liste des éléments.

    En tout cas merci encore.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir


    J'ai aussi besoin de réinitialiser la liste des éléments.

    Si tu utilises AddItem
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil1.ComboBox1.Object.Clear
    Si tu utilises ListFillRange
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil1.ComboBox1.ListFillRange = ""


    bonne soirée
    michel

Discussions similaires

  1. Valeur et non l'id d'un item d'une dropdown list vba excel 2010
    Par thibauc dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/07/2012, 09h50
  2. [VBA] Excel- Save un document dans 2 répertoires différents
    Par altarez dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/01/2006, 22h32
  3. [VBA][Excel]Hauteur de listes
    Par Pollux dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 16/01/2006, 16h39
  4. [Débutant] VBA Excel : Liste déroulante
    Par ptitsoleil87 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 14/12/2005, 14h09
  5. [VBA][Excel]Supprimer une partie du texte d'une grosse liste
    Par annedeblois dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/09/2005, 17h15

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