liste deoulante de thierry

  • Initiateur de la discussion catherine
  • Date de début
C

catherine

Guest
bonjour,

je m' adresse plus particulierement a thierry.Dans le fichier USF_AutoFilter-Combo-V2.zip que tu m' as envoyé(et pour lequel je te remercie),je ne voit pas où apparaissent les selections pour marque et couleur dans ton code.


ps:je precise que je suis debutante en programmation vba alors peut etre que c' est moi ,qui ne sait pas chercher.merci de m' eclairer

merci beaucoup de ta réponse
 
@

@+Thierry

Guest
Coucou Catherine et le forum

C'est normal que çà ne saute pas aux yeux car je ne fais pas comme pour la ComboBox1 avec la méthode :
ComboBox1.AddItem "Moto"
ComboBox1.AddItem "Voiture"

Car à partir de la ComboBox2 je construis des tableaux indexés séquentiellement (Dynamic Array) que je place en mémoire
- Le TabB pour les Marques
- Le TabC pour les Couleurs

Les macros :
TriTabB
DoublonTabB
et
TriTabC
DoublonTabC
Effectuent un tri et une élimination de doublon tout çà dans la mémoire...

Et donc enfin j'alimente les ComboBox comme suit (sur deux macros différentes)
ComboBox2.AddItem Item
ComboBox3.AddItem Item

"Item" étant le résultat du Tri et du Nettoyage des macros...

Disons que ceci est d'un niveau relativement avancé en VBA.

Bon aprèm là je dois filer bosser suis à la bourre !
@+Thierry
 
C

catherine

Guest
j' ai pas vraiment compris ce que tu veux me dire(je suis débutante en programmation).quest c qu tu appelle "dans la memoire"?il s' agit d' une macro enregistrée.si oui, en quoi consiste t elle?
où est ce qu' il faut mettre " ComboBox2.AddItem Item et
ComboBox3.AddItem Item ?
 
@

@+Thierry

Guest
Re Catherine

Cet aprèm désolé mais je n'ai pas le temps de te faire un cours...

Non... Je parle dans la Mémoire virtuelle, (pas macro enregistrée....)

Pour "ComboBox2.AddItem Item" ce n'est pas simplement cette ligne recopiée qui pourra marcher... Il te faut construire tout ceci :


Dim MonBook As Workbook
Dim WS1 As Worksheet
Dim TabB() As String
Dim TabC() As String


Private Sub UserForm_Initialize()
Dim Cell As Range
Me.Caption = X
Set MonBook = ThisWorkbook
With MonBook
Set WS1 = .Worksheets("Sheet1")
End With

If WS1.AutoFilterMode Then
WS1.AutoFilterMode = False
WS1.Range("A1").AutoFilter
Else
WS1.Range("A1").AutoFilter
End If
ComboBox1.AddItem "Moto"
ComboBox1.AddItem "Voiture"
End Sub
Private Sub ComboBox1_Click()
Dim Cell As Range
Dim r As Range
Dim i As Integer
Dim L As Integer
ComboBox2.Clear
ComboBox3.Clear
With WS1.Range("A1")
.AutoFilter 1, ComboBox1
.AutoFilter 2
.AutoFilter 3
End With
L = WS1.Range("B65536").End(xlUp).Row
Set r = WS1.Range("B2:B" & L)
Set r = r.SpecialCells(xlCellTypeVisible)
ReDim TabB(0 To r.Count - 1)
For Each Cell In r
TabB(i) = Cell.Value
i = i + 1
Next
TriTabB
DoublonTabB

End Sub
Sub TriTabB()
Dim ValMin As Integer, ValSup As Integer
Dim i As Integer, j As Integer, ii As Integer
Dim Tab1 As String
ValMin = LBound(TabB)
ValSup = UBound(TabB)
For i = ValMin To ValSup
For j = ValMin + ii To ValSup
If TabB(i) > TabB(j) Then
Tab1 = TabB(j)
TabB(j) = TabB(i)
TabB(i) = Tab1
End If
Next j
ii = ii + 1
Next i
End Sub
Sub DoublonTabB()
Dim i As Integer
Dim Item As String
Item = ""
For i = LBound(TabB) To UBound(TabB)
If Item = TabB(i) Then
Else
Item = TabB(i)
ComboBox2.AddItem Item
End If
Next i
End Sub


Et ceci rien que pour que la ComBobox2 puisse être alimentée !

Euh Lien supprimé j'ai mis trois exemples, les as tu bien regardés un par un (surtout le troisième qui est bien commenté pour une débutante)...

Sur ce je dois te laisser pour l'instant
Bon Aprèm
@+Thierry
 
@

@+Thierry

Guest
:) il n'y a pas de mal !!

As-tu au moins compris quelque chose ? (regarde l'exemple 3 dans le lien ci-dessus, ce devrait t'aider)

Si tu as des questions je repasserai plus tard dans la soirée

@+Thierry
 
C

catherine

Guest
en fait,je comprends pas comment tu fais marcher un filtre.j epensais que ce tu m' avais envoyé c' était la totalité du code c' est pour cela que je t' ai parlé des deux autres combobox.je n' ai pas internet chez moi,on pourra en reparler demain matin si tu kle veu bien
passe une bonne soirée
 
C

catherine

Guest
Bonjour thierry,
Sur ton fichier,quand on choisi par exemple voiture puis peugeot puis noire par exemple;en suite quand on tape sur exit pour sortir du userform,tout est réinitialisé.ne peut on pas faire en sorte que la premiere ligne selectionné soit sauvegardée?.on passerai alors a la ligne d' en dessous et on reclikerai sur le userform por faire notre selection
 
@

@+Thierry

Guest
Bonjour Catherine et le Forum,

Bien sûr qu'on peut le faire, ce que tu as en main n'est qu'une démo, son but est de faire comprendre comment utiliser des ComBOBox en cascade, la gestion de report des données sélectionnées à fait l'objet de plusieurs de mes démos ici.

Par exemple si tu veux un bouton validation qui reporterait le résultat de ta sélection c'est (of course) tout à fait possible...

Je ne sais pas exactement ce que tu voudrais faire, mais disons que si, par exemple, tu voulais faire de la facturation regarde cette démo :

USFFacturationGestionStockV3.zip (28k)

Tu y trouveras peut-être ce que tu veux faire (?)

Sinon donne nous un peu plus d'info sur ce que tu voudrais obtenir...

Bonne Journée
@+Thierry
 
D

dj.run

Guest
Bonjour catherine et @+thierry,

je me permets de m'inserer dans votre dialogue pour demander un petit renseignememt à thierry.

j'ai telecharger tes trois exemples qui sont fort interesant pour moi car je suis dans le meme cas que catherine (débutant et embeté avec mon usf)

par contre chez moi tes exemples plantent

erreur d'execution 1004:
la methode autofilter de classe range à echoué

sur la ligne : Sheets(1).Range("A3").AutoFilter 2, ListBox2 'je filtre

et je comprends pas pourquoi ?

merci de m'eclairer .

dj.run
 
@

@+Thierry

Guest
Salut Dj.run

Es-tu sous Excel 97 ? si oui... Ben c'est un problème récurrant...

Sinon regarde aussi => VBE menu => Outils => Options => Onglet General et regarge à "Error Trapping" quelle option est cochée ?

Sinon donne plus de détails ?, ton OS, la version d'Excel et quelle action sur quelle démo ...

Merci d'avance

Là je fais une chti démo pour Catherine, je reviens

@+Thierry


PS je viens de regarder dans l'annuaire des membres, il semblerait que tu soies sous 97... Arf... Mon problème est que je ne n'ai plus de machine qui tourne encore avec cette version et que je ne sais pas comment tester ce que cette espèce de "@#@##*!<^" supporte ou supporte pas...

Vivement qu'office 2000 soit gratos, comme nous l'a annoncé Ti !!
 

Statistiques des forums

Discussions
312 215
Messages
2 086 318
Membres
103 176
dernier inscrit
jean.yvesjean.yves