Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Probleme "erreur d'execution 5"

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 !

GuillaumeTenim

XLDnaute Nouveau
Bonjour tout le monde.

J'ai un souci avec mon code vba, et je n'arrive pas à trouver de solution. J'ai un code d'erreur d'execution 5 au lancement de l'userform. J'ai repéré le problème mais je n'arrive pas à le résoudre. La ligne qui pose problème est

Sub filtre()
...
Me.ListBox1.ListIndex = Application.Transpose(a())
...
End sub

Je suis parti d'un fichier existant trouver sur le net. Le fichier marche nickel mais quand je veux le faire tourner sur mon usf... Nada.
Je m'en remets donc à vous. Si quelqu'un pouvait m'aider à solutionner le problème.
Je tourne sur windows 10 et excel 2016.

Bien à vous.
 

Pièces jointes

Solution
A tester :
VB:
Sub filtre()
   Dim a()
  
   Ligne = 0
   For i = 1 To Bd.Rows.Count
     ok = True
     For n = 1 To Bd.Columns.Count
      If Not Bd.Cells(i, n) Like Me("Cbx" & n) Then ok = False
     Next n
     If ok Then
       Ligne = Ligne + 1
       ReDim Preserve a(1 To 5, 1 To Ligne)
       For k = 1 To Bd.Columns.Count: a(k, Ligne) = Bd.Cells(i, k): Next k
      End If
   Next i
   If Ligne = 1 Then ReDim Preserve a(1 To 5, 1 To 2)
    On Error Resume Next
        ListBox1.Clear
        ListBox1.List = Application.Transpose(a)
    On Error GoTo 0
   Me.TextBox3 = Ligne
  
End Sub
Code:
Sub ListeCol(noCol)
    
  Set MonDico = CreateObject("Scripting.Dictionary")
  For i = 1 To Bd.Rows.Count
     ok = True
     For n = 1 To...
Salut le fil,
Je suis surpris qu'on essaye de mette un tableau dans un listindex .
Comme le préconise les premiers intervenants, utilisez le list.

Cependant si vous voulez que votre usf fonctionne , après analyse du code:
If ok Then Me.ListBox1.List = Application.Transpose(a)
( car si le filtre ne donne rien, a restera vide et le .list se plantera .. )

Ce serait bien également de mettre une valeur par défaut dans vos CBX lorsque vous les chargez dans la sub ListeCol, par exemple en fin de celle-ci :
Me("Cbx" & noCol) = "*"
 
Fanch 55,

Ca marche beaucoup mieux surtout avec le Me("Cbx" & noCol) = "*" . Si je ne le mets pas rien ne se remplit. Par contre je n'arrive pas à filtrer la listbox en choisissant une des valeurs dans une combobox.
Je vous mets le fichier corrigé suivant vos remarques.

Merci

Cordialement.
 

Pièces jointes

A tester :
VB:
Sub filtre()
   Dim a()
  
   Ligne = 0
   For i = 1 To Bd.Rows.Count
     ok = True
     For n = 1 To Bd.Columns.Count
      If Not Bd.Cells(i, n) Like Me("Cbx" & n) Then ok = False
     Next n
     If ok Then
       Ligne = Ligne + 1
       ReDim Preserve a(1 To 5, 1 To Ligne)
       For k = 1 To Bd.Columns.Count: a(k, Ligne) = Bd.Cells(i, k): Next k
      End If
   Next i
   If Ligne = 1 Then ReDim Preserve a(1 To 5, 1 To 2)
    On Error Resume Next
        ListBox1.Clear
        ListBox1.List = Application.Transpose(a)
    On Error GoTo 0
   Me.TextBox3 = Ligne
  
End Sub
Code:
Sub ListeCol(noCol)
    
  Set MonDico = CreateObject("Scripting.Dictionary")
  For i = 1 To Bd.Rows.Count
     ok = True
     For n = 1 To Bd.Columns.Count
       If n <> noCol Then
         If Not Bd.Cells(i, n) Like Me("Cbx" & n) Then ok = False
       End If
     Next n
     If ok Then
       tmp = Bd.Cells(i, noCol)
       MonDico(tmp) = tmp
     End If
   Next i
   MonDico.Add "*", "*"
   temp = MonDico.items
   Call Tri(temp, LBound(temp), UBound(temp))
   Me("Cbx" & noCol).List = temp
   If Me("Cbx" & noCol) = "" Then Me("Cbx" & noCol) = "*"

  
End Sub
 
- 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

  • Question Question
Microsoft 365 Erreur TCD
Réponses
5
Affichages
548
Réponses
24
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…