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 :

Aide Impression Tri Listview


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 51
    Par défaut Aide Impression Tri Listview
    Bonjour le forum,

    J’ai besoin d’un coup de main pour que le tri d’une listivew soit imprimable, il s’agit de la listview du UserFom2 avec lequel je rencontre 2 principaux soucis avec un 3em de moindre importance :

    1. Lorsqu’on trie la base de données dans sa totalité, le tri ne ressort pas dans l’impression, l’ordre des éléments de colonnes reste figé sur une forme initiale inchangeable.

    2. Lorsqu’on opère une sélection et fait un tri, là aussi le tri ne ressort pas dans l’impression, l’ordre des éléments de colonnes reste figé sur une forme initiale inchangeable.

    3. Le code du tri utilisé ici n’est prévu pour trier que du texte seulement, ce qui fait que la 5em et dernière colonne (surface individuelle) qui comporte des nombres n’est pas triée.

    http://sd-1.archive-host.com/membres...3057/Etat2.xls

    Cordialement, Kim.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 317
    Par défaut
    Bonjour,

    une solution un peu alambiquée, mais qui a le mérite de résoudre tes points 1 et 3...

    Je ne comprends pas trop le point 2...

    Le principe, quand tu fais un tri dans ta listview, en cliquant sur un en-tête, ben, tu fais également le tri sur la feuille origine....

    Ainsi, à l'aperçu, tu as bien ton tri, même pour les surfaces..

    Remplace ton code dans l'usf2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
    With Sheets("BD2")
        ListView1.Sorted = False
        ListView1.SortKey = ColumnHeader.Index - 1
            If ListView1.SortOrder = lvwAscending Then
                ListView1.SortOrder = lvwDescending
                .Columns("A:F").Sort Key1:=.Cells(2, ColumnHeader.Index), Order1:=xlDescending, Header:=xlGuess
            Else
                ListView1.SortOrder = lvwAscending
                .Columns("A:F").Sort Key1:=.Cells(2, ColumnHeader.Index), Order1:=xlAscending, Header:=xlGuess
            End If
        ListView1.Sorted = True
    End With
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 51
    Par défaut
    Bonjour mapeh

    Merci pour ton aide

    Avec ton code, le problème de l'impression du tri est résolu.

    Il reste juste le problème du tri des nombres de la colonne des surfaces qui demeure posé.

    Amicalement, Kim.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 317
    Par défaut
    Re-,

    effectivement, le tri des surfaces est erroné, mais uniquement dans la listview..

    Dans la feuille, le tri est correct....

    Je regarde...

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 317
    Par défaut
    Re-,

    une autre solution alambiquée, mais qui fonctionne...

    A défaut de trouver plus simple...

    Le principe, tu insères une autre colonne (ce sera donc la 6), avec une largeur de 0..

    Dans cette colonne, on insère la valeur de la cellule * 1000 au format "000000"

    Si tu effectues un tri sur la colonne "Surface", on effectue le tri sur cette colonne....

    Modifie ainsi :

    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
    Sub IniListview()
    Dim i As Long
    Sheets("BD2").AutoFilterMode = False
    With ListView1
        .ListItems.Clear
        With .ColumnHeaders
           .Clear
           .Add , , "Nom et Prénoms", 150
           .Add , , "Service", 190, lvwColumnCenter
           .Add , , "Etage", 100, lvwColumnCenter
           .Add , , "Bureau", 110, lvwColumnCenter
           .Add , , "Surface individuelle (m2)", 120, lvwColumnCenter
           .Add , , , 0
           .Add , , , 0
        End With
    ....
    ....
               .ListItems(.ListItems.Count).ListSubItems.Add , , i
               .ListItems(.ListItems.Count).ListSubItems.Add , , Format(CLng(Sheets("BD2").Cells(i, 5).Value * 1000), "000000")
    
    puis, dans le tri :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        ListView1.SortKey = ColumnHeader.Index - 1
        If ListView1.SortKey = 4 Then ListView1.SortKey = 6

    Je n'ai changé que dans l'init, à toi de continuer pour les autres...

    Peut-être?

Discussions similaires

  1. aide fonction tri heapsort (création du tas)
    Par Invité dans le forum C
    Réponses: 6
    Dernier message: 24/11/2009, 00h27
  2. [AIDE] Impression PDF+ActiveX
    Par Diablo_22 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/12/2007, 11h59
  3. Besoin d'aide avec try catch
    Par LeBigornot dans le forum C++
    Réponses: 12
    Dernier message: 01/06/2007, 23h52
  4. besoin d aide algo tri croissant
    Par dju.ly dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 28/12/2005, 16h37

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