|
|
Cortesemente un aiuto ad un principiante ... ; vorrei capire il funzionamento di alcune proprietà di una listbox; questo il codice utilizzato:
Private Sub UserForm_Initialize()
Dim xRigaF1 As Long
Dim xRigaF2 As Long
Dim xScaduti As String
Dim xInScadenza As String
xRigaF1 = Sheets("Scaduti").Cells(Rows.Count, 1).End(xlUp).Row
xScaduti = "Scaduti!A2:F" & xRigaF1
With Me.ListBox1
.ColumnHeads = True
.RowSource = xScaduti
.ColumnCount = 6
.ColumnWidths "100;80;30;60;30"
End With
xRigaF2 = Sheets("InScadenza").Cells(Rows.Count, 1).End(xlUp).Row
xInScadenza = "InScadenza!A2:F" & xRigaF2
With Me.ListBox2
.ColumnHeads = True
.RowSource = xInScadenza
.ColumnCount = 6
.ColumnWidths "100;80;30;60;30"
End With
End Sub
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
Ciao Antonio,
puoi provare in questo modo:
---
Dim xRigaF1 As Long
Dim xRigaF2 As Long
Dim xScaduti As String
Dim xInScadenza As String
xRigaF1 = Sheets("Scaduti").Cells(Rows.Count, 1).End(xlUp).Row
If xRigaF1 = 1 Then xRigaF1 = 2
xScaduti = "Scaduti!A2:F" & xRigaF1
With Me.ListBox1
.ColumnHeads = True
.RowSource = xScaduti
.ColumnCount = 6
.ColumnWidths = "100;80;30;60;30"
End With
xRigaF2 = Sheets("InScadenza").Cells(Rows.Count, 1).End(xlUp).Row
If xRigaF2 = 1 Then xRigaF2 = 2
xInScadenza = "InScadenza!A2:F" & xRigaF2
With Me.ListBox2
.ColumnHeads = True
.RowSource = xInScadenza
.ColumnCount = 6
.ColumnWidths = "100;80;30;60;30"
End With
---
David
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
Ciao Antonio,
puoi provare in questo modo:
---
Dim xRigaF1 As Long
Dim xRigaF2 As Long
Dim xScaduti As String
Dim xInScadenza As String
xRigaF1 = Sheets("Scaduti").Cells(Rows.Count, 1).End(xlUp).Row
If xRigaF1 = 1 Then xRigaF1 = 2
xScaduti = "Scaduti!A2:F" & xRigaF1
With Me.ListBox1
.ColumnHeads = True
.RowSource = xScaduti
.ColumnCount = 6
.ColumnWidths = "100;80;30;60;30"
End With
xRigaF2 = Sheets("InScadenza").Cells(Rows.Count, 1).End(xlUp).Row
If xRigaF2 = 1 Then xRigaF2 = 2
xInScadenza = "InScadenza!A2:F" & xRigaF2
With Me.ListBox2
.ColumnHeads = True
.RowSource = xInScadenza
.ColumnCount = 6
.ColumnWidths = "100;80;30;60;30"
End With
---
David
Per il primo problema avevo risolto, mi sono accorto che nel compilare avevo omesso un semplice "=", colpa l'ora tarda ... e la vista che non è più il massimo ... mancava anche larghezza di una colonna :-((
Grazie David per il codice, è perfetto; difatti, vista la tua corresione e ragionandoci, le variabili xRigaF1 e xRigaF2 in caso di solo intestazioni restituiscono 1 e per questo mi caricava la prima riga come dato.
Erroneamente pensavo che definendo inizio riga 2 con: "xScaduti = "Scaduti!A2:F" & xRigaF1", non considerasse.
Ringrazio anche Mauro, sempre presente, per intervento. Un saluto a tutti e buona giornata.
Ciao Antonio
Immetti l'ID thread del thread in cui si esegue l'unione
Per segnalare un abuso, accedi o continua senza accedere
Grazie.
|
|
|
|
Non possiedi uno di questi account?