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 :

[E-03]Problème rafraîchissement ListBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut [E-03]Problème rafraîchissement ListBox
    bonjour,
    J'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyListBox.ListFillRange="NomDuRange"
    pour mettre des données dans un ListBox.

    L'affichage du ListBox est mauvais, je dois sélectionner un autre onglet puis revenir sur l'onglet du ListBox pour voir l'affichage correct. Là le contenu du ListBox est tout à fait correct.

    Existerait-il une manière de rafraîchir l'affichage du ListBox autrement qu'en sélectionnant un autre onglet puis de sélectionner l'onglet du ListBox ?

    Merci

  2. #2
    Membre chevronné Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut
    J'ai trouvé une solution moche.

    J'utilise des API windows pour rafraîchir l'écran.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Declare Function ShowWindow Lib "user32" ( _
                     ByVal hwnd As Long, _
                     ByVal nCmdShow As Long) As Long
     
    Declare Function GetActiveWindow Lib "user32" () As Long
    Et dans le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim lIsOkay As Long
    lIsOkay = ShowWindow(GetActiveWindow(), 9)
    lIsOkay = ShowWindow(GetActiveWindow(), 3)
    qui minimise puis rétablit l'écran actif.
    C'est moche mais ça redessine correctement mon ListBox.

    J'ai essayé avec l'API
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UpdateWindow(GetActiveWindow())
    mais ça ne marche pas.

    Si quelqu'un a une autre idée je suis preneur

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 24
    Par défaut
    Bonjour à tous !

    Est ce que tu pourrais envoyer un fichier exemple !

  4. #4
    Membre chevronné Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut
    Voilà un exemple du fonctionnement.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 24
    Par défaut
    Re !

    En fait, tu n'as pas besoin de t'embêter avec les API & Co...
    Voici une solution à mettre sur ta feuille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        shtReservation.lb_ListStockLoans.ListFillRange = "Donnees"
     
    End Sub
    à chaque changement de valeur, ta list est actualisée. Par la suite, tu peux faire un controle sur l'adresse de la cellule qui a été modifiée pour voir si elle appartient à ta plage de données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If intersect(target,"Donnees")=true then
    Voila si tu as d'autres problème n'hésite pas !

    Bonne soirée !

  6. #6
    Membre chevronné Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut
    Merci beaucoup.

    J'essaierai ça Lundi au bureau.

    Bon week-end.


Discussions similaires

  1. [VBA-E] Problème de ListBox
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/06/2007, 10h42
  2. [VB6] Problème rafraîchissement MSFlexGrid
    Par Dwain dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 10/01/2007, 18h11
  3. [c#]Problème chargement ListBox
    Par Filippo dans le forum ASP.NET
    Réponses: 1
    Dernier message: 05/01/2007, 18h30
  4. [ACCESS 2000] Problème de listBox
    Par noemieze dans le forum Access
    Réponses: 3
    Dernier message: 27/06/2006, 08h58
  5. [débutant] Problème de listBox
    Par Anthony17 dans le forum Débuter
    Réponses: 6
    Dernier message: 11/05/2006, 10h05

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