Ci sono tante cose che non si vedono in quelle 2 righe di istruzioni, perche' era un esempio di "ulteriori elaborazioni" che si potevano fare usando quanto restituito nelle cella di controllo.
Ora se la tua domanda e' "come si impostano da programma ControlSource e BoundColumn, potresti usare nel codice di UserForm_Initialize qualcosa come
- Codice: Seleziona tutto
Me.ListBox1.RowSource = "Foglio2!A1:C20"
Me.ListBox1.BoundColumn = 0
Ma se le impostazioni sono statiche puoi impostare queste proprieta' direttamente in fase di progettazione della form usando la finestra proprieta', mouse e tastiera.
Se scorro il listbox e poi mi fermo in una certa casella (per esempio h20) e lì modifico il valore da kar a karug, quale istruzioni devo utilizzare per modificare sul foglio la cella h20 da kar a karug ?
Se prima non avevo capito ora sono perplesso, perche' il ListBox "
Visualizza un elenco di valori e consente di
selezionare uno o più valori." (vedi help on line; il grassetto l' ho aggiunto io). Quindi se vuoi
modificare un valore non puoi farlo direttamente in un listbox, ma dovrai usare qualche artificio. Ad esempio replichi in N textbox le N colonne della riga selezionata dal listbox; nei textbox ne puoi cambiare i valori e con un pulsante "Modifica come da textbox" inserisci questi valori nei dati di origine (e automaticamente nel listbox)
Per sapere nel vba quale riga di dati e' selezionata sul listbox userai la proprieta' ListIndex, es
- Codice: Seleziona tutto
RigaSel=ListBox1.ListIndex
(se nessuna selezione, ListIndex restituira' -1; se selezionata prima riga: 0; seconda riga: 1; etc)
Per portare nei textbox il contenuto della riga selezionata puoi usare RigaSel come "offset" rispetto ai dati RowSource, oppure puoi leggere nel Listbox; es all' interno di una macro ListBox1_Click:
- Codice: Seleziona tutto
TextBox1.Text = ListBox1.List(ListBox1.ListIndex, 0) 'prima colonna in primo textbox
Per portare infine i vari Textbox nel foglio, nella macro di CommandButton1_Click, qualcosa come:
- Codice: Seleziona tutto
Range(ListBox1.RowSource).Range("A1").Offset(ListBox1.ListIndex, 0).Value =TextBox1.Text
Range(ListBox1.RowSource).Range("A1").Offset(ListBox1.ListIndex, 1).Value =TextBox2.Text
'etc
Questo presuppone che TextBox1 corrisponda a 1° colonna del listview, TextBox2 sia col 2, etc.
Spero che le cose scritte siano utili spunti per le cose che hai in mente di realizzare; se No allora e' meglio che scrivi "che cosa" vorresti ottenere.
Ciao