XL 2021 Erreur demarrage USF avec listview

  • Initiateur de la discussion Initiateur de la discussion Did25
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Did25

XLDnaute Occasionnel
Bonjour le Forum , j'ai besoin de votre aide ,j'ai modifié mon fichier et j'ai tenté d'intégrer une listview mais impossible de trouver l'erreur qui bloque l'ouverture de l'USF Calcul .Merci de votre aide
 

Pièces jointes

Bonsoir le Fil
Effectivement "F"= colonne 6 Lol
Bonne fin de Soirée
Jean marie
Bonjour le ChTi160 ,et bonjour vgendron , j'ai trouvé la solution avec ceci :
VB:
```vba
Function show_data_in_listView()
    Dim r As Integer, c As Integer
    Dim lastrow As Long
    Dim li As Object
    ThisWorkbook.Sheets("Données").Activate
    lastrow = Sheets("Données").Cells(Rows.Count, 14).End(xlUp).Row
    With ListView1
        .View = lvwReport
        .CheckBoxes = False
        .FullRowSelect = True
        .Gridlines = True
        For c = 1 To 11
            With .ColumnHeaders
                .Add , , Sheets("Données").Cells(1, c), Sheets("Données").Cells(1, c).Width
            End With
        Next c
        For r = 2 To lastrow
            Set li = .ListItems.Add(, , Cells(r, 1))
            For c = 2 To 11
                li.ListSubItems.Add , , Cells(r, c)
            Next c
        Next r
    End With
End Function
```

Maintenant je ne connais pas la solution pour régler comme une listbox les largeurs de colonnes .
 
Maintenant je ne connais pas la solution pour régler comme une listbox les largeurs de colonnes .
Hello,
voici une astuce pour régler la largeur des colonnes d'une listview :
Par exemple on remplit les colonnes de la listView avec une largeur fixe de 70 dans le Initialize du formulaire comme ceci :
VB:
   Dim colw, c, ColName
   'colw = Array(35.4, 39, 39.6, 54, 39.6, 34.8, 28.2, 170.4, 77.4, 35.4, 36, 70, 66, 92.4, 48, 51.6, 70, 39.6)
    ColName = WsD.[A1].CurrentRegion.Rows(1).Value
    With ListView1
         .View = lvwReport
         .CheckBoxes = False
         .FullRowSelect = True
         .Gridlines = True
         .ListItems.Clear 'Ici
         .ColumnHeaders.Clear 'Ic
         For c = 1 To UBound(ColName, 2)
             With .ColumnHeaders
                .Add , , ColName(1, c), 70
               ' .Add , , ColName(1, c), colw(c - 1)
             End With
         Next c
    End With

et d'ajouter ce code pour un double clic dans la ListView :
Code:
Private Sub ListView1_DblClick()
Dim i, colw
For i = 1 To ListView1.ColumnHeaders.Count
  colw = colw + Replace(CStr(ListView1.ColumnHeaders.Item(i).Width), ",", ".") + ","
Next i
Debug.Print colw
End Sub
On lance le formulaire, on règle les largeurs de colonnes et on double-clique sur la listView.
On récupère ce qui est affiché dans la fenêtre d'exécution du VBA et on le met dans la ligne qui initialise le colw ( colw = Array())
On décommente la ligne avec colw = et on met en commentaire la ligne .Add , , ColName(1, c), 70 , on décommente la ligne qui est en dessous.
Ami calmant, J.P
 
Hello,
voici une astuce pour régler la largeur des colonnes d'une listview :
Par exemple on remplit les colonnes de la listView avec une largeur fixe de 70 dans le Initialize du formulaire comme ceci :
VB:
   Dim colw, c, ColName
   'colw = Array(35.4, 39, 39.6, 54, 39.6, 34.8, 28.2, 170.4, 77.4, 35.4, 36, 70, 66, 92.4, 48, 51.6, 70, 39.6)
    ColName = WsD.[A1].CurrentRegion.Rows(1).Value
    With ListView1
         .View = lvwReport
         .CheckBoxes = False
         .FullRowSelect = True
         .Gridlines = True
         .ListItems.Clear 'Ici
         .ColumnHeaders.Clear 'Ic
         For c = 1 To UBound(ColName, 2)
             With .ColumnHeaders
                .Add , , ColName(1, c), 70
               ' .Add , , ColName(1, c), colw(c - 1)
             End With
         Next c
    End With

et d'ajouter ce code pour un double clic dans la ListView :
Code:
Private Sub ListView1_DblClick()
Dim i, colw
For i = 1 To ListView1.ColumnHeaders.Count
  colw = colw + Replace(CStr(ListView1.ColumnHeaders.Item(i).Width), ",", ".") + ","
Next i
Debug.Print colw
End Sub
On lance le formulaire, on règle les largeurs de colonnes et on double-clique sur la listView.
On récupère ce qui est affiché dans la fenêtre d'exécution du VBA et on le met dans la ligne qui initialise le colw ( colw = Array())
On décommente la ligne avec colw = et on met en commentaire la ligne .Add , , ColName(1, c), 70 , on décommente la ligne qui est en dessous.
Ami calmant, J.P
Bonjour ,merci pour votre explication ,mais j'ai tenté d'essayer mais un peu trop compliqué pour moi , je galère
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
77
Réponses
38
Affichages
393
  • Question Question
Microsoft 365 NFC et Excel
Réponses
1
Affichages
82
  • Question Question
Réponses
19
Affichages
2 K
Retour