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 :

Initialiser une combobox à partir de données de la feuille active


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Autre
    Inscrit en
    Août 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Autre
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2020
    Messages : 1
    Par défaut Initialiser une combobox à partir de données de la feuille active
    Bonjour,

    Je débute en VBA Excel et j'avoue galérer un peu.
    Ce qui me bloque c'est que je n'arrive pas à intialiser une combobox à partir de données présentent à la fin de mon tableau de travail (il y a un espace entre).
    En fait, le formulaire sert à gérer la réservation de salles.
    Donc en fonction de la salle choisie dans la COMBOBOX1 je souhaite afficher les prix de références.
    Voici le code que j'utilise:

    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
    'Pour l'initialisation du formulaire.
    ' les données des prix par salle se trouvent en ligne 4 colonne 32
    'Chargement du nom des salles
     
    Private Sub UserForm_Initialize()
     
     
    Dim i As Long
    Dim j As Long
    Dim colonne As Integer
     
     
    colonne = 32
    Do While Worksheets("Feuil1").Cells(4, colonne).Value <> ""
        Reservation_de_salle.ComboBox1.AddItem Cells(4, colonne).Value
        colonne = colonne + 1
    Loop
    END SUB
     
     
    ' Puis je teste la valeur renseignée dans COMBOBOX1.VALUE pour afficher les prix
     
    Private Sub ComboBox1_Change()
    i = 32
    Reservation_de_salle.LISTEPRIX.Clear
    Do While Sheets("feuil1").Cells(4, i).Value <> ""
        If Cells(4, i).Value = ComboBox1.Value Then
           Cells(5, i).Select
           colonne = ActiveCell.Column
        End If
        i = i + 1
    Loop
    j = 5
    Do While Cells(j, colonne).Value <> ""
        Reservation_de_salle.LISTEPRIX.AddItem Cells(j, colonne)
        j = j + 1
    Loop
    LISTEPRIX.ListIndex = 0
     
    End Sub
    Ce code me ramène une erreur
    '1004' Erreur définie par l'application ou par l'objet et débogage m'indique que i et j valent tous les deux 6????
    Je ne comprends pas cela et pourquoi ça ne fonctionne pas?

    Pourriez-vous m'aider?

    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 419
    Par défaut
    Bonjour,

    Si j'ai bien compris, les salles sont sur une ligne, et plusieurs prix sont indiqués en-dessous de chacune des salles. Dans ce cas, quelque chose de ce genre devrait fonctionner:
    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
    Option Explicit
     
    Private Sub UserForm_Initialize()
        Dim colonne As Integer
        colonne = 32
        Do While Worksheets("Feuil1").Cells(4, colonne).Value <> ""
            Reservation_de_salle.Combobox1.AddItem Cells(4, colonne).Value
            colonne = colonne + 1
        Loop
    End Sub
     
     
    ' Puis je teste la valeur renseignée dans COMBOBOX1.VALUE pour afficher les prix
     
    Private Sub ComboBox1_Change()
        Dim j As Long
        colonne = 32 + Combobox1.ListIndex
        Debug.Print "colonne="; colonne
        Reservation_de_salle.LISTEPRIX.Clear
        j = 5
        Do While Cells(j, colonne).Value <> ""
            Reservation_de_salle.LISTEPRIX.AddItem Cells(j, colonne)
            j = j + 1
        Loop
        LISTEPRIX.ListIndex = 0
    End Sub
    Cordialement.

Discussions similaires

  1. Remplir une combobox à partir d'une base de données
    Par July171292 dans le forum Ext JS / Sencha
    Réponses: 7
    Dernier message: 06/02/2015, 11h44
  2. Réponses: 1
    Dernier message: 14/05/2014, 07h58
  3. Réponses: 21
    Dernier message: 12/08/2013, 15h59
  4. [Interface]comment initialiser une combobox?
    Par Kenji dans le forum NetBeans
    Réponses: 4
    Dernier message: 22/10/2010, 20h47
  5. Liste combobox à partir des donnée d'une base
    Par blue_bird dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/03/2008, 16h30

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