Notifications
Clear all

Salvar Como

4 Posts
1 Usuários
0 Reactions
1,284 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Uso o excel 2003 para criar macros. Em C:Escola tenho muitas pastas com muitas planilhas uma abre outra. A pricipal que funcional como menu (cheia de botões eu desabilito quase todas as barras de controles ou seja tela fica limpa. Para abrir uma pasta eu uso:

Private Sub Cmd_Gdae_Dados_Click()

Workbooks.Open Filename:=ThisWorkbook.Path & "Gdae-IMP.xls"

End Sub

GDAE-IMP é uma pasta que executo bimestralmente e quero criar uma macro que salve como: GDAE-IMP-1BI.xls (sendo 1 variavel). por exemplo no arquivo "BI 1".
Achei na internet a seguinte macro:
Sub Mcr_Salva_Como_GDAE_IMP()

Range("AC1") = InputBox("Nº do Bimestre (1, 2, 3, 4)") ' incluisão que eu fiz

Dim nRange As Range
Set nRange = Worksheets("INICIAL").Range("AA1") ‘AA1 = AB1&AC1&AD1 (GDAE-IMP-1BI) 1=varialvel
Dim stDir As String
Dim vaSvar As Variant

'Digite aqui o Diretório
stDir = "C:Escola"
ChDrive stDir
ChDir stDir
vaSvar = Application.GetSaveAsFilename(nRange, "Microsoft Excel(*.xls), *.xls", , _
"Deseja salvar este Workbook " & nRange & "?")
If vaSvar = False Then Exit Sub
ThisWorkbook.SaveAs Filename:=CStr(vaSvar)

End Sub

Dentro de C:Escola estão todas Pastas e mais 5 diretórios (BI 1, BI 2, etc.). Quero substituir C:Escola por Path ou seja não ficar vinculado a nenhum drive ou diretório, assim poderei usar até em um Pendrive (mas não sei como). Quero também que salvar como e que save dentro do diretório ”BI 1” por exemplo e no final não precisasse de confirmar na tela de Salva, ou seja salvar sem confirmação.

Deste já agradeço aos mestres

Carlos Novaes

 
Postado : 31/10/2011 8:31 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Você poderia salvar na pasta onde está o arquivo que contém a macro em execução...

    Dim Pasta As String
    
    If Right(ThisWorkbook.Path, 1) = "" Then
        Pasta = ThisWorkbook.Path
    Else
        Pasta = ThisWorkbook.Path & ""
    End If

A variável pasta possui o caminho onde o arquivo está salvo... por exemplo,: "C:Documents and SettingsalexandreDesktop"

Adaptando seu código, minha sugestão é: (não testei....)

Sub Mcr_Salva_Como_GDAE_IMP()
    Dim Bimestre As Long
    Dim stDir As String

    Bimestre = InputBox("Nº do Bimestre (1, 2, 3, 4)") ' incluisão que eu fiz

'Dim nRange As Range
'Set nRange = Worksheets("INICIAL").Range("AA1") 'AA1 = AB1&AC1&AD1 (GDAE-IMP-1BI) 1=varialvel
'Dim vaSvar As Variant

'Digite aqui o Diretório
'stDir = "C:Escola"

    If Right(ThisWorkbook.Path, 1) = "" Then
        stDir = ThisWorkbook.Path
    Else
        stDir = ThisWorkbook.Path & ""
    End If
    
'ChDrive stDir
'ChDir stDir
'vaSvar = Application.GetSaveAsFilename(nRange, "Microsoft Excel(*.xls), *.xls", , _
'"Deseja salvar este Workbook " & nRange & "?")
'If vaSvar = False Then Exit Sub
'ThisWorkbook.SaveAs Filename:=CStr(vaSvar)

    stDir = stDir & "BI " & Bimestre & "Gdae-IMP.xls"
    
    MsgBox "O arquivo será salvo conforme abaixo:" & vbCrLf & stDir, vbInformation, "Alerta"
    
    ThisWorkbook.SaveAs Filename:=stDir & "BI " & Bimestre & "Gdae-IMP.xls"

End Sub
 
Postado : 01/11/2011 2:46 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite Alexandre testei a macro com o "2" bimestre e deu o seguinte erro:
Erro em tempo de execução '1004'

O Microsoft Office Excel não pode acessar o arquivo'C:EscolaBI
2Gdae-IMP.xlsBI 2'. Há várias razões possiveis:

O nome do arquivo ou caminho não existe.
O arquivo está sendo usado por outro programa.
O nome da pasta de trabalho que você está tendando salvar é o
mesmo de outra pasta de trabalho aberta no momento.

C:EscolaBI 2 ou BI2 não sei! se for nescessario eu posso mudar o nome do arquivo para BI1; BI2; BI3; BI4 e BI5. em vez de BI 1; BI 2;.........
Gdae-IMP.xlsBI 2 - acredito que está errado deveria ser Gdae-IMP-2BI.xls.

Obs. dentro da pasta já tinha uma pasta Gdae-IMP.xls

Agradeço a sua colaboração e conto com a sua correção na macro.
Obrigado
Carlos Novaes

 
Postado : 01/11/2011 4:02 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Sub Mcr_Salva_COMO_GDAE_BI_x()
Dim Drt As String
Dim ceder As String

Sheets("INICIAL").Select
Range("A1").Select
Drt = UCase(InputBox("Digite o Bimestre:, BI-1; BI-2 ; BI-3; BI-4; CF", "Diretório")) ' Diretório e sobrenome da PASTA
ceder = ThisWorkbook.Path
Application.DisplayAlerts = False
'GDAE-IMP- nome fixo do arquivo ((BI-X) sobrenome variável))
ActiveWorkbook.SaveAs ceder & "" & Drt & "GDAE - " & Drt & ".xls"
Application.DisplayAlerts = False
ActiveWorkbook.Close

End Sub

Esta macro funciona
Abraços
Carlos Novaes

Caso encerrado
Caso

 
Postado : 21/11/2011 7:24 pm