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 :

comment définir une rowsource variable dans un combobox (colonne connue mais lignes variables)


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Néophite
    Inscrit en
    Juillet 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 5
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Néophite
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2018
    Messages : 51
    Points : 29
    Points
    29
    Par défaut comment définir une rowsource variable dans un combobox (colonne connue mais lignes variables)
    Bonjour à tous,

    Je suis sous excel 365 français si cela devait avoir une importanceComboSemaine.xlsx
    Je joins un bout de fichier avec un tableau à 2 colonnes.
    Je voudrais un comboboxMois et un comboboxSemaine
    La rowsource de ComboBoxSemaine dépend de la valeur mois de la ComboboxMois (mes 2 ComboBox se trouvent dans un UserForm)

    Je n'arrive pas à trouver de solutions simples

    Merci pour votre aide précieuse

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    La propriété RowSource doit contenir une chaîne de caractères contenant l'adresse complète de la plage de données donc il suffit de définir le périmètre de cette plage et ensuite d'utiliser la propriété Address de l'objet Range avec l'argument External

    Exemple où ad est la valeur à passer à la propriété RowSource du ComboBox ou du ListBox
    Pour l'exemple j'ai utilisé une table structurée nommée "t_Data"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      Dim ad As String
      ad = Range("t_Data").Address(External:=True)
      MsgBox ad
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Néophite
    Inscrit en
    Juillet 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 5
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Néophite
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2018
    Messages : 51
    Points : 29
    Points
    29
    Par défaut qu'est-ce qu'une table structurée ?
    Bonjour Philippe,

    Peux-tu me dire ce qu'est une table structurée ?

    Cela peut-il être du type :

    Dim n: n = WorksheetFunction.CountIf(Sheets("0. Liste de References").Range("H1:h64"), Me.ComboBoxMois)
    With Worksheets("0. Liste de References").Range("H1:H64")
    Set c = .Find(Me.ComboBoxMois, LookIn:=xlValues)
    If Not c Is Nothing Then
    c = c.Address
    n = n - 1
    t_data = Range(Sheets("0. Liste de References").Range(c).Offset(0, -1), Sheets("0. Liste de References").Range(c).Offset(n, -1))
    dim ad As String: ad = Range("T_data").Address(External:=True)
    Me.ComboBoxSemaine.RowSource = ad
    Else
    Exit Sub
    End If

    Merci pour ta réponse

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Peux-tu me dire ce qu'est une table structurée ?
    Je te conseille la lecture du tutoriel de Pierre Fauconnier Apprendre à utiliser les tableaux structurés Excel : création, manipulations et avantages(1)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Néophite
    Inscrit en
    Juillet 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 5
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Néophite
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2018
    Messages : 51
    Points : 29
    Points
    29
    Par défaut Je reste bloqué
    Bonjour Philippe,

    Je reste tout de même bloqué parce que je ne vois pas comment indiquer que les résultats affichés dans mon ComboBoxSemaine ne soient que ceux déterminés par mon filtre du ComboBoxMois.

    Ex : si ComboBoxMois affiche janvier alors je ne veux que les semaines de janvier dans mon ComboBoxSemaine

    Il doit y avoir une subtilité que je ne dois pas voir sans doute

    Merci encore une fois du temps que tu passeras à essayer de me trouver une réponse

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/03/2010, 15h26
  2. Réponses: 5
    Dernier message: 09/07/2008, 17h04
  3. Réponses: 2
    Dernier message: 08/12/2006, 11h09
  4. Comment stocker une requête sql dans une variable ?
    Par innova dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/10/2006, 10h01
  5. Comment afficher une valeur contenue dans une variable ?
    Par manubrard dans le forum Langage
    Réponses: 5
    Dernier message: 20/02/2006, 15h56

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