Userform Lento



  • Userform Lento
    di Mangusta (utente non iscritto) data: 22/03/2013 21:05:07

    Ciao a tutti ragazzi!! oggi ho un problema assolutamente generico. Ho trovato e adattato alle mie esigenze un userfom ! Legge e inserisce una serie di dati! peccato che sia lentissimo!

    Lo allego chi avesse voglia di capire il perchè o mi consigliasse una userform più performante



  • di mabolsie (utente non iscritto) data: 22/03/2013 21:34:09

    Caio ho scaricato il file ma come chiami la sub m() per aprire la userform sul foglio ?

    max



  • di Vecchio Frac data: 22/03/2013 21:38:43

    Ma è mostruoso :)
    Vuoi davvero caricare in una ListBox quasi ottomila record?! E quale sarà quel disgraziato utente che dovrà sorbirsi questo elenco infinito che non potrà mai sognarsi di scorrere per cercare il dato voluto?! >.<
    Ti credo che ci mette tanto a riempirsi...e non è che c'è molto da fare :)
    Stabilisci un filtro iniziale, riempi la ListBox con pochi record, poi permettei all'utente di filtarre i dati e quindi riempi (popoli) la ListBox in base alle scelte dell'utente.
    Di passaggio, ti faccio notare come l'orario sia caricato nella ListBox con il formato numerico invece che con il formato Ora (le 7:00 diventano 0,2916 e l'utente non saprebbe cosa significhi quel numero). Sarebbero utili anche delle intestazioni.





  • di isy (utente non iscritto) data: 22/03/2013 21:40:09

    Ciao

    Ho visto i tempi di apertura Form (non commento)
    Ora sostituisci la Sub mCaricaListBox

    E prova i tempi
     
    Private Sub mCaricaListBox()
        Dim RangeK
        RangeK = sh.Range("A2:I" & sh.Range("A" & Rows.Count).End(3).Row)
        Me.ListBox1.Clear
        Me.ListBox1.List = RangeK
    End Sub



  • di totygno71 data: 22/03/2013 21:41:02

    Io non riesco neanche ad aprirlo_



  • di Vecchio Frac data: 22/03/2013 21:43:00

    IMHO proporre all'utente una ListBox così è una tortura ^_^
    Ma naturalmente sì, la proprietà List della ListBox funziona come la RowSource della Combobox...
    +1 per isy :)





  • di Vecchio Frac data: 22/03/2013 21:43:58

    p.s.
    ben ritrovati sia a Mangusta che isy, era un bel po' di tempo ^_^





  • di Vecchio Frac data: 22/03/2013 21:45:40

    @mabolsie
    cit. " ho scaricato il file ma come chiami la sub m() per aprire la userform sul foglio ? "
    ---> quando hai il foglio aperto, premi Alt-F8 per aprire la finestra delle macro, quindi seleziona la macro "m" e clic su Esegui (le macro devono essere attivate).





  • di mabolsie (utente non iscritto) data: 22/03/2013 21:45:42

    @ vecchio frac
    @ isy
    Scusate la mia ignoranza ma come avete fatto a lanciare la userform ??

    Vorrei divertirmi anch'io
    grazie
    Max



  • di mabolsie (utente non iscritto) data: 22/03/2013 21:46:54

    Grazie vecchio frac

    Max



  • di isy (utente non iscritto) data: 22/03/2013 22:07:20

    Ciao

    Aggiungo un'alternativa al precedente codice.
    Provate il metodo: Me.ListBox1.RowSource
    In questo modo se si modifica una cella del foglio si aggiorna automaticamente anche il Form..

    Sostituite sempre la precedente sub: mCaricaListBox

    Buone prove!
     
    Private Sub mCaricaListBox()
        Me.ListBox1.Clear
        Me.ListBox1.RowSource = sh.Range("A2:I" & sh.Range("A" & Rows.Count).End(3).Row).Address
    End Sub



  • di Mangusta (utente non iscritto) data: 22/03/2013 22:09:07

    Wow che risontro!!!
    ctrl + A e dopo un pochino si apre ^_^
    al mio segnale scatenate i commenti!!
    sono i miei primi form come metto filtro?



  • di Vecchio Frac data: 22/03/2013 22:24:46

    cit. " Provate il metodo: Me.ListBox1.RowSource "
    ---> Ah! ma allora vedi che non ero del tutto rinco? :P qualcosa del genere mi ricordavo che esistesse...
    Un altro +1 per isy ^_^

    cit. "sono i miei primi form come metto filtro?"
    ---> E bè, in effetti... ciclando con Additem negli elementi che soddisfano il criterio. Chiaro che caricare tutti gli elementi con i metodi che ha suggerito isy è più veloce :) Del resto Excel non è Access ;)