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

Excel Discussion :

alimenter combobox et label avec un tableau


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Plombier
    Inscrit en
    Mars 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Plombier
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2023
    Messages : 6
    Points : 1
    Points
    1
    Par défaut alimenter combobox et label avec un tableau
    Bonjour le forum,

    J'ai chercher, mais je n'ai pas trouvé sur le forum comment résoudre mon problème. (j'ai sûrement dû mal chercher)
    Voila, j'ai un tableau avec 3 colonnes et 365 lignes (1ere colonne les dates, 2eme colonne l'éphéméride et 3eme colonne les anniversaires (nom de personnes proches). les lignes en colonne 1 vont du 01/01/2024 au 31/12/2024.
    Dans le même fichier, j'ai un UserForm avec un ComboBox pour les dates, un Label pour afficher l'éphéméride et un autre Label pour afficher le nom de la personne (le jour de son anniversaire) si il y a un anniversaire le jour affiché dans le ComboBox.
    Au lancement de l'UserForm, la date du jour est affichée dans le ComboBox au format "dddd dd mmmm yyyy".
    Je n'arrive pas à faire afficher l'éphéméride et l'anniversaire dans mes 2 Labels. Lorsque je click sur mon ComboBox, la liste déroulante est au format "dd/mm/yy" je souhaiterais l'avoir au même format que le Combo et je n'arrive toujours pas à remplir mes 2 Labels. Quelqu'un peut-il m'aider svp ? si j'ai été assez clair bien sûr. Par avance merci

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Plombier
    Inscrit en
    Mars 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Plombier
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2023
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Personne ne peut me répondre ?

  3. #3
    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 774
    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 774
    Points : 28 638
    Points
    28 638
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour vous aider efficacement, il faudrait donner un peu plus d'éléments
    Pouvez-vous publier la procédure qui alimente votre ComboBox ainsi que le code de la procédure événementielle qui alimente le TextBox ainsi qu'une illustration de votre table de données avec quelques lignes.
    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

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Plombier
    Inscrit en
    Mars 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Plombier
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2023
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bonjour M. TULLIEZ et merci de vous intéresser à mon problème qui est en grande partie résolu grâce à "vos réponses" aux autres utilisateurs.
    Le seul problème qu'il me reste est d'avoir le ComboBox au format "dddd dd mmmm yyyy" au lieu de l'avoir au format "dd/mm/yy" (format actuel).
    voici mes lignes de code (résumé):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub UserForm_initialize()
      On Error Resume Next
            Set sh = Sheets("Paramètres")
     
    ' Charger le ComboBox Date
            Set Rng = sh.Range("A3:C" & sh.[A369].End(xlUp).Row)
            Me.cbo_date.List = Rng.Value
            Me.cbo_date = Format(Me.cbo_date, "dddd dd mmmm yyyy")
    End Sub
    Le Combobox : ColumnCount=3; ColumnWiths=260pt;0pt;0pt (le problème ne viendrait-il pas de là ?)

  5. #5
    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 774
    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 774
    Points : 28 638
    Points
    28 638
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    La valeur de la propriété ColumnWidths est une chaîne de caractères donc à placer entre les guillemets voir l'exemple ci-dessous et de grâce, utilisez les tableaux structurés au lieu de plage classique. C'est bien plus simple à utiliser.
    Je ne comprends pas l'usage de la ligne de code On Error resume next. C'est un cache misère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Main()
      Dim rng As Range
      Dim t As Variant
      Set rng = Range("t_Contrat") ' Tableau structuré
      With UserForm1
        With .ComboBox1
        .List = rng.Value
        .ColumnCount = rng.Columns.Count
        .ColumnWidths = "50;60;60"
        End With
      .Show
      End With
    End Sub
    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

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Plombier
    Inscrit en
    Mars 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Plombier
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2023
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Merci Monsieur TULLIEZ pour vos remarques, j'ai modifié mes lignes de code en tenant compte de vos commentaires, (tableau structuré et "On Error Resume Next" supprimé) mais mon problème initial de format date dans la liste déroulante n'est pas résolu, auriez vous une suggestion svp ?

  7. #7
    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 774
    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 774
    Points : 28 638
    Points
    28 638
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Sauf erreur de ma part, la propriété List de l'objet ComboBox ne permet pas de définir un format pour une colonne précise et le format de la date est par défaut soit "dd-mm-yy" ou "dd-mm-yyyy".
    Pour appliquer un format à la colonne, il faut passer par la méthode AddItem
    Cependant, rien n'empêche d'avoir les dates du ComboBox au format "dd-mm-yy" et appliquer un autre format pour le TextBox. C'est le choix que je ferais car la propriété List est plus simple à gérer. Une seule ligne d'instruction pour charger une table entière.
    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

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Plombier
    Inscrit en
    Mars 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Plombier
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2023
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Excusez moi si je me suis mal exprimé, en fait mon ComboBox est bien au format souhaité, mais est-il possible de modifié le format uniquement de la liste déroulante lorsque je click sur ce ComboBox ?
    Nom : Userform.jpg
Affichages : 119
Taille : 94,9 Ko
    Et, serait-il possible aussi que la liste déroulante se positionne sur la date du jour au lieu de se positionner au 01/01/2024 ?

  9. #9
    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 774
    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 774
    Points : 28 638
    Points
    28 638
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    En ce qui concerne la sélection de la date du jour, il faut passer la date du jour comme valeur à la propriété Value du Combobox
    En ce qui concerne, le formatage de la ligne de sélection, ne l'ayant jamais fait, je dois chercher et pour l'instant, je n'ai pas trop de temps à consacrer à cela mais j'ai une suggestion en attendant qu'un autre contributeur trouve la solution si elle existe.
    Prévoir un TextBox à placer au-dessus du ComboBox et formater la date dans du TextBox

    Exemple de la procédure événementielle Change du ComboBox (Le TextBox se nomme txt_DateSelected)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ComboBox1_Change()
      Me.txt_DateSelected.Value = Format(Me.ComboBox1.Value, "dddd, d mmmm yyyy")
    End Sub
    Code de la procédure qui lance le UserForm (dans un module Standard)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Main()
      Dim rng As Range
      Dim t As Variant
      Set rng = Range("t_Contrat") ' Tableau structuré
      With UserForm1
        With .ComboBox1
        .List = rng.Value
        .ColumnCount = rng.Columns.Count
        .ColumnWidths = "50;60;60"
        .Value = Date
        End With
      .Show
      End With
    End Sub
    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

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Plombier
    Inscrit en
    Mars 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Plombier
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2023
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour le temps que vous m'avez consacré, je vais faire comme vous me le dite, avec un TextBox en attendant que quelqu'un ai la solution.
    Encore merci.

Discussions similaires

  1. Réponses: 8
    Dernier message: 03/06/2018, 16h14
  2. [XL-2007] Alimenter une ComboBox avec un tableau trié
    Par c.piette dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/04/2015, 08h56
  3. [XL-2010] Alimenter Combobox dans Userform avec noms définis variables
    Par aethangaia dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 27/06/2014, 14h24
  4. Alimenter une listbox multicolonnes avec un tableau de variables
    Par windsor dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/08/2009, 19h23
  5. Erreur avec un Tableau de combobox
    Par dederfred dans le forum Delphi
    Réponses: 1
    Dernier message: 26/10/2006, 07h21

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