Condividi:        

Excel2003: listview o listbox collegare a foglio

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Excel2003: listview o listbox collegare a foglio

Postdi karug64 » 11/12/11 07:36

Salve a tutti.
So che in excel 2003 e' possibile collegare un controllo (textbox) ad una cella di modo che se modifico il valore del text modifico anche quello della cella. Ma e' possibile collegare il contenuto di una listbox (o di una listview) col foglio in modo da poter modificare sul controllo dei dati ed aggiornare il foglio ? Se per esempio inserisco la colonna check, flaggando tale valore vorrei che nella colonna A del foglio caricato, in corrispondenza della riga comparisse un valore (per esmpio X).
Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Sponsor
 

Re: Excel2003: listview o listbox collegare a foglio

Postdi Anthony47 » 11/12/11 11:30

Non mi e' chiarissimo che cosa vuoi ottenere...
L' oggetto ListBox ha la proprieta' ControlSource, che specifica quale cella del tuo workbook riflette il valore della riga scelta (es Foglio1!C1). Potrai poi specificare quale colonna del listbox verra' restituita, tramite la proprieta' BoundColumn: 0=indice di riga (0, 1,2,3,..), 1=1° colonna, 2=2° colonna etc
Una volta nota in questo modo la scela fatta potrai fare con altre istruzioni ulteriori elaborazioni; es se hai scelto la riga 11 (BoundColumn=0) e il tuo RowSource era il range "pippo" potrai colorare di rosso la col 1 di pippo con le istruzioni
Codice: Seleziona tutto
Private Sub ListBox1_AfterUpdate()
Range("pippo").Interior.ColorIndex = xlNone
Range("pippo").Range("A1").Offset(Sheets("Foglio1").Range("C1").Value, 0).Interior.ColorIndex = 3
End Sub

Per il listview devo trovare un po' di tempo, ma e' una risorsa limitatissima.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel2003: listview o listbox collegare a foglio

Postdi karug64 » 14/12/11 00:09

Anthony47 ha scritto:Non mi e' chiarissimo che cosa vuoi ottenere...
L' oggetto ListBox ha la proprieta' ControlSource, che specifica quale cella del tuo workbook riflette il valore della riga scelta (es Foglio1!C1). Potrai poi specificare quale colonna del listbox verra' restituita, tramite la proprieta' BoundColumn: 0=indice di riga (0, 1,2,3,..), 1=1° colonna, 2=2° colonna etc
Una volta nota in questo modo la scela fatta potrai fare con altre istruzioni ulteriori elaborazioni; es se hai scelto la riga 11 (BoundColumn=0) e il tuo RowSource era il range "pippo" potrai colorare di rosso la col 1 di pippo con le istruzioni
Codice: Seleziona tutto
Private Sub ListBox1_AfterUpdate()
Range("pippo").Interior.ColorIndex = xlNone
Range("pippo").Range("A1").Offset(Sheets("Foglio1").Range("C1").Value, 0).Interior.ColorIndex = 3
End Sub

Per il listview devo trovare un po' di tempo, ma e' una risorsa limitatissima.

Ciao


Ciao. Non mi e' chiaro questo passaggio:
nel tuo esempio non vedo l'utilizzo di boundcolumn e controlsource....
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 ?
Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: Excel2003: listview o listbox collegare a foglio

Postdi Anthony47 » 14/12/11 02:35

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
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel2003: listview o listbox collegare a foglio

Postdi karug64 » 14/12/11 08:11

Sei stati chiarissimo. Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22


Torna a Applicazioni Office Windows


Topic correlati a "Excel2003: listview o listbox collegare a foglio":


Chi c’è in linea

Visitano il forum: raimea e 32 ospiti

cron