potrebbe essere così
http://img224.imageshack.us/img224/4388/anagch6.jpg
partenza:
- Codice: Seleziona tutto
Private Sub UserForm_Activate() 'partenza
OptionButton1 = True
OptionButton2 = False
ComboBox1.AddItem "Buono"
ComboBox1.AddItem "Medio"
ComboBox1.AddItem "Pessimo"
j = ComboBox1.ListIndex + 1
ComboBox2.Locked = True
End Sub
essendo optionbutton1=TRUE allora parte subito la relativa routine
- Codice: Seleziona tutto
Private Sub OptionButton1_Click() 'filtro solo i clienti
If OptionButton1 = True Then
If ListBox1.ListCount >= 1 Then ListBox1.Clear
i = 2
Do Until Sheets("clienti").Cells(i, 2).Value = ""
With Sheets("clienti")
elem = .Cells(i, 2).Value
End With
ListBox1.AddItem elem
i = i + 1
Loop
End If
ComboBox2.Locked = True
cancella
End Sub
per darti un'idea il foglio "Clienti" è così
http://img146.imageshack.us/img146/9855 ... clijx7.jpgin pratica all'avvio carichi subito i clienti, poi puoi filtrare i fornitori col button1, ma a te interessa di più il codice per caricare il listbox, quando fai clik sopra un nominativo(a questo punto del codice hai solo il list caricato) si popolano i vari box, per far questo devi mettere questo codice
- Codice: Seleziona tutto
Private Sub ListBox1_Click()
If OptionButton1 = True Then
p = ListBox1.ListIndex + 2
vedi
End If
If OptionButton2 = True Then
p = ListBox1.ListIndex + 150
vedi
End If
End Sub
la routine "Vedi" è così
- Codice: Seleziona tutto
Private Sub vedi() 'mostro tutti i campi al click sul listbox
TextBox1.Text = Sheets("clienti").Cells(p, 1) 'cod
TextBox2.Text = Sheets("clienti").Cells(p, 2) 'rag.socilae
TextBox3.Text = Sheets("clienti").Cells(p, 3) 'indirizzo
TextBox4.Text = Sheets("clienti").Cells(p, 4) 'cap
TextBox5.Text = Sheets("clienti").Cells(p, 5) 'città
TextBox6.Text = Sheets("clienti").Cells(p, 6) 'ptovincia
etc.......
(potresti farlo con un loop, ma così in un prog. vasto puoi sempre controllare l'esattezza del n° di box col riferimento di riga (p)
PS. ad inizio modulo devi dichiarare le variabili Public
- Codice: Seleziona tutto
Public p As Integer, i As Long
altrimenti ti rimanda errore.
potresti togliere alla partenza l'operazione che faccio io col optionbutton e inserire direttamente il codice della routine
Private Sub OptionButton1_Click() togliendo ogni riferimento agli optionbutton. Ti ho scelto questo codice un pò complicato
con optionbutton e combobox, così puoi vederti anche altre funzioni che puoi fare con vba
prova