Common Controls 6.0 (SP6) - Listview passe en affichage horizontal

Bonsoir le Forum,

Je sèche donc je viens chercher de l'aide.

Sur un Excel existant j'ai voulue remplacer les Listbox par des Listview.

J'ai donc repris le code que j'ai sur d'anciens classeurs qui fonctionne.

Ces codes mis dans le nouveau document, ne fonctionne plus.

Le problème engendré est le suivant :

Fonctionne :

fonctionne 1

Ne fonctionne pas :

ne fonctionne pas 2

Les filtres quant a eux fonctionnent, c'est juste l'affichage qui passe en horizontale.

Concernant les référence, un écart m'a intrigué.

Sur le classeur qui fonctionne je voie dans les références :

fonctionne

Sur le classeur qui ne fonctionne pas, je ne voie pas Controls 6.0 SP6 (ni en bas de la liste) :

ne fonctionne pas

Ce fameux Common Controls 6.0 (SP6)...

J'ai donc installé la mise a jours. Pas de changement. (je le voie dans SysWOW64 mais pas dans System32)

Ce que je comprend vraiment pas, c'est pourquoi un classeur fonctionne et pas l'autre?

Sans solution je vais devoir passer toutes les feuilles et Macro de nouveau vers l'anciens classeurs mais ce n'est pas "propre".

Une idée? Un coup demain?

Merci et bonne soirée le Forum!

Note :

Windows 10 en 64 / Microsoft® Excel® 2019 MSO (Version 2203 Build 16.0.15028.20152) 64 bits

En PJ, les 2 classeurs Excel.

Bonsoir,

ce code fonctionne (j'ai un peu simplifié le USF) mais uniquement après avoir créer un nouvel USF :

Private Sub UserForm_Initialize()
    ' création du listview
    Dim Rg As Range, I

    Set Rg = [A1]   ' ligne avec les titres

    With Me.ListView1
        ' ajout des titres de colonnes
        For I = 1 To 4
            .ColumnHeaders.Add , , Rg.Offset(0, I - 1)
        Next I

        ' ajout des éléments de la 1re colonne
        Set Rg = [A2]   ' 1re ligne avec les données
        Do Until IsEmpty(Rg)
            .ListItems.Add , , Rg
            ' ajout des éléments des autres colonnes
            For I = 1 To 3
                .ListItems(Rg.Row - 1).ListSubItems.Add , , Rg.Offset(0, I)
            Next I
            Set Rg = Rg.Offset(1, 0) ' ligne suivante
        Loop

        .FullRowSelect = True ' permet de choisir une ligne complète
        .Gridlines = True ' ajout du quadrillage
        .View = lvwReport ' format d'affichage des données
    End With
End Sub

Comme si qu'il y avait un bug "interne" à votre USF...

Le fichier :

@ bientôt

LouReeD

Bonjour le Forum, bonjour LouReeD,

Merci pour ton retour. J'ai appliqué ton code et refait le UserForm et cela fonctionne.

Quand tu à parlé de bug j'ai eux un doute. Par acquis de conscience, j'ai supprimé uniquement le Listview puis mis un nouveau, et sans changer l'ancien code cela fonctionne aussi!

Donc, merci encore pour ton intervention, merci pour cette analyse qui me permet enfin d'avancer

Belle journée à tout le monde!

Bonsoir,

désolé pour le retard de mon retour ! Merci du votre et bravo pour l'expé suite à l'idée du bug ! Du coup votre code d'origine fonctionne t il après avoir ré créer une ListView "neuve" ?
Content que vous puissiez continuer dans votre projet !

@ bientôt

LoureeD

Rechercher des sujets similaires à "common controls sp6 listview passe affichage horizontal"