jtiagodias Posted November 24, 2009 at 10:31 AM Report Share #297387 Posted November 24, 2009 at 10:31 AM Ora viva. Pretendo criar um ficheiro, em Excel, que servirá de plataforma de trabalho. Esse ficheiro ficará com cerca de 1 ou 2 mb mas o objectivo era criar um ficheiro só com os dados importantes. Na prática será criar um botão para exportação em que o excel cria outro ficheiro apenas com os dados pretendidos originando assim um ficheiro com alguns kB. A questão é: - Neste momento iso está a funcionar mas com rotinas que criam um novo ficheiro excel, novas folhas de cálculo, copiam os valores e colam-nos no sitio pretendido... Acontece que toda essa operação acaba por demorar alguns minutos o que se torna bastante chato. Pretende-se també que exista a oporação contrária e aí sim o tempo de espera é bastante... Por isso a pergnta é. Qual a melhor forma de exportar ou importar dados apra novos ficheiros... Alguém consegue dar umas dicas para iniciar uma pesquisa e começar a estudar o assunto??? Desde já obrigado. Link to comment Share on other sites More sharing options...
MetalFatigue Posted November 25, 2009 at 12:56 PM Report Share #297519 Posted November 25, 2009 at 12:56 PM É assim isso torna-se um pouco subjectivo sem estar a ver todo o código. No entanto podes usar algumas técnicas para maximizar a performance. Tais como: Application.ScreenUpdating = False application.Calculation=xlCalculationManual Isto vai evitar que o excel ande a calcular constantemente cada vez que passas valores e evita também mostrar o que está a fazer. Não te esqueças depois no final do processamento de meteres True e xlCalculationAutomatic. Outra solução pode passar por criares uma cópia do ficheiro e apagares só que não queres: Private Sub CriarBackup() Dim ficheiros() As Ficheiro Dim file As Variant Windows(fichSem.nome).Activate ficheiros = CriarVectorFicheiros 'Cria ficheiros a serem copiados Call CreateFolder 'Cria o directorio de backup se necessário For Each file In ficheiros Dim fso Dim sfol As String, dfol As String 'file = ficheiros(i).nome ' change to match the file name sfol = file.endereco ' change to match the source folder path dfol = ActiveWorkbook.Path + "\backup\" ' change to match the destination folder path Set fso = CreateObject("Scripting.FileSystemObject") If Not fso.FileExists(sfol) Then MsgBox sfol & " does not exist!", vbExclamation, "Source File Missing" Else fso.CopyFile sfol, dfol, True End If Next End Sub Private Sub CreateFolder() Dim fso Dim fol As String fol = ActiveWorkbook.Path + "\backup\" ' change to match the folder path Set fso = CreateObject("Scripting.FileSystemObject") If Not fso.FolderExists(fol) Then fso.CreateFolder (fol) End If End Sub Isto foi foi directamente copiado de um código que tinha, mas acho que dá para entender. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now