Aggiornare ListBox Nuova risposta File allegato

Anonimo
2015-11-04T16:53:38+00:00

Buonasera, 

ho una tabella su excel collegata al db e quando aggiorno questa tabella (con numero di righe fisso) vorrei riportare i dati ottenuti in una ListBox. Riesco ad aggiornare la tabella ma la ListBox non viene aggiornata e riporta i dati della situazione precedente all'aggiornamento. Dove sto sbagliando? Grazie per l'aiuto 

Salvo 

Public Sub aggiornamento()<br> <br> Sheets("ListBox").ListBox1.Clear<br> ActiveWorkbook.Connections("ea tblpolicy").Refresh<br> Z = Sheets("Tabella").Range("bd" & Rows.Count).End(xlUp).Row<br> For k = 1 To Z<br> Sheets("ListBox").ListBox1.AddItem Sheets("Tabella").Range("bd" & k).value<br> Next<br> <br> End Sub
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
2015-11-05T08:13:28+00:00

Ciao Salvatore,

ho una tabella su excel collegata al db e quando aggiorno questa tabella (con numero di righe fisso) vorrei riportare i dati ottenuti in una ListBox. Riesco ad aggiornare la tabella ma la ListBox non viene aggiornata e riporta i dati della situazione precedente all'aggiornamento. Dove sto sbagliando? 

Public Sub aggiornamento()<br> <br> Sheets("ListBox").ListBox1.Clear<br> ActiveWorkbook.Connections("ea tblpolicy").Refresh<br> Z = Sheets("Tabella").Range("bd" & Rows.Count).End(xlUp).Row<br> For k = 1 To Z<br> Sheets("ListBox").ListBox1.AddItem Sheets("Tabella").Range("bd" & k).value<br> Next<br> <br> End Sub

Prova qualcosa del genere:

'=========>>

Option Explicit

'--------->>

Public Sub aggiornamento()

    Dim WB As Workbook

    Set WB = ThisWorkbook

    With WB

        .Sheets("ListBox").ListBox1.Clear

        .Connections("ea tblpolicy").Refresh

     End With

    Application.OnTime (Now + TimeValue("0:00:01")), "UpdateListBox"

End Sub

'--------->>

Public Sub UpdateListBox()

    Dim WB As Workbook

    Dim k As Long

    Dim Z As Long

    Set WB = ThisWorkbook

    With WB

        Z = .Sheets("Tabella").Range("bd" & Rows.Count).End(xlUp).Row

        For k = 1 To Z

            .Sheets("ListBox").ListBox1.AddItem Sheets("Tabella").Range("bd" & k).Value

        Next k

    End With

End Sub

'<<=========

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

12 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-11-05T09:55:08+00:00

    Ciao Salvatore,

    Se dovresti comunque avere ancora un problema, vorrei chiederti di caricare i due file con dati sufficienti per consentirci di replicare il problema.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-11-05T09:47:19+00:00

    Ciao Salvatore,

    Vi ringrazio per le risposte ma entrambe le soluzioni non risolvono il problema. Continuo a vedere nella listbox gli items dell'aggiornamento precedente.

    Da me, la ListBox viene aggiornata correttamente. Tuttavia, secondo la dimensione o la complessità del database, può essere necessario aumentare il tempo. Quindi, prova a sostituire l'istruzione:

        Application.OnTime (Now + TimeValue("0:00:01")), "UpdateListBox"

    con  

       Application.OnTime (Now + TimeValue("0:00:05")), "UpdateListBox"

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-11-05T09:37:24+00:00

    Vi ringrazio per le risposte ma entrambe le soluzioni non risolvono il problema. Continuo a vedere nella listbox gli items dell'aggiornamento precedente.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-11-04T17:18:57+00:00
    Public Sub aggiornamento()<br> <br> Sheets("ListBox").ListBox1.Clear<br> ActiveWorkbook.Connections("ea tblpolicy").Refresh<br> Z = Sheets("Tabella").Range("bd" & Rows.Count).End(xlUp).RowSheets("ListBox").ListBox1.Clear<br> For k = 1 To Z<br> Sheets("ListBox").ListBox1.AddItem Sheets("Tabella").Range("bd" & k).value<br> Next<br> <br> End Sub

    La risposta è stata utile?

    0 commenti Nessun commento