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 :

créer un comboBox dans une feuille de mon classeur


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club

    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 36
    Points : 29
    Points
    29
    Par défaut créer un comboBox dans une feuille de mon classeur
    Bonjour,

    Je cherche la syntaxe pour créer un ComboBox dans ma feuille n°1 par macro puis y ajouter par la suite des valeurs de certaines cellules de ma feuille n°2.

    quelqu'un aurait-il une piste ???

    Merci

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,
    Il faut déjà créer un Userform avec l'éditeur VBA et y ajouter le combobox

    Prochaine question.......
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Nouveau membre du Club

    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 36
    Points : 29
    Points
    29
    Par défaut
    on est obligé de passer par un UserForm ? je voudrais qu'il soit vraiment intégré à ma feuille ...

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Meme avec un USF, il peut être intégrer à la feuille, sinon il faut passer par les boutons "formulaire" que je ne connais pas trop et qu'on déconseillé encore hier
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Nouveau membre du Club

    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 36
    Points : 29
    Points
    29
    Par défaut
    tu a le droit de dire que je suis nulle ... mais y'aurait un exemple quelque part ??? je cherche dans les tutaux et les FAQ, mais je trouve pas ...
    Merci en attendant ...

  6. #6
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Je n'ai surtout pas le droit de dire que tu es nulle, on apprends tou(te)s

    Si tu te décides à passer par un userform, tu commences à écrire dans le code de ta feuil1 ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Activate()
    UserForm1.Show
    End Sub
    Déjà pour commencer, en admettant que tu ais créer l'userform
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    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 tlm,

    Pour répondre à la demande de mimi, un exemple ci-dessous
    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()
    Dim oCombo As OLEObject, L As Single, T As Single, W As Single, H As Single
     
    L = 150 '<-- position horizontale
    T = 10 '<-- position verticale
    W = 200 '<-- largeur
    H = 22 '<-- hauteur
     
    Set oCombo = Sheets("Feuil1").OLEObjects.Add(ClassType:="Forms.ComboBox.1", Left:=L, Top:=T, Width:=W, Height:=H)
    With oCombo
        .Name = "Combo1" '<-- nom du Combobox
        .ListFillRange = "Feuil2!A1:A20" '<-- exemple de chargement des données
    End With
     
    Set oCombo = Nothing
    End Sub
    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.

  8. #8
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Merci Fring, pour mimi et pour moi (come d'habitude, ça me servira bien un jour)
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  9. #9
    Nouveau membre du Club

    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 36
    Points : 29
    Points
    29
    Par défaut
    OK merci beaucoup pour votre aide,
    je voulais que mon combo apparaisse directement sur ma feuille, mais j'ai fait une UserForm qui ressemble à une boite de dialogue, comme l'image en pièce jointe.

    j'ai ensuite ajouter le code suivant à ma userForm; nommée GenerationPhaseActeur. Elle apparait lors du clic sur un bouton de ma feuille n°1.

    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
     
    Private Sub CommandButton_Annuler_Click()
        GenerationPhaseActeur.Hide
    End Sub
     
    Private Sub CommandButton_Valider_Click()
        GenerationPhaseActeur.Hide
        Call TrierSelonActeurEtPhase
    End Sub
     
     
    Private Sub UserForm_Initialize()
        Dim i As Integer
        Dim acteur As String, lstActeurs As String
        Dim phase As String, lstPhases As String
     
        'remplissage des comboboxes
        'acteur
        i = 2
        lstActeurs = ""
        Do Until IsEmpty(Worksheets("Activités").Cells(i, 3))
            acteur = Worksheets("Activités").Cells(i, 3).Value
            If InStr(lstActeurs, acteur) = 0 Then
                'ajout à la liste et au comboBox
                lstActeurs = lstActeurs & acteur & ","
                GenerationPhaseActeur.ComboBox_Acteur.AddItem acteur
            End If
            i = i + 1
        Loop
        'phase
        i = 2
        lstPhases = ""
        Do Until IsEmpty(Worksheets("Activités").Cells(i, 4))
            phase = Worksheets("Activités").Cells(i, 4).Value
            If InStr(lstPhases, phase) = 0 Then
                'ajout à la liste et au comboBox
                lstPhases = lstPhases & phase & ","
                GenerationPhaseActeur.ComboBox_Phase.AddItem phase
            End If
            i = i + 1
        Loop
    End Sub
    je passe par une chaine car je ne savais pas comment vérifier la présence d'une chaine donné dans les items présents.

    Merci beaucoup ! vous êtes :

    ...Milie...
    Images attachées Images attachées  

  10. #10
    Expert confirmé
    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
    Points : 4 085
    Points
    4 085
    Par défaut
    Il est possible d'ajouter directement sur une feuille de calcul un combobox normalement utilisé sur une UserForm. Voici ce que j'ai obtenu en modifiant une macro obtenue par l'enregistreur de macros.

    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
    Sub Macro1()
    '
    ' Macro1 Macro
    ' Macro enregistrée le 2008-07-09 par zazaraignée
    '
     
        Dim cbx As Object
        Set cbx = Feuil1.OLEObjects.Add(classtype:="Forms.ComboBox.1", Link:=False, _
            DisplayAsIcon:=False, Left:=95.5, Top:=0.25, Width:=94.5, _
            Height:=16.5)
        cbx.Name = "cbxProvince"
        cbx.ListFillRange = "provinces" ' Feuil2.Range("A1:A13") est une plage nommée
        cbx.LinkedCell = "A1"
        Set cbx = Nothing
    End Sub
    S'il s'agit de pouvoir sélectionner une valeur parmi une liste d'item prédéfinis pour chaque items d'une colonne dans un tableau. On peut aussi utiliser l'option de validation des données du menu Données. Voici les étapes à suivre :
    1. Sélectionner la plage de cellules ou la colonne qui devra faire apparaître la liste déroulante dans ses cellules.
    2. Choisir le menu Données, Validation...
    3. Dans l'onglet Option, choisir dans la liste Autoriser l'option Liste.
    4. Déterminer la Source à l'aide du bouton de sélection de plage de cellules. Si la source se trouve sur une autre feuille de calcul, ce bouton de fonctionnera pas. Vous devrez d'abord nommer la plage en question et entrer le nom de la plage précédé d'un signe égal (=nomDeLaPlage).
    5. Laisser cochées les cases Ignorer si vide et Liste déroulante dans la cellule.


    Pour nommer une plage de cellules, sélectionner la plage et taper un nom directement dans la zone Nom.

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

Discussions similaires

  1. [XL-2003] créer un code dans une feuille pas encore créer
    Par guigui71 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/01/2011, 10h26
  2. ajouter un combobox dans une feuille excel
    Par kariyasan dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/04/2009, 14h58
  3. Mettre la valeur d'une combobox dans une feuille Excel
    Par biche1 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/10/2008, 13h56
  4. créer un comboBox dans une feuille de mon classeur
    Par Masmeta dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/08/2008, 14h52
  5. Réponses: 1
    Dernier message: 18/04/2007, 18h13

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