VB6 COM EXCEL

SMANUT 26/07/2009 08:42:19
#317871
Comecei a construir relatórios de fechamento, no Excel. Ótimo a Empresa esta satisfeita, feliz da vida. Mais apesar de ter tomado cuidado com o encerramento das variáveis de objeto, a rotina não executa duas vezes seguidas. Tenho que fechar o programa e abrir de novo para que a rotina funcione. Alguém já passou por isso?

Set eapp = CreateObject([Ô]excel.application[Ô])
Set EwkB = eapp.Workbooks.Add
Set Ewks = EwkB.Sheets(3)


eapp.Application.Visible = True

Sheets([Ô]Plan1[Ô]).Select
Sheets([Ô]Plan1[Ô]).Name = [Ô]Detalhado[Ô]

[ô] ao final da rotina
Set Ewks = Nothing
Set EwkB = Nothing
Set eapp = Nothing
ASELAU 26/07/2009 09:08:38
#317872
Smanut está faltando você finalizar o Excel com o close
SMANUT 26/07/2009 09:16:29
#317874
sim observei que vários colegas que usam o mesmo recurso salva o arquivo e fecha o excel, não pensei em fazer isso. Pensei em deixar o aquivo aberto para o usuário decidir se que salvar ou não

será que não posso fazer assim?
TECLA 26/07/2009 09:50:04
#317877
Creio que não.
Execute o comando CLOSE e só depois LIBERE da memória.
ASELAU 26/07/2009 09:59:45
#317880
Resposta escolhida
Smamute,

Coloque um CommonDialag no seu projeto

e adapte o seguinte comando ao seu projeto,

Antes de instanciar o excel.

NomeArquivo = [Ô][Ô] & Format(Date, [Ô]ddmmyy[Ô]) & Format(Time, [Ô]hhmmss[Ô]) & [Ô]_Moviementação_de_embalagens[Ô]

[ô]Abre caixa para salvar
[ô]CancelMe = False

On Error GoTo Common
With CommonDialog1
.CancelError = True
.DialogTitle = [Ô]Selecione a paste em que você deseja salvar...[Ô]
.Filter = [Ô]*.xls[Ô]
.FileName = NomeArquivo

.ShowSave
NomeArquivo = .FileName

End With

Common:
If Err.Number = 32755 Then
Exit Sub
End If

Desta forma o usário pode escolher o local para salvar.
Tópico encerrado , respostas não são mais permitidas