› Excel e gli applicativi Microsoft Office › Visualizzare colonna ad intervallo nella listbox
-
AutoreArticoli
-
Salve a tutti,
spero possiate aiutarmi con il mio quesito..
In una userform ho un pulsante e una listbox; se il pulsante viene cliccato, nella listbox, vengono visualizzate le prime sette colonne. Qui avrei la necessità di visualizzare la colonna numero 45.
Nella listbox dovranno uscire le colonne numero: 1,2,3,4,5,6,7 e 45.
Questa è la macro che utilizzo:
Private Sub CommandButton4_Click() Dim wbFrom As Workbook, wbTo As Workbook, wkFrom As Worksheet Dim Righe As Long, Colonne As Long, r As Long, C As Long, arrLstBox() As Variant Dim Rng As Range Set wbFrom = Workbooks("FileMaster.xlsx") Set wbTo = ThisWorkbook Set wkFrom = wbFrom.Sheets("Sheet1") With wkFrom.Range("A5").CurrentRegion Righe = .Rows.Count - 1 Colonne = .Columns.Count Set Rng = .Offset(1, 0).Resize(Righe, Colonne) End With Righe = wkFrom.Range("A5").CurrentRegion.Rows.Count - 1 Colonne = wkFrom.Range("A5").CurrentRegion.Columns.Count Me.ListBox1.ColumnCount = 7 ReDim arrLstBox(1 To Righe, 1 To Colonne) For r = 1 To Righe For C = 1 To Colonne arrLstBox(r, C) = wkFrom.Cells(r + 1, C) Next C Next r Me.ListBox1.List() = (arrLstBox) End SubGrazie mille in anticipo per la disponibilità e buona continuazione
Ma il codice, che non ho provato naturalmente, ti funziona o no?
Perchè per mettere il riferimento alla nuova colonna ti basterà inserirla dopo il next C. Ovviamente devi dimensionare arrListBox in modo che possa ospitare una colonna in più (e probabilmente anche la proprietà ColumnCount del ListBox andrà adeguata):
For r = 1 To Righe For C = 1 To Colonne arrLstBox(r, C) = wkFrom.Cells(r + 1, C) Next C arrLstBox(r, C + 1) = wkFrom.Cells(r + 1, 45) 'legge la colonna 45, riga per riga Next rCiao vecchio frac,
grazie mille per aver risposto!
Ho inserito la tua soluzione ma mi dava errore; ho anche cambiato il numero di visualizzazione ma niente.
Allora ho cambiato il codice in questo modo:
ReDim arrLstBox(1 To Righe, 1 To Colonne + 1) For r = 1 To Righe For C = 1 To Colonne arrLstBox(r, C) = wkFrom.Cells(r + 1, C) Next C arrLstBox(r, 8) = wkFrom.Cells(r + 1, 45).Valueadesso va una meraviglia!
Grazie per l'imput.
Buona continuazione e a presto
Ma il codice, che non ho provato naturalmente, ti funziona o no?
Si funziona, dovevo solo capire come inserire l'altra colonna.
-
AutoreArticoli
