Esecuzione macro excel



  • Esecuzione macro excel
    di Elelisah (utente non iscritto) data: 01/03/2010


    ciao,
    ho un problemino con vba... ho fatto una macro che legge da una pagina delle informazioni, le incolla su una seconda pagina che sviluppa il relativo piano di ammortamento. una volta sviluppato copia il piano su una terza pagina e ricomincia.
    il problema: quando ho 300 pratiche, il passaggio da una pagina all'altra durante l'esecuzione della macro (che funziona!) fa venire il mal di testa. c'è un modo per non far vedere tutta l'esecuzione e il continuo passaggio da un foglio all'altro 300 volte? qualcuno mi ha accennato che esiste il modo.. ma non trovo nulla.

    grazie mille in anticipo



  • di Enzo (utente non iscritto) data: 01/03/2010

    Prova ad inserire nella tua macro all'inizio
    ed alla fine le seguenti istruzioni
    fa sapere
     
    ''ALL'INIZIO
    Application.ScreenUpdating = FALSE
    ''ALLA FINE
    Application.ScreenUpdating = TRUE
    



  • di Elelisah (utente non iscritto) data: 01/03/2010

    Grazie mille! era quello che mi ci voleva..
    una domanda ancora, approfitto dell'enorme gentilezza. eseguo la mia macro e mi accorgo che più sono le pratiche su cui sviluppare i piani più lenta è la macro. perchè nel foglio dove incolonna i piani di ammortamento gli do' da fare questo loop sotto. solo che inizia sempre dalla prima riga. man mano che sono accodati i piani il loop diventa sempre più pesante. ma come faccio a renderlo dinamico? la prima volta inizia dalla prima riga, ma le volte successive dovrebbe iniziare almeno 200 righe più in basso e così di volta in volta.

    bohh..


     
    Range("E2").Select
        i = 1
        Do Until Cells(i, 5).Value = 0
        i = i + 1
        Loop
        interv = "A" & i & ":F" & i + 200
        Range(interv).Select
        Selection.ClearContents



  • di Enzo (utente non iscritto) data: 02/03/2010

    Se posti esattamente cosa vuioi ottenere nella colonna ossia cosa vuoi fare, con un file di esempio cancellando i dati sensibili, forse la si puo' rendere ""piu' dinamica""
    ciao



  • di Enzo (utente non iscritto) data: 02/03/2010

    Molte volte i ""select"", per farti un esempio, quando si puo' e' meglio non utilizzarli, rallentano


  • Esecuzione macro excel
    di Elelisah (utente non iscritto) data: 02/03/2010

    Come faccio a postare il file?
    il codice posso scriverlo sotto, ma il file..



  • di Enzo (utente non iscritto) data: 02/03/2010

    In alto a destra trovi "allega file alla discussione"



  • di Elelisah (utente non iscritto) data: 02/03/2010

    Ecco l'avevo trovato. ho semplificato.. immagina che nel foglio sheets ci possono essere anche 200 righe.

    mi scuso in anticipo perchè le mie conoscenze di vba sono piuttosto scarse. quindi alcuni passaggi risulteranno ridondanti.

    ps: non sapevo che select fosse pesante. mamma mia...



  • di Enzo (utente non iscritto) data: 02/03/2010

    Certe volte i select sono pesanti altre volte no
    esempio banale
    la prima seleziona la cella e cancella il contenuto
    la seconda fa lo stesso ma senza selezionare la cella

    range ("a1").select
    selection.clearcontents

    range("a1").clearcontents

    se i comandi select li utilizzi in una macro per ..n volte ti rallenta il tutto ma ti ripeto che certe volte bisogna utilizzarli






  • di Elelisah (utente non iscritto) data: 02/03/2010

    Ho capito. allora la mia macro è campione di rallentamenti..



  • di Enzo (utente non iscritto) data: 02/03/2010

    Dovresti spiegsre cosa vuoi ootenere e mi spiego meglio, lp'istruzione qui sotto mi da un errore
    "tipo non corrispondente" in quanto la spiegazione e'
    .... fino a quando la cella i,53 <> e' vuota ma essendo sempre occupata da errore
    se chiarisci cosa vuoi ottenere e' meglio.
    ciao
     
    Range("A1").Select
        i = 11
        Do Until Cells(i, 53) <> ""
        i = i + 1
        Loop



  • di Elelisah (utente non iscritto) data: 02/03/2010

    Perchè a volte la riga 11 e quella 12 possono essere vuote. poichè devo fare il copia della tabella, per timore che mi potesse copiare e poi incollare righe vuote che non sapevo come eliminare ho inventato questa cosa. per cui dalla riga 11 colonna 53 cerca la prima cella non vuota. da lì copia l'area. incolla la tabella nel foglio 'sviluppo piani' in questo foglio deve accodarmi tutte le tabelle man mano..
    non so se ho spiegato bene.



  • di Elelisah (utente non iscritto) data: 02/03/2010

    L'ho eseguita e non mi da' errore... come mai jnon riesci ad eseguirla?



  • di Enzo (utente non iscritto) data: 02/03/2010

    Non ho abbandonato, quando ho un po' di tempo vedo che se po' fa.
    ciao



  • di Elelisah (utente non iscritto) data: 02/03/2010

    Grazie dell'aiuto.
    ciao