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 affichage contrôles


Sujet :

Macros et VBA Excel

  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 : 52
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut [E-03]Problème affichage contrôles
    Bonjour,
    J'ai un ListBox, alimenté par ListFillRange dans un onglet.

    A l'ouverture du classeur on ne voit que les 2 dernières lignes du ListBox.

    Si on fait CTRL+TAB pour changer d'appli et qu'on revient sur Excel l'affichage est bon. On peut faire de même en changeant d'onglet et en revenant sur l'onglet du ListBox.

    Avez-vous déjà rencontré ce genre de problème d'affichage ? Si oui, comment avez-vous pu le résoudre ?

    Je suis sous Windows XP 2002 SP3.


    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Essaie de voir ce que ça donne un programmant un "refresh" de ton classeur à la fin de ta procédure Workbook_Open, comme ThisWorkbook.Activate ou je ne sais quoi d'autre.

    Il se peut qu'il s'agisse d'un des comportements anormaux d'Excel: il y en a un paquet.

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

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut
    Citation Envoyé par decondelite Voir le message
    Essaie de voir ce que ça donne un programmant un "refresh" de ton classeur à la fin de ta procédure Workbook_Open, comme ThisWorkbook.Activate ou je ne sais quoi d'autre.

    Il se peut qu'il s'agisse d'un des comportements anormaux d'Excel: il y en a un paquet.
    Merci decondelite pour ton idée.

    Ca n'est pas mieux

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Dans ce cas, on peut voir de plus près ta procédure Workbook_Open, histoire de voir s'il n'y a pas de petits soucis?

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

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut
    Pas de souci :
    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
     
    Option Explicit
     
    Public Sub Workbook_Open()
     
    Dim blScreenUpdating As Boolean
    Dim blDisplayAlerts As Boolean
     
        blScreenUpdating = Application.ScreenUpdating
        blDisplayAlerts = Application.DisplayAlerts
     
        Application.ScreenUpdating = USER_SCREEN_UPDATING
        Application.DisplayAlerts = USER_DISPLAY_ALERTS
     
        'mise à jour liste types d'instruments, instruments, StrategyTree, Strategy dans shtRef
        Call shtRef.btnStrategyTreeRefresh_QuandClic
        Call shtRef.btnEquityRefresh_QuandClic
        Call shtRef.btnFutureRefresh_QuandClic
        Call shtRef.btnRefreshCurrenciesList_Click
        Call shtRef.btnStrategyRefresh_QuandClic
     
        'rafaîchissement écran des contrôles et des noms de shStrategyDef
        Call Sheets("shStrategyDef").btnIHMStrategyListRefresh_Click
     
        Application.ScreenUpdating = blScreenUpdating
        Application.DisplayAlerts = blDisplayAlerts
     
     End Sub

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Je ne connais pas le code des procédures appelées, mais tu n'aurais pas des soucis avec screenupdating desfois?

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

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut
    Les procédures appelées lisent des données en base, mettent à jour des cellules et des contrôles.

    J'ai essayé en enlevant toutes les lignes contenant des ScreenUpdating, ça donne la même chose.

    Je me demande si ça n'est pas au niveau de Windows qu'il faudrait faire un rafraîchissement ...


  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Au pire, tu fais 2 changements d'onglets pendant un screenupdating=false, l'utilisateur n'y verra que du feu, même si ce n'est pas très catholique.

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

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut
    C'est ce que je fais; je mets ScreenUpdating à false, j'interroge la base de données, je mets à jour les contrôles et quand c'est fini je remets ScreenUpdating comme c'était configuré avant les traitements.


  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Ce que je voulais dire c'est qu'une fois que tu as fini de mettre à jour tes contrôles, tu sélectionne n'importe quelle autre feuille et tu resélectionne la feuille qui était en cours avavant (ou celles des contrôles tu fais ce que tu veux) et ce avant de remettre screenupdating=true.

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

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut
    J'ai essayé aussi, ça ne marche pas.

    Par contre ça ça marche :

    J'ai mis ça en fin de Workbook_Open :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    shtStrategyDef.lbStrategies.Visible = False
    shtStrategyDef.lbStrategies.Visible = True
    Encore merci pour vos idées

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 08/06/2009, 12h30
  2. Problème affichage primitive
    Par goutbouyo dans le forum DirectX
    Réponses: 4
    Dernier message: 29/12/2004, 19h25
  3. Problème de contrôle de champ input texte
    Par NATHW dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/10/2004, 23h48
  4. [Plugin][VE] Problème affichage
    Par sebb84 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/07/2004, 15h50
  5. [DOS] Problème affichage de DOS dans un Memo
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 25/06/2004, 14h31

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