• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

jtiagodias

Criação e Exportação de ficheiros

2 mensagens neste tópico

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É 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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora