cs_sql84
Messages postés21Date d'inscriptionmercredi 31 janvier 2007StatutMembreDernière intervention24 novembre 2007
-
11 nov. 2007 à 16:26
cs_sql84
Messages postés21Date d'inscriptionmercredi 31 janvier 2007StatutMembreDernière intervention24 novembre 2007
-
11 nov. 2007 à 17:55
Bonjour la communauté
je rencontre un problème concernant le filtrage des données affichées dans un listbox (ListBox1), j'ai créer une petite procedure pour initialiser un listbox avec les valeurs issues d'une feuille, je souhaiterais proposer un menu déroulant (ComboBox5) des champs issues d'une autres feuille et qui vont permettre de filtrer les données affichées dans le listbox (extraire uniquement les données qui répondent au choix du Combobox) voir ci-dessous la procedure :
Private Sub UserForm_Initialize()
Dim TabTemp As Variant
Dim DerniereValeur As Integer
DerniereValeur = Range("ecritures!A2").End(xlDown).Row
'Chargement d'une plage de cellules dans la variable TabTemp
TabTemp = Range("ecritures!A2:G" & DerniereValeur).Value
'Définit le nombre de colonnes pour la ListBox.
ListBox1.ColumnCount = UBound(TabTemp)
'Chargement du tableau dans la ListBox
ListBox1.List() = TabTemp
End Sub
Cette methode fonctionne parfaitement, mais cela se corse considérablement lorsque je souhaite filtrer les données : voir procedure ci-dessous
Private Sub ComboBox1_Change()
Dim InString As Variant
Dim DataString As Variant
Dim DerniereValeur As Integer
DerniereValeur = Range("ecritures!A2").End(xlDown).Row
DataString = Range("ecritures!A2:G" & DerniereValeur).Value
'pour plus de simplicite j'ai commencé par Recettes comme masque de recherche au lieu de la valeur issue du ComboBox
InString = Filter(DataString, "Recettes", True)
'Définit le nombre de colonnes pour la ListBox.
ListBox1.ColumnCount = UBound(InString)
'Chargement du tableau dans la ListBox
ListBox1.List() = InString
End Sub
'la j'ai une erreur d'execution '13'
Incompatibilité de type
Je comprend pas ce qui se passe pourtant j'utilise bien deux variables de type identique ???
cela fait deux jours que je suis dessus sans résultat et je commence sérieusement a désespéré, si quelqu'un de la communauté peut m'aider, cela serai vraiment sympa
cs_sql84
Messages postés21Date d'inscriptionmercredi 31 janvier 2007StatutMembreDernière intervention24 novembre 2007 11 nov. 2007 à 17:55
Salut,
Tout d'abord merci de ta réponse,
j'ai essayer de déclarer les variables comme String mais là j'ai une erreur au niveau de la ligne
DataString = Range("ecritures!A2:G" & DerniereValeur).Value
il me faut bien un Variant car la plage selectionnée contient des données de type différent.
je me demande si le problème ne vient pas du fait que le tableau DataString a plusieurs niveaux ?
comment puis-je savoir combien de niveau contient ce tableau ? as tu une idée.