Cortesemente un aiuto ad un principiante ... ; vorrei capire il funzionamento di alcune proprietà di una listbox; questo il codice utilizzato:
<cut>
in pratica ho la UserForm1 con due ListBox che caricano rispettivamenti i dati colonne A:F dei Fogli "Scaduti" e "InScadenza"
Anomalie riscontrate:
nel caso ad uno dei due fogli ho solo intestazione (quindi riga 1) e nessun dato, nella relativa listbox mi compare come intestazione "Colonna A", "Colonna B", ecc. e come prima riga le intestazioni della prima riga, mentre mi dovrebbe comparire solo intestazione
(prima riga) e nessun dato.
Mi sembra un comportamento strano e vorrei capire dove sbaglio nel codice.
Altro problema sulla riga:
.ColumnWidths "100;80;30;60;30"
mi và in errore: "Errore di compilazione: Utilizzo non valido di Property", come devo impostare per determinare la larghezza di colonne delle due ListBox?
Grazie mille e una buona notte a tutti.
Ciao Antonio
Per ciò che riguarda la proprietà ColumnWidths, manca il simbolo di assegnazione(=), vedi codice.
Il resto non l'ho capito. Il codice qui sotto prende tutti i valori da A1:F(n) compresa l'eventuale intestazione per Scaduti e tralascia la prima riga per InScadenza:
Private Sub UserForm_Initialize()
Dim shScaduti As Worksheet
Dim shInScadenza As Worksheet
Dim lRigaScaduti As Long
Dim lRigaInScadenza As Long
With ThisWorkbook
Set shScaduti = .Worksheets("Scaduti")
Set shInScadenza = .Worksheets("InScadenza")
End With
lRigaScaduti = shScaduti.Range("A" & Rows.Count).End(xlUp).Row
lRigaInScadenza = shInScadenza.Range("A" & Rows.Count).End(xlUp).Row
With Me.ListBox1
.RowSource = shScaduti.Name & "!A1:F" & lRigaScaduti
.ColumnCount = 6
.ColumnWidths = "100;80;30;60;30"
End With
With Me.ListBox2
.RowSource = shInScadenza.Name & "!A2:F" & lRigaInScadenza
.ColumnCount = 6
.ColumnWidths = "100;80;30;60;30"
End With
Set shScaduti = Nothing
Set shInScadenza = Nothing
End Sub
Qui trovi il file utilizzato per le mie prove: http://www.maurogsc.eu/esempiforum12/duelistbox1201.zip