Excel Problème VBA Code erreur "9"

Fermé
rwdesign Messages postés 2 Date d'inscription mardi 5 juin 2012 Statut Membre Dernière intervention 8 juin 2012 - 24 juil. 2012 à 11:19
tuxboy Messages postés 995 Date d'inscription lundi 23 juillet 2012 Statut Membre Dernière intervention 28 mai 2019 - 24 juil. 2012 à 12:13
Bonjour,

j'ai un soucis que je n'arrive pas a résoudre ...

je fait un filtre avec une listbox sur plusieurs feuilles de mon classeur excel , mais j'ai cette erreur que je n'arrive pas a enlever ...

voici le code :

Option Explicit

Dim v(10000, 6) As String
Dim nbV As Long

Private Sub CommandButton2_Click()
Me.Hide
End Sub



Private Sub Label5_Click()

End Sub

Private Sub ListView1_DblClick()
Dim indice As Long
indice = ListView1.SelectedItem.Tag
With ThisWorkbook.Sheets(v(indice, 0))
.Select
.Range("B" & CLng(v(indice, 6)) & ":G" & CLng(v(indice, 6))).Select
End With
End Sub

Private Sub TextBox1_Change()
AfficherVecteur
End Sub

Private Sub TextBox2_Change()
AfficherVecteur
End Sub

Private Sub TextBox3_Change()
AfficherVecteur
End Sub

Private Sub TextBox4_Change()
AfficherVecteur
End Sub

Private Sub TextBox5_Change()
AfficherVecteur
End Sub

Private Sub TextBox6_Change()
AfficherVecteur
End Sub

Private Sub UserForm_Initialize()
Dim f As Worksheet
Dim i As Long
Dim r As Range
nbV = 0
For Each f In ThisWorkbook.Worksheets
Set r = f.Range("B16")

If f.Name <> "Accueil" Then
For i = 2 To f.Range("B65536").End(xlUp).Row
nbV = nbV + 1
v(nbV, 0) = Trim(r.Offset(i - 1, 0))
v(nbV, 1) = Trim(r.Offset(i - 1, 1))
v(nbV, 2) = Trim(r.Offset(i - 1, 2))
v(nbV, 3) = Trim(r.Offset(i - 1, 3))
v(nbV, 4) = Trim(r.Offset(i - 1, 4))
v(nbV, 5) = Trim(r.Offset(i - 1, 5))
v(nbV, 6) = i
Next i
End If
Next

AfficherVecteur
End Sub

Function AfficherVecteur()
ListView1.ListItems.Clear
Dim i As Long
For i = 0 To nbV
If Valide(i) Then AjoutListe i
Next i
End Function

Function Valide(i) As Boolean
Valide = ((v(i, 0) = TextBox1 Or TextBox1 = "") And _
(v(i, 1) = TextBox2 Or TextBox2 = "") And _
(v(i, 2) = TextBox3 Or TextBox3 = "") And _
(v(i, 3) = TextBox4 Or TextBox4 = "") And _
(v(i, 4) = TextBox5 Or TextBox5 = "") And _
(v(i, 5) = TextBox6 Or TextBox6 = ""))
End Function

Function AjoutListe(i)
Dim j As Long
With ListView1
.ListItems.Add , , v(i, 0)
For j = 1 To 5
.ListItems.Item(.ListItems.Count).ListSubItems.Add , , v(i, j)
Next j
.ListItems.Item(.ListItems.Count).Tag = i
End With
End Function



A voir également:

3 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
24 juil. 2012 à 11:35
Bonjour,
Il faut arrêter de dire :
- ça ne marche pas,
- ça ne fonctionne pas,
- le résultat n'est pas ce que j'attends.
Mais plutôt :
- j'ai une erreur de type : "blabla", qui dit que : "blabla", lorsque je clique sur débogage, la ligne suivante est surlignée en jaune : "ligne"
Voici ce que je souhaites faire :
blablablablablabla
Je vous joint un fichier pour que vous puissiez mieux appréhender le problème.
pour joindre un fichier :
mettre le classeur sans données confidentielles en pièce jointe sur

https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse *

Dans l'état de cette discussion, nous ne pouvons rien de plus pour vous.


*copyright Michel_m
1
tuxboy Messages postés 995 Date d'inscription lundi 23 juillet 2012 Statut Membre Dernière intervention 28 mai 2019 190
24 juil. 2012 à 11:38
Je "plussoie" des deux index, et il faut arrêter d'écrire "sa" à la place de "ça", ça induit en erreur mais pas sa.
0
rwdesign Messages postés 2 Date d'inscription mardi 5 juin 2012 Statut Membre Dernière intervention 8 juin 2012
24 juil. 2012 à 11:26
je vais faire sa et je vous dit
0
tuxboy Messages postés 995 Date d'inscription lundi 23 juillet 2012 Statut Membre Dernière intervention 28 mai 2019 190
24 juil. 2012 à 11:22
Après chaque "function", tu peux écrire :
On Error Resume Next
-1
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
24 juil. 2012 à 11:27
Bonjour,
C'est certainement la moins bonne, même la pire manière de traiter une erreur. D'autant plus que tu réponds sans même connaitre l'erreur!
Chapeau!...
0
rwdesign Messages postés 2 Date d'inscription mardi 5 juin 2012 Statut Membre Dernière intervention 8 juin 2012
24 juil. 2012 à 11:29
en tout cas , sa ne fonctionnent toujours pas même avec "On Error Resume Next" ...
0
tuxboy Messages postés 995 Date d'inscription lundi 23 juillet 2012 Statut Membre Dernière intervention 28 mai 2019 190
24 juil. 2012 à 11:31
Bonjour,
Certes, tu as raison, mais sans connaître l'erreur, j'ai vite vu que ce code VBA sortait d'un drôle de chapeau, alors aux grands maux...
0
rwdesign Messages postés 2 Date d'inscription mardi 5 juin 2012 Statut Membre Dernière intervention 8 juin 2012
24 juil. 2012 à 11:57
"TUXBOY" c'est bon sa marche j'ai corriger moi même mon code ... Je poste jamais d'aide sur les forums car je trouve sa inutile , sa vient de confirmer ce que je pensais ...

Cordialement
0
tuxboy Messages postés 995 Date d'inscription lundi 23 juillet 2012 Statut Membre Dernière intervention 28 mai 2019 190
24 juil. 2012 à 12:13
Bravo, tu es le meilleur et bel esprit, ne change rien, c'est parfait.
0