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 :

Affichage de données au format heure dans une listBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2016
    Messages : 38
    Par défaut Affichage de données au format heure dans une listBox
    Bonjour à tous,

    Je rencontre deux problèmes avec un de mes projets VBA que je n'arrive pas à résoudre. Dans un userform, j'ai deux listBox multicolonnes, ces deux listBox sont remplies chacun leur tour quand on appuie sur un Commandbouton . Le remplissage des Listboxs a été programmé assez simplement, quand on appuie sur le Commandbouton les données qui m'intéressent sont placées dans un tableur excel, dont je determine automatiquement par la suite la dernière ligne non-vide, puis j'affiche dans la ListBox les données stockées à l'aide du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'Chargement d'une plage de cellules dans la variable TabTemp
    TabTemp = Dies_Orders_Database.Worksheets("OrderDatabase").Range("B" & Premiereligne & ":N" & DerniereLigne).Value
    'Définit le nombre de colonnes pour la ListBox.
    ListBox2.ColumnCount = 13
    'Chargement du tableau dans la ListBox
    ListBox2.List() = TabTemp
    Je rencontre alors deux problèmes :

    - Le premier est qu'une des colonnes du tableau affiché dans la listBox contient des heures (qui sont au format heure dans le tableau). À l'affichage dans la ListBox, ces heures sont automatiquement mises au format numériques ce qui n'a plus de sens.

    - Le second est que pour mon autre Listbox qui est remplie de manière similaire, seulement les deux premières colonnes de ma ListBox sont remplies, les autres sont vides, alors que le tableau qui contient les données à afficher contient lui des valeurs pour les autres colonnes.

    Quelqu'un aurait-il une idée pour résoudre ça?
    Je serait très reconnaissant à quiconque pourra m'apporter un peu d'aide

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    cela ne t'arriverait pas si tu te servais normalement et directement de ce que t'offre Excel.
    Essaye ceci (sans ton tableau) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ListBox2.ColumnCount = 13
    listBox2.rowsource = "OrderDatabase!B" & premiere & ":N" & derniere

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2016
    Messages : 38
    Par défaut
    Bonjour unparia,

    J'ai remplacé mon code par ce que tu m'as donné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ListBox2.ColumnCount = 13
    'Chargement du tableau dans la ListBox
    ListBox2.RowSource = "OrderDatabase!B" & Premiereligne & ":N" & DerniereLigne"
    Cela règle mes deux problèmes, merci beaucoup, cependant un nouveau problème apparait.
    Le remplissage de ma deuxième listBox est déclenché, soit par le remplissage d'une TextBox puis l'appuie sur un Commandbouton (dans ce cas la macro fait des recherches dans ma base de donnée par rapport au numéro de commande qui a été tapé dans la TextBox), soit par un double-clique sur une des lignes de ma première ListBox (dans ce cas la macro fait des recherches dans ma base de donnée par rapport au numéro de commande qui est dans la seconde colonne de la ligne sélectionnée de la ListBox). Quand je procède avec la première méthode ça marche parfaitement, mais quand je double clique sur une des ligne de ma listBox cela me renvoie "Impossible de lire la propriété List. Mémoire insuffisante pour cette opération". Cela est d'autant plus surprenant que l'opération fonctionnait avant de changer ces lignes de code. Voici la ligne qui est surinée et qui pose à priori problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DiesNumber = Monitoring_orders_2.ListBox1.List(ListBox1.ListIndex, 1)
    Une idée de ce qui bloque?

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Je ne vois pas le rapport entre ta question objet de l'ouverture de cette discussion (traitement de listbox2 pour "affichage des données en format heure" - ton titre -) et cette nouvelle question qui concerne listbox1. En te rappelant qu'une discussion ne doit concerner qu'une difficulté.
    Si ta première question est RESOLUE, discussion à libérer.

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2016
    Messages : 38
    Par défaut
    Dans la discussion initiale le problème d'affichage d'heure concernait ListBox2, le problème d'affichage incomplet des colonnes dans la listBox concernait ListBox1. Les deux problèmes que j'avais annoncé sont résolus, mais la modification de mon code a créé un autre problème que je n'avais pas avant et qui concerne ListBox2, voilà pourquoi j'en parle sur cette discussion. Je peux néanmoins créer une autre discussion si nécéssaire.

    À l'ouverture de mon Userformn ListBox1 se complète automatiquement alors que ListBox2 reste vide. Comme je l'expliquais dans mon précédent message le remplissage de ListBox2 est déclenché soit par le remplissage d'une textbox puis l'appuie sur un bouton, soit par un double clique sur une des lignes de ListBox1. Quand je procède avec la première méthode ça marche toujours, mais quand je double clique sur une des ligne de ma listBox cela me renvoie "Impossible de lire la propriété List. Mémoire insuffisante pour cette opération". Cela est d'autant plus surprenant que l'opération fonctionnait avant de changer ces lignes de code. Voici la ligne qui est surlignée et qui pose à priori problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DiesNumber = Monitoring_orders_2.ListBox1.List(ListBox1.ListIndex, 1)

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Quand je procède avec la première méthode ça marche toujours, mais quand je double clique sur une des ligne de ma listBox cela me renvoie "Impossible de lire la propriété List. Mémoire insuffisante pour cette opération"
    Montre ce code (depuisPrivate Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) jusqu'à End sub inclus)
    et montre également celui d'utilisation de ta textbox, ce qui nous permettra de comprendre ce que tu veux faire

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

Discussions similaires

  1. [AC-2010] Affichage au format heure dans une requete
    Par devamat38 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 24/01/2014, 21h29
  2. Réponses: 4
    Dernier message: 23/04/2012, 15h15
  3. [POI] Ajouter une donnée au format heure dans une cellule
    Par mouss4rs dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 26/02/2012, 12h59
  4. Réponses: 3
    Dernier message: 24/11/2008, 14h09
  5. probleme format heure dans une requete
    Par adenov dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 14/03/2007, 12h26

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