Bloccare listbox automaticamente
Hai un problema con Excel? 
Bloccare listbox automaticamente
di AlfredoLino (utente non iscritto) data: 31/01/2017 18:50:21
Buongiorno a tutti.
Avrei un problema da risolvere ve lo propongo:
Uso l'evento Click di una listbox per selezionare una riga, e trasportare i dati di questa riga dentro delle textbox per poterli modificare o eliminare.
Funziona tutto benissimo, eccezione fatta per una sola cosa,
se effettuo una selezione (es. la riga 1) trasporto i dati nelle textbox
se ne effettuo un'altra (es. la riga3) sovrascrivo i dati precedentemente inseriti nelle textbox.
Vorrei far si che effettuata la prima selezione non si possa piu selezionare alcuna riga nella listbox.
Uso un pulsante con questo codice e funziona, blocca la selezione nella listbox
Private Sub CommandButton1_Click()
ListBox1.Selected(ListBox1.ListIndex) = False
ListBox1.Locked = True
End Sub
Il mio problema è che dovrebbe funzionare in automatico cioè senza il pulsante
se metto le due istruzioni del pulsante nella routine dove ho scritto '''QUI IL CODICE MANCANTE"
non funziona!
Mi potete aiutare, grazie
Alfredo
Private Sub ListBox1_Click() 'Carico la riga selezionata nelle textbox
riga = ListBox1.ListIndex 'raccolgo il numero della riga che seleziono
If riga = "0" Then Exit Sub 'se selez riga 1 esco
Sel = MsgBox("Vuoi abilitare le modifiche al Record Selezionato ?", vbYesNo)
If Sel = vbYes Then
Frame1.Enabled = False
Frame2.Enabled = False
TextBox5 = Cells(riga + 1, 1)
TextBox6 = Cells(riga + 1, 2)
TextBox7 = Cells(riga + 1, 3)
TextBox8 = Cells(riga + 1, 4)
TextBox9 = Cells(riga + 1, 5)
TextBox10 = riga
ModRecord.Locked = False
ElimRecord.Locked = False
Aggiungi.Locked = True
TextBox9.SetFocus
'''QUI IL CODICE MANCANTE"
Else
End If
End Sub
|
di mabolsie data: 31/01/2017 20:08:31
ciao Alfredo dovresti inserire il file completo per verificarne il funzionamento.
Ciao Max
di AlfredoLino (utente non iscritto) data: 01/02/2017 12:21:02
Ho allegato un file di esempio... scusa se è un po pasticciato e se alcune funzioni non vanno, è in lavorazione.
Cmq. a questo file prova manca l'istruzione con la quale provo a disabilitare la listbox (ListBox1.Selected(ListBox1.ListIndex) = False
ListBox1.Locked = True) . Si puo notare che, dopo aver scelto la riga 1 e confermato dando ok alla combobox che compare appena si clicca,
se si seleziona un altra riga ripete il ciclo. Esce di nuovo la combobox e chiede conferma.
Vorrei far si che avendo selezionato una riga dalla listbox, non sia possibile selezionarne un altra se prima non è stata eliminata
o aggiornata la riga gia selezionata.
Grazie Max x l'interesse
di AlfredoLino (utente non iscritto) data: 02/02/2017 19:14:35
Ho provato e riprovato... mi sa che non è possibile farlo! Di certo non con le mie modeste capacità!
di mabolsie data: 02/02/2017 23:31:36
Ciao Alfredolino prova questo codice, in pratica ti controlla la textbox5 se non è vuota blocca la scelta della listbox1.
Ciao Max
Private Sub ListBox1_Click() 'Carico la riga selezionata
riga = ListBox1.ListIndex
If riga = "0" Then Exit Sub
'*********************************************************
If TextBox5.Value <> "" Then
ListBox1.Enabled = False
Exit Sub
End If
'*********************************************************
Sel = MsgBox("Vuoi abilitare le modifiche al Record Selezionato ?", vbYesNo)
If Sel = vbYes Then
Frame1.Enabled = False
Frame2.Enabled = False
TextBox5 = Cells(riga + 1, 1)
TextBox6 = Cells(riga + 1, 2)
TextBox7 = Cells(riga + 1, 3)
TextBox8 = Cells(riga + 1, 4)
TextBox9 = Cells(riga + 1, 5)
TextBox10 = riga
ModRecord.Locked = False
ElimRecord.Locked = False
Aggiungi.Locked = True
TextBox9.SetFocus
End If
End Sub |
di AlfredoLino (utente non iscritto) data: 03/02/2017 11:34:48
Oggi mi sono sentito un poco "VbaStupido" anche essendo consapevole di non saperne molto di Vba!
La soluzione era banale, ma mi ero fissato con il voler bloccare la listbox!
Grazie Max mi hai aperto la mente li dove si era bloccato il mio pensiero!
In effetti mi è bastato aggiungere il controllo sulla textbox5 con If ed exit sub
se trovi la text box compilata (quindi gia ho selezionato un record) esci dalla sub,
senza fare azioni sulla listbox ottengo il risultato "ambito"
Grazie ancora
If TextBox5.Value <> "" Then
Exit Sub
End If
|
di mabolsie data: 03/02/2017 12:39:04
Bene !!!
Ciao Max
Vuoi Approfondire?