Ir ao conteúdo
  • Cadastre-se

Excel configurar diretório de arquivamento


Posts recomendados

Boa tarde!

Tenho uma planilha com um controle de usuários.

Ao clicar em logar, o usuário acessa a mesma com seu CPF e estando logado, tem acesso as funcionalidades desta planilha onde após utilizar uma das funcionalidades da planilha, tem um COMMANDBUTTON que executa uma macro que oculta linhas não utilizadas e logo em seguida, já salva o arquivo com alguns padrões que já foram definidos, dentre eles, o endereço escolhido pelo usuário, porém, atualmente esse endereço é inserido manualmente no código tendo a necessidade do usuário acessar o VBA para inseri-lo manualmente.

 

O Código dessa COMMANDBUTTON é o seguinte:

Private Sub OcultarLinhasBC_Click()
    OcultarLinhasBC.BackColor = &H0&
        Application.ScreenUpdating = False
    For Each xRg In Range("O8:O152")
        If xRg.Value = "" Then
            xRg.EntireRow.Hidden = True
        End If
Next xRg
    LimparDadosReativarLinhas.Enabled = True
    OcultarLinhasBC.Enabled = False
    
Selection.End(xlDown).Select
    ActiveWindow.SmallScroll Down:=-102
    ChDir _
        '"C:\endereço inserido manualmente\"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\endereço inserido manualmente\" & Range("B158") & "_" & Format(Now, "yyyymmdd_hhmmss") _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=True
    ActiveWindow.SmallScroll Down:=-24
    Range("I8").Select
End Sub 

Tudo que eu preciso, é fazer com que esse formulário criado abaixo, no qual após o usuário logar na planilha, terá a opção de escolher o local onde será salvo o formulário e uma vez escolhido, este comando, JÁ INSERIRÁ AUTOMATICAMENTE NO CÓDIGO ACIMA, ONDE ESTÁ ESCRITO "endereço inserido manualmene", o respectivo caminho permitindo assim a excução correta da macro acima.

 

Para isso, criei um botão um botão que chamei de "CONFIGURAR DIRETÓRIOS".

Este botão foi criado utilizando "Inserir formas" do menu de ilustrações do Excel mesmo, mas nada impede ser criado um botão no formato "Active X".

Ao clicar neste botão, abre-se um formulario (frmDIR) criado dentro do VBA.

Neste formulário tem quatro botões:

 

Spoiler

image.png.ac4e571bfab288c599fc586f0a59f7d0.png

 

Neste ícone (binóculo) ao clicar, permite o usuário ir percorrendo o caminho até localizar a pasta onde será salva o arquivo.

Este caminho fica gravado nesta TexBox chamada "Relatórios em PDF"

O código atribuído ao (binóculo) é este a seguir:

Private Sub CommandButton1_Click()
    Me.txtPDF = SelectFolder
End Sub

Após localizar a pasta onde deverá ser salva o arquivo gerado, o usuário clica no botão "SALVAR".

Este botão possui um código citado a seguir, mas que precisa ser modificado para minha necessidade deste post ou seja, clicando em salvar, o endereço aqui salvo, vai automaticamente parar lá no código mencionado no início deste post no devido lugar que é a seguinte:

Private Sub cmdINSERIR_Click()
    With Me
        If .txtPDF = "" Then
            MsgBox "Informe o diretório p/ salvar arquivos PDF.", vbExclamation, "Advertência"
            .txtPDF.SetFocus
                Exit Sub
        End If
        Call Configurar_Sistema
        With Sheets("MENU PRINCIPAL")
            .Unprotect (SENHA)
            Range("cel_dir_pdf").Value = Me.txtPDF
            .Protect (SENHA)
        End With
        resposta = True
        ActiveWorkbook.Save
        MsgBox "Diretório confirmado com sucesso.", vbInformation, "Informação"
        Unload Me
    End With
End Sub 

 

Resumindo, tudo que eu preciso, é fazer com que este terceiro código, comunique-se com o primeiro lá de cima, alterando o endereço que antes era inserido manualmente no código, agora sendo permitindo que o usuário através do botão criado, possa configurar o diretório onde deverá ser saldo o PDF, sem ter que acessar ao código vba.

Em outras palavras...

O usuário entra na planilha e clica no botão "CONFIGURAR DIRETÓRIO", localiza a pasta onde é para salvar o arquivo e confirma.

Quando for executada a função da macro DENTRO DA PLANILHA, ela automaticamente salvará no local onde o usuário direcionou no início.

 

Se alguém puder me ajudar, ficarei extremamente grato.
 

Observação:

Os códigos estão criados, mas não estou conseguindo fazer com que eles se comuniquem sem interferências.

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!