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 :

Bug vba Excel listview sur multipage


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Points : 10
    Points
    10
    Par défaut Bug vba Excel listview sur multipage
    Bonjour,

    J'ai parcouru les forums à la recherche de la solution de ces bugs, mais je n'ai trouvé que des problèmes similaires sans solution.

    Les bugs :
    1) Lorsque l'on insert une listview sur un onglet d'une multipage et que l'on lance notre application, si l'onglet de départ n'est pas celui qui contient la listview, alors, lorsque l'on passe sur cet onglet, nous obtenons un bug d'affichage (genre page non rafraichie avec un peu de n'importe quoi dedans). Le fait de rechanger a nouveau de page et de revenir supprime ce bug, mais c'est un peu lourd comme procédé...

    2) Si l'on utilise des checkbox dans la listview, dès que l'on change de page et que l'on revient sur la listview, les checkbox sont invisibles. Elle sont toujours présentes car un clic sur leur emplacement les fait réapparaitre. Pire, dès que l'on clic dessus, justement pour les faire réapparaitre, elle reviennent automatiquement dans l'état "décoché" quelque soit leur état précédent.

    J'ai essayé de rafraichir la form, mais aucun résultat.

    Merci de votre aide.

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Salut,

    J'ai deja eu le meme probleme et la seule facon que j'ai trouve pour
    palier a ca c'est de deplacer la form d'1pixel et de la remettre a ca place
    quand on active l'onglet.
    C'est invisible pour l'utilisateur et pour moi ca a regle le probleme.

    A defaut de mieu, je te suggere d'essayer ca.


    ++
    Minick

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Ok pour le point n°1 Minick, ca fonctionne bien avec une modif de la position de la listview sur évènement "change" de la multipage.

    Par contre cela ne me ramène pas mes checkbox du bug n°2...

    Si quelques idées

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Je continue mon investigation :

    J'ai donc 2 pages dans ma multipage. Sur la seconde, j'ai ma listview avec mes checkbox.
    I - Je charge mon programme en commencant par la page 1. Je passe à la page 2 ==> les checkbox sont visibles.
    Je refais un va et viens page 1 puis page 2 ==> Plus de checkbox.
    II - Je charge mon programme en commencant par la page 2 ==> les checkbox sont visibles.
    Je refais un va et viens page 1 puis page 2 ==> Plus de checkbox.


    J'ai testé les valeurs des checkbox lorsque je me trouve sur la page 1, et quelque soit l'état de départ en page 2, toutes les checkbox sont à l'état 1 dès que l'on quitte la page 2.

    Je pense à créer un tableau contenant les valeurs des checkbox, actualisé à chaque modification des checkbox et utilisé afin de remettre à jour les checkbox à chaque fois que je change de page... Car pour info, appliquer la valeur true ou false sur un checkbox le fait réapparaitre...

    Je pense que cela va marcher comme çà, mais c'est un peu une usine à gaz pour pas grand chose... Surtout que c'est visiblement un bug à la base...

  5. #5
    Membre actif
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 240
    Points : 275
    Points
    275
    Par défaut
    t'a essayer de faire un repaint ?

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Oui, j'ai essayé. Le repaint de la userForm ne change rien...

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Re,

    Tu n'aurais pas un code evenementielle qui te reinitialiserait tes checkbox?

    Sinon, est ce que tu peux mettre un fichier "light"?

    ++
    Minick

  8. #8
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Je viens de reprendre mon code, et n'ayant toujours aucune solution, j'ai codé façon usine à gaz...

    Donc tableau public dynamique qui s'initialise avec les valeurs des checkBox, qui se met a jour à chaque changement de statut d'une box et qui remet en place ces dernières lorsque l'on reviens sur la frame les contenant.

    Pour ceux que cela intéresse, voici les parties de codes :

    Dans mon programme principal, avant de redonner la main à l'utilisateur :
    Dans le UserFormMail, pour initialisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Friend Sub MAJTabPJ()
     
        Dim iBcl As Integer
        ReDim Preserve bTabItemChecked(ListViewPJ.ListItems.Count)
        For iBcl = 1 To ListViewPJ.ListItems.Count
            bTabItemChecked(iBcl) = UserFormMail.ListViewPJ.ListItems(iBcl).Checked
        Next iBcl
     
    End Sub
    Dans le UserFormMail, pour la mise à jour lorsque les checkbox sont modifiées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub ListViewPJ_ItemCheck(ByVal Item As MSComctlLib.ListItem)
     
        If UBound(bTabItemChecked) < Item.Index Then
            ReDim Preserve bTabItemChecked(Item.Index)
        End If
        bTabItemChecked(Item.Index) = UserFormMail.ListViewPJ.ListItems(Item.Index).Checked
     
    End Sub
    et enfin dans le UserFormMail, pour la remise en place des checkbox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub MultiPage1_Change()
     
        Dim iBcl As Integer
        ' Pour le bug d'affichage des checkbox lorsque changement de frame...
        For iBcl = 1 To UBound(bTabItemChecked)
            UserFormMail.ListViewPJ.ListItems(iBcl).Checked = bTabItemChecked(iBcl)
        Next iBcl
     
        ' Pour le bug d'affichage de la listview dans une multipage...
        ListViewClientsPotentiels.Left = 437
        ListViewClientsPotentiels.Left = 438
     
    End Sub
    Ah, et ne pas oublier de déclarer le tableau en public dans un module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public bTabItemChecked() As Boolean
    Voili voilou... Si jamais quelqu'un trouve quelque chose de moins barbare, n'hésitez pas à poster

    Bonne journée

Discussions similaires

  1. [VBA-excel] pb sur paramètre DataOption
    Par DVano dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/10/2006, 16h07
  2. [VBA-Excel]Aller sur une feuille sans l'activer.
    Par bonilla dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/10/2006, 12h50
  3. [vba-Excel]pb sur replace et find
    Par sk8bcn dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 19/09/2006, 16h45
  4. [VBA-Excel]recherche sur plusiers feuilles
    Par salim_kwada dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/08/2006, 16h38
  5. [VBA excel] Probleme sur bouton commande
    Par RedBurn dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 22/11/2005, 10h10

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