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 :

Charger une ComboBox avec des données d'une feuille 2


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 161
    Points : 44
    Points
    44
    Par défaut Charger une ComboBox avec des données d'une feuille 2
    Bonjour,

    Je tente desespérement de faire un truc tout bête en VBA Excel:

    J'ai crée un formulaire et dans ce formulaire j'ai crée une ComboBox.

    Sur la feuille 2 J'ai ajouté les valeurs que je veux charger dans cette combobox de A1 à A16.

    J'ai fait donc le code suivant:

    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
     
    Private Sub General()
     
    Dim Feuil2 As Sheets
     
     
    Combo.Clear
     
     For i = 1 To 16
     
     Combo.AddItem Range("Feuil2!A" & i)
     
    Next i
     
    End Sub
    Malheureusement j'ai l'erreur suivant qui apparait: "
    "Erreur 1004,
    Erreur définie par l'application ou par l'objet"

    J'ai pensé qu'il faut peut être declarer la feuille 2 mais meme avec ca ca marche pas

  2. #2
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Bonjour,

    Essaies ceci :

    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
     
    Private Sub General()
     
    Dim Feuil2 As Sheets
     
     
    Combo.Clear
     
     For i = 1 To 16
     
     Combo.AddItem sheets ("Feuil2!").Range("A" & i)
     
    Next i
     
    End Sub
    Cordialement
    J’entends et j’oublie,
    Je vois et je me souviens,
    Je fais et je comprends.
    Confucius

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 161
    Points : 44
    Points
    44
    Par défaut probleme feuille 2
    Hello Nec!

    merci pour ta réponse rapide

    je viens d'essayer avec ton code et là j'ai un autre type d'erreur:

    "L'indice n'appartient pas à la Selection"

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 226
    Points : 225
    Points
    225
    Par défaut
    Hello,

    Avec doublons..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub UserForm_Initialize()
     
        Dim i As Long
     
        With Sheets("Feuil2")
            For i = 1 To .Range("A65536").End(xlUp).Row
                ComboBox1.AddItem .Cells(i, 1).Value
            Next i
        End With
    Ou sans doublons..
    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
    Private Sub UserForm_Initialize()
     
        Dim i as Long
     
        With Sheets("Feuil2")
            For i = 1 To .Range("A65536").End(xlUp).Row
                ComboBox1 = .Cells(i, 1)
                If ComboBox1.ListIndex = -1 Then
                    ComboBox1.AddItem .Cells(i, 1)
                End If
            Next i
            ComboBox1.Value = ""
        End With
     
    End Sub
    Cordialement.

    EDIT : Désolé Nec on s'est croisé...
    Cdt, Antonio.

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 161
    Points : 44
    Points
    44
    Par défaut
    Merci Antonium!

    Je viens d'essayer avec le code avec doublons, ca ne marche pas et en faisans du pas à pas il plante à partir de la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ComboBox1.AddItem .Cells(i, 1).Value
    avec l'erreur suivante:

    "Erreur d'execution 424
    Object Requis"

    petite précision , je n'utilise pas de USERFORM, j'ai crée le formulaire directement sur une feuille Excel

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 226
    Points : 225
    Points
    225
    Par défaut
    Re,

    1) Click en haut sur Isertion/Nom/Définir.

    2) Dans le champs "Noms dans le classeur :" tu mets "Liste".

    3) Dans le champs "Fait référence à :" tu mets..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DECALER(Feuil2!$A$1;;;NBVAL(Feuil2!$A$1:$A$100))
    4) Tu valides.

    5) En mode création, click-droit sur la ComboBox puis "Propriétés".

    6) Dans le champs "ListFillRange" tu mets "Liste".

    Et voilà, mais je ne connais pas la méthode sur une feuille pour éviter les doublons... Trier la liste d'abord peut-être.

    Bye.
    Cdt, Antonio.

  7. #7
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Si ta combobox est un contrôle ActiveX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("feuil1").ComboBox1.ListFillRange = "Feuil2!A1:A" & Sheets("feuil2").Cells(Rows.Count, 1).End(xlUp).Row
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 161
    Points : 44
    Points
    44
    Par défaut ComboBox avec feuille 2
    Merci Antonium

    merci beaucoup! effectivement ta méthode fonctionne nikel.
    C'vrai que j'aurai aimé faire ca en code pour voir mais ta méthode est nikel


    Mercadoc, j'ai encore testé ta méthode mais j'ai une erreur lors de compilation

    peut-être que j'ecris mal, peux tu me mettre ta ligne à l'endroit exact ou je dois le mettre STP ?

Discussions similaires

  1. [Débutant] Charger des données dans une Combobox
    Par Badreddines dans le forum VB.NET
    Réponses: 2
    Dernier message: 08/05/2013, 16h42
  2. [XL-2007] Charger une ComboBox avec des valeurs dépendants d'OptionBox
    Par brunounours dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/05/2012, 14h55
  3. Réponses: 11
    Dernier message: 18/12/2009, 13h46
  4. Charger une popup avec des données PHP
    Par philou029 dans le forum Langage
    Réponses: 2
    Dernier message: 06/06/2007, 16h45
  5. [VBA-A]Remplir une textbox avec des données de tables.
    Par cuicui08 dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/03/2006, 10h28

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