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 :

Combobox dépendantes, remplissage le tout depuis la feuille Excel (pas de userform)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 3
    Par défaut Combobox dépendantes, remplissage le tout depuis la feuille Excel (pas de userform)
    Bonjour !

    J'ai un petit projet perso sur lequel je bloque depuis quelques jours déjà ...

    Dans mon fichier Excel j'ai ma feuille Donnees dans laquelle je retrouve la référence de l'article, l'ensemble auquel il appartient et le sous ensemble (l'objectif est de traiter plus de 200 références).

    Ce que je souhaite faire c'est sur une deuxième feuille Excel avoir trois combobox dépendantes pour choisir dans l'ordre l'ensemble puis le sous-ensemble et enfin la référence qui m'intéresse.

    Je souhaite le faire directement sur la feuille Excel et donc ne pas utiliser de userform ...

    Après de nombreuses tentatives j'ai péniblement réussi à remplir une combobox (mais là gros hic, j'ai des doublons et je n'arrive pas à récupérer ça d'une autre feuille).

    Etant presque désespérée de trouver un petit bout de code sur internet qui corresponde réellement à ce que je cherche, j'espère que l'un d'entre vous réussira à m'aider

    A très vite j'espère pour pouvoir essayer toutes vos idées !!!!!

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    peux-tu nous montrer le code que tu as entrepris afin qu'on puisse t'aider ?

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 3
    Par défaut
    Bonjour

    Alors j'ai a réussi à charger une combobox directement sur excel en utilisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Activate()
    ComboBox1.ListFillRange="'Donnees'!D2:D25"
    End Sub
    Mais là j'ai les doublons ...

    Du coup avec une userform j'ai essayé un truc comme ça car ça va trier les doublons (trouvé sur internet) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ComboBox1_Change()
    Dim j As Integer
    For j = 1 To Range ("A65536").End(xlUp).Row
    ComboBox1 = Range ("A" & j)
    Next j
    End Sub
    Et là je n'arrive pas à piocher dans une autre feuille excel et à retranscrire le code pour commander une combobox directement sur la feuille Excel

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 3
    Par défaut
    J'ai finalement opté pour une userform et j'ai réussi à imbriqué tout ce que je voulais !!!! youpi

    Mais j'ai un autre problème... lorsque je clique sur mon commandbutton pour ouvrir ma Userform je met plusieurs minutes avant que ça ouvre !!!!!!

    D'après les recherches que j'ai fait sur internet se serait dû à la fonction Range().End(xlUp).Row qui s'effectue d'elle même plusieurs fois et qui se retrouve plusieurs fois dans mon code !!!!!

    Est-ce qu'il y a une modif que vous verriez possible pour que je puisse continuer d'exploiter le fichier ?

    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
    Private Sub UserForm_Initialize()
    Dim i As Integer
    For i = 1 To Sheets("Donnees").Range("D65536").End(xlUp).Row
        ComboBoxEnsemble = Sheets("Donnees").Range("D" & i)
        If ComboBoxEnsemble.ListIndex = -1 Then ComboBoxEnsemble.AddItem Sheets("Donnees").Range("D" & i)
    Next i
     
    ComboBoxEnsemble = ""
    ComboBoxSousEnsemble.Clear
    ComboBoxArticle.Clear
    End Sub
     
     
    Private Sub ComboBoxEnsemble_Change()
    ComboBoxSousEnsemble.Clear
    For i = 1 To Sheets("Donnees").Range("E65536").End(xlUp).Row
        If Sheets("Donnees").Range("D" & i) = ComboBoxEnsemble.Value Then
            ComboBoxSousEnsemble = Sheets("Donnees").Range("E" & i)
            If ComboBoxSousEnsemble.ListIndex = -1 Then ComboBoxSousEnsemble.AddItem Sheets("Donnees").Range("E" & i)
        End If
    Next i
    ComboBoxSousEnsemble = ""
    ComboBoxArticle.Clear
     
    End Sub
     
     
    Private Sub ComboBoxSousEnsemble_Change()
    ComboBoxArticle.Clear
    Dim i As Integer
    For i = 1 To Sheets("Donnees").Range("D65536").End(xlUp).Row
          If Sheets("Donnees").Range("D" & i) = ComboBoxEnsemble.Value Then
            'Et si le contenu de la colonne B est égal à combobox2
             If Sheets("Donnees").Range("E" & i) = ComboBoxSousEnsemble.Value Then
                ComboBoxArticle = Sheets("Donnees").Range("A" & i)
                If ComboBoxArticle.ListIndex = -1 Then ComboBoxArticle.AddItem Sheets("Donnees").Range("A" & i)
             End If
        End If
    Next i
    ComboBoxArticle = ""
    End Sub

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/03/2013, 10h12
  2. Réponses: 6
    Dernier message: 04/09/2008, 19h17
  3. déclarer nombre d'itération depuis ma feuille excel
    Par thedarkman dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/05/2008, 21h31
  4. [VBA-E]Créer un fichier txt depuis une feuille Excel
    Par marie10 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 20/02/2006, 17h36
  5. [VBA-E]Fonction vb depuis la feuille excel
    Par Pollux dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/02/2006, 18h41

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