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 :

Aide pour ComboBox [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 3
    Par défaut Aide pour ComboBox
    Bonsoir !

    Je commence par me présenter simplement : newbie dans le domaine du VBA, étudiant en Genie Mécanique, on nous apprend quelques rudiments du VBA en cour, ce qui explique ma présence sur ce forum, qui m'as déjà beaucoup aidé jusqu'ici !
    Je travail sur un petit projet de "bibliothèque", qui pour l'instant se limite à un userform rechercher qui permet d'aller chercher les livres qui m'interesse dans la feuille de base et de les renvoyer dans une autre feuille. Enfin bref, passons plutôt au problème.

    Alors je cherche a créer ce qui se présente dans le menu déroulant de ma combobox de manière automatique. Pour la première, aucun problème (plutôt simple), mais la deuxième me pose un peu plus de problèmes...

    Je m'explique : il me faut récupérer dans la colonne "C" tout les genres de documents auxquels je peut etre confronté (Roman, BD, Manga...)
    Le problème cest que cela m'affiche donc 30 000 fois la meme chose avec ce code :
    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
     
    Private Sub UserForm_Initialize()
    'Initialisation du menu déroulant de la ComboBox1
    Dim VarDerColonne, i As Integer
    CategorieBox.Clear
    VarDerColonne = Worksheets("params").Range("Z1").End(xlToLeft).Column
     
    'On ajoute la possibilité de pouvoir rechercher dans toutes les categories
    CategorieBox.AddItem ("TOUT")
     
    For i = 1 To (VarDerColonne - 1)
        CategorieBox.AddItem (Cells(1, i).Value)
    Next i
     
     
    CategorieBox.ListIndex = 0
     
    Dim VarDerLigne As Integer
    GenreBox.AddItem ("TOUT")
    MsgBox "b"
    VarDerLigne = Worksheets("params").Range("C65536").End(xlUp).Row
    'VarPlage = Sheets("params").Range("C2:C" & VarDerLigne).Address
    GenreBox.RowSource = "params!" & VarPlage
    GenreBox.ColumnHeads = False
    GenreBox.ListIndex = 0
     
     
    End Sub

    C'est une réutilisation du code que notre professeur nous avais donné.

    J'ai donc tenté quelque chose : (pour la seconde combobox, sois GenreBox, la première étant CategorieBox)
    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
     
     
    Dim VarDerLigne, new_cat As Integer
    GenreBox.AddItem ("TOUT")
    MsgBox "b"
    VarDerLigne = Worksheets("params").Range("C65536").End(xlUp).Row
    new_cat = Worksheets("params").Range("C1").Value
     
    GenreBox.AddItem (new_cat)
     
    For i = 1 To VarDerLigne
        If Worksheets("params").Range("C" & i).Value <> new_cat Then
            new_cat = Range("C" & i).Value
            GenreBox.AddItem (new_cat)
        End If
    Next i
     
    End Sub
    Mais cela ne fonctionne malheureusement pas "erreur de type"... je suppose que c'est du au "new_cat" mais je ne vois vraiment pas comment faire autrement !
    En espérant avoir été assez clair (et ne pas avoir fait trop de fautes)
    Merci d'avance !!

    Shady

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,


    tu ne nous as pas dit sur qu'elle ligne était située l'erreur ..

    de plus il ne faut jamais utiliser un objet Range sans préciser son parent .. , ce que tu as fait en ligne 13 (alors que partout ailleurs tu as préciser la feuille parente..)

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 3
    Par défaut
    Re-bonsoir,

    Autant pour moi, je n'avais pas vu pour le range... C'est corrigé merci !

    Et l'erreur ne m'amène à aucune ligne, voila ce que cela m'affiche :
    Nom : VBA ERREUR.PNG
Affichages : 252
Taille : 5,6 Ko

    Si j'essaye de voir d'ou viens la faute a l'aide de MsgBox, je vois que ça bloque sur la ligne en rouge ci-dessous (le "c" ne s'affiche pas, le message d'erreur arrive juste après le "b")
    Pourtant new_cat est bien un string donc je ne comprend pas d'ou cela peut venir
    A tout les coups c'est tout bête mais cela fait des heures que je bloque donc j'ai décidé de poster un message pour voir si un regard exterieur pourrait voir la faute.

    En tout cas, merci beaucoup pour ta réponse !
    S'il le faut je peut attacher le fichier dans mon prochain post, mais je sais pas si tu t'y retrouverais, c'est un peu "rangé" n'importe comment

    Shady

    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
    Dim VarDerLigne, new_cat As Integer
    GenreBox.AddItem ("TOUT")
    MsgBox "a"
    VarDerLigne = Worksheets("params").Range("C65536").End(xlUp).Row
    MsgBox "b"
    new_cat = Worksheets("params").Range("C2").Value
    MsgBox "c"  'celui ci ne s'affiche pas
    GenreBox.AddItem (new_cat)
    MsgBox "d"
    For i = 1 To VarDerLigne
       If Worksheets("params").Range("C" & i).Value <> new_cat Then
         new_cat = Worksheets("params").Range("C" & i).Value
         GenreBox.AddItem (new_cat)
        End If
    Next i
    La valeur que j'ai à prendre est bien une chaîne de caractère :
    Nom : VBA ERREUR2.PNG
Affichages : 160
Taille : 9,8 Ko

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Re,

    tu déclare new_cat en entier (integer) et tu essai de lui affecter une chaîne ...

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 3
    Par défaut
    Et voilà j'en étais sur...
    J’étais tellement persuadé de l'avoir déclaré en tant que string !!

    Merci beaucoup d'avoir répondu en tout cas...
    Ça risque de ne pas être mon dernier post (mais les prochains seront plus coriace promis)

    Cordialement,
    Shady

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

Discussions similaires

  1. Combobox :aide pour afficher le texte
    Par gontrand16 dans le forum IHM
    Réponses: 1
    Dernier message: 16/09/2008, 20h36
  2. aide pour combobox
    Par monpseudonom dans le forum Débuter
    Réponses: 2
    Dernier message: 16/05/2008, 14h15
  3. AIDE pour lier un combobox avec le listbox a l'aide d'un bouton
    Par dricks dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/07/2007, 14h42
  4. [RQT] Aide pour un ComboBox
    Par TheOrY dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 11/04/2007, 10h19
  5. aide pour combobox
    Par kalou26 dans le forum C++Builder
    Réponses: 14
    Dernier message: 08/06/2006, 15h57

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