Userform identique dans 2 fichiers, mais dans un fichier il y a un bug !

news

XLDnaute Impliqué
Bonjour à tous du forum,

J'utilise un fichier Excel avec 10 feuilles et 5 Userform. Le fichier fonctionne, tous les macro et code vba des 5 Userform fonctionnent.

J'ai renommé le fichier et ajouté un 6 Userform.Lorsque je veux démarrer un Userform précis, je reçois un bug !, même si rien a été changé dans cet Userform. Les 5 autres Userform fonctionnent.

Le bug est dans le tri d'un listview et le message indiqué est : "erreur d'exécution 13, incompatibilité de type". Mais ce même code vba fonctionne très bien dans le fichier initial et rien n'a été changé dans cet Userform. J'ai exécuté la macro pas à pas avec le déboggage (F8) en vérifiant au niveau de chaque ligne les valeurs dans les données et le bug est dans la procédure ci-dessous :

Public Sub Tri(ByRef ctl As ListView, ByVal k As Byte)
With ctl
.SortKey = k
If k = 1 Then
For i = 1 To .ListItems.Count
.ListItems(i).ListSubItems(1).Text = CDec(CDate(.ListItems(i).ListSubItems(1)))
Next i
.SortOrder = lvwAscending
.Sorted = True
For i = 1 To .ListItems.Count
.ListItems(i).ListSubItems(1).Text = Format(CDate(.ListItems(i).ListSubItems(1).Text), "DD/MM/YYYY")
Next i
Else
.Sorted = False
If .SortOrder = lvwAscending Then
.SortOrder = lvwDescending
Else
.SortOrder = lvwAscending
End If
.Sorted = True
End If
End With
End Sub


Je ne sais pas quel est l'erreur, car dans le fichier initial avec le même Userform, il n'y a pas de bug.
Je n'ai pas joints le fichier, comme le fichier est de 1,6 MB.

Comment résoudre?,

merci d'avance d'astuces éventuels,

news
 
Dernière édition:

news

XLDnaute Impliqué
Re : Userform identique dans 2 fichiers, mais dans un fichier il y a un bug !

Re: j'ai bien enregistré avec "enregstré sous",

en fait j'ai remarqué qu'il n'y avait pas de données dans la feuille ou la listview du Userform va rechercher les données, c'est pourquoi il y a eu le bug.
Par après est affiché autre bug avec le message " erreur d'exécution 35600, index out of bounds" dans la procédure suivante:

Public Sub Color(ByRef ctl As ListView) 'to put the color in listviews
Dim x As Byte, j As Byte, Couleur As Single

With ctl
If Couleur = vbBlue Then Couleur = vbRed Else Couleur = vbBlue
For x = 1 To .ListItems.Count - 1
.ListItems(x).ForeColor = Couleur
For j = 1 To 3
.ListItems(x).ListSubItems(j).ForeColor = Couleur
Next
If .ListItems(x + 1).ListSubItems(1) > .ListItems(x).ListSubItems(1) Then
If Couleur = vbBlue Then Couleur = vbRed Else Couleur = vbBlue
End If
Next
If .ListItems(x).ListSubItems(1) > .ListItems(x - 1).ListSubItems(1) Then
.ListItems(x).ForeColor = IIf(.ListItems(x - 1).ForeColor = vbBlue, vbRed, vbBlue)
For j = 1 To 3
.ListItems(x).ListSubItems(j).ForeColor = .ListItems(x).ForeColor
Next
End If
End With
End Sub


Le bug avec le message " erreur d'exécution 35600, index out of bounds", provient s'il y a seulement une ligne complété dans la feuille ou le Userform recherche les données et fait pour chaque autre date une couleur différente.

Quel vba code y mettre pour que le tri considère s'il en trouve aucune données et s'il n'y a au'une ligne pour la couleur ?

news
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 677
Messages
2 090 823
Membres
104 677
dernier inscrit
soufiane12