Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Nascondere fogli di lavoro in una cartella

    Ciao a tutti sono alle prime armi del vb per Excel, alla clava per intenderci:gren:
    La cartella in questione ha più fogli di lavoro al suo interno :
    uno con i comandi principali che in cui l'utente sceglie il da farsi,
    uno con un grafico,
    due con due diverse tabelle pivot,
    il tutto viene caricato da più fogli ausiliari.
    Il caricamento dei dati funziona così: si parte da n fogli che vengono copiati in un foglio cosidetto 'predati' e, poichè il cliente desiderava i dati in un altro ordine viene popolato il foglio 'dati' richiamndo duecento volte il metodo che segue:
    Private Sub SpostaColonna(foglioDiPartenza As String, foglioDiArrivo As String, ndiceColonnaPartenza As Long, indiceColonnaArrivo As Long)
    Application.Worksheets(foglioDiPartenza).Select
    Worksheets(foglioDiPartenza).Columns(indiceColonna Partenza).Select
    Worksheets(foglioDiPartenza).Columns(indiceColonna Partenza).Copy
    Worksheets(foglioDiArrivo).Select
    Worksheets(foglioDiArrivo).Columns(indiceColonnaAr rivo).PasteSpecial
    End Sub
    e qui si genera il gravissimo inconveniente ( )... lo sfarfallio che si produce copiando colonna per colonna....
    ho quindi pensato di rendere invisibile i suddetti fogli peccato che così facendo sull'istruzione
    Application.Worksheets(foglioDiPartenza).Select
    il tutto mi va in errore:
    "Errore nel metodo select per la classe Worksheets"
    Qualcuno mi sa aiutare? Grazie in anticipo ed evviva le fisime degli utenti che ci danno tanto lavoro!!!!

  2. #2
    Utente di HTML.it L'avatar di JamesD
    Registrato dal
    Oct 2001
    Messaggi
    415

  3. #3
    ciao a tutti mi rispondo da sola per condividere la soluzione che mi hanno dato in un altro forum..... ebbene si non ho scritto solo a voi
    :tongue:
    Il magico personaggio che mi ha risposto mi ha suggerito che :
    A prima vista potresti tentare di evitare il refresh della interfaccia
    visuale.
    Prima del loop che richiama ricorsivamente la funzione di spostamento prova ad impostare la proprietà:
    Application.ScreenUpdating = FALSE
    ed alla fine delle operazioni:
    Application.ScreenUpdating = TRUE
    Questo metodo dovrebbe evitare lo sfarfallio ed avere il grande vantaggio divelocizzare l'esecuzione della tua procedura, in quanto i tempi necessari all'aggiornamento video sono drasticamente ridotti.
    Ottimo in tutti i casi in cui non è necessario mostrare all'utente finale ciò che succede a livello intermedio di procedura...

    e signori è proprio così, lo confermo!
    E' proprio un mago
    A presto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.