Condividi tramite

proprietà listbox

Anonimo
2012-01-08T22:20:40+00:00

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

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2012-01-09T09:10:00+00:00

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

La risposta è stata utile?

0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2012-01-09T09:54:55+00:00

    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

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-01-09T09:07:34+00:00

    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

    La risposta è stata utile?

    0 commenti Nessun commento