Página 1 de 1

Windows.Activate

Enviado: 09 Abr 2020 às 15:24
por JulioMangilli
Olá Amigos
Estou tentando ativar uma planilha mas não estou conseguindo pelo método.
Depois de abrir a planilha eu tenho que entrar nela com o método windows("").Active..

Método que estou tentando
Windows(Sheets("Configuração").Range("E9")).Activate

Método que utilizo
Windows("Planilha.xlsm").Activate

Gostaria que fosse mais dinâmico que ele ativasse a planilha puxando o nome dela de uma Célula , teria como?

Re: Windows.Activate

Enviado: 09 Abr 2020 às 15:32
por babdallas
Tenta
Código: Selecionar todos
Workbooks(Sheets("Configuração").Range("E9")).Activate

Re: Windows.Activate

Enviado: 09 Abr 2020 às 15:39
por babdallas
Se não der certo, anexe aqui o arquivo, por favor.

Windows.Activate

Enviado: 09 Abr 2020 às 15:55
por JulioMangilli
Segue modelo,

Na verdade essa planilha serve como um Backup, porem não tive tempo para criar um pequeno banco.
Mas isso já me ajuda bastante.

Re: Windows.Activate

Enviado: 16 Abr 2020 às 07:37
por JulioMangilli
Amigos alguma opinião de como eu poderia estar fazendo essa transferência de modo mais dinâmico?

Re: Windows.Activate

Enviado: 16 Abr 2020 às 07:52
por babdallas
Explica o que você deseja que o código faça, com detalhes.

Re: Windows.Activate

Enviado: 17 Abr 2020 às 08:59
por JulioMangilli
Então hoje eu transfiro essas informações de uma planilha para outra, ela fica como um backup digamos.
Porem na programação que eu tenho que faz "abrir a planilha" / "transferir os dados" / "fechar a planilha" tenho que colocar o caminho manualmente dentro da programação.

Por exemplo quando uso o windows ("caminho+nome+versão planilha").Active para ativar ela e transferir.
Eu gostaria que o caminho fosse atomizado puxando de uma range para caso eu queria mudar o nome eu não preciso abrir o vba e mudar a programação manualmente.

Até que você postou o Workbooks(Sheets("Configuração").Range("E9")).Activate
Porem eu não consegui fazer funcionar , teria como ?

Desde já agradeço por me ajudar amigo.

Re: Windows.Activate

Enviado: 17 Abr 2020 às 10:23
por babdallas
Veja se atende.
Código: Selecionar todos
Option Explicit

Public Sub tranferirgeral()
    Dim strBackup       As String
    Dim lngUltLin       As Long
    Dim lngUltCol       As Long
    Dim vrtDados        As Variant
    Dim wbkBackup       As Workbook
    
    Application.ScreenUpdating = False
    
    With wshHist
        strBackup = .Range("S2").Value2                                 'Caminho do arquivo de backup
        
        lngUltLin = .Cells(.Rows.Count, 1).End(xlUp).Row                '?ltima linha com dados
        lngUltCol = .Cells(2, .Columns.Count).End(xlToLeft).Column      '?ltima coluna com dados
        vrtDados = .Range(.Cells(2, 1), .Cells(lngUltLin, lngUltCol))   'Dados a serem transferidos
    End With
        
    Set wbkBackup = Workbooks.Open(strBackup)                          'Abre o arquivo de backup
    
    With wbkBackup.Worksheets("Hist?ricosEmpresas")
        .Cells.ClearContents                                            'Limpa todo o conte?do anterior do backup
        .Range(.Cells(2, 1), .Cells(lngUltLin, lngUltCol)) = vrtDados   'Copia os dados para o backup
        
        wbkBackup.Close SaveChanges:=True                               'Fecha o arquivo de backup
    End With
        
    Set wbkBackup = Nothing
    
    Application.ScreenUpdating = True
    
    VBA.MsgBox Prompt:="Dados transferidos com sucesso", Title:="Backup de dados"
End Sub

Windows.Activate

Enviado: 17 Abr 2020 às 13:29
por JulioMangilli
Atendeu super bem amigo, muito obrigado pela força.