Ir ao conteúdo
  • Cadastre-se

Abrir um Formulario enquanto executa macro Copiar/Colar Excel


Posts recomendados

Galera, bom dia!

 

Sou novo no Vba e estou com uma dúvida aparentemente simples:

 

Tenho uma macro que copia e cola dados de uma planilha em outra, observem:

 

------------------------------------------------------------------------------------------------------

 

Sub Teste()
    
    Workbooks.Open ("R:\CERTIFICADOS\Lista Certificados (GERAL).xlsm")
 
    ActiveWorkbook.Sheets("Plan1").[b6:B100000].Value = ThisWorkbook.Sheets("PT-LC-001").[b6:B100000].Value
    ActiveWorkbook.Sheets("Plan1").[C6:C100000].Value = ThisWorkbook.Sheets("PT-LC-001").[C6:C100000].Value
    ActiveWorkbook.Sheets("Plan1").[D6:D100000].Value = ThisWorkbook.Sheets("PT-LC-001").[D6:D100000].Value
    ActiveWorkbook.Sheets("Plan1").[E6:E100000].Value = ThisWorkbook.Sheets("PT-LC-001").[E6:E100000].Value
    ActiveWorkbook.Sheets("Plan1").[F6:F100000].Value = ThisWorkbook.Sheets("PT-LC-001").[F6:F100000].Value
    ActiveWorkbook.Sheets("Plan1").[G6:G100000].Value = ThisWorkbook.Sheets("PT-LC-001").[G6:G100000].Value
    ActiveWorkbook.Sheets("Plan1").[H6:H100000].Value = ThisWorkbook.Sheets("PT-LC-001").[H6:H100000].Value
    ActiveWorkbook.Sheets("Plan1").[i6:I100000].Value = ThisWorkbook.Sheets("PT-LC-001").[i6:I100000].Value
    ActiveWorkbook.Sheets("Plan1").[J6:J100000].Value = ThisWorkbook.Sheets("PT-LC-001").[J6:J100000].Value
    ActiveWorkbook.Sheets("Plan1").[K6:K100000].Value = ThisWorkbook.Sheets("PT-LC-001").[K6:K100000].Value
    ActiveWorkbook.Sheets("Plan1").[M6:M100000].Value = ThisWorkbook.Sheets("PT-LC-001").[M6:M100000].Value
    ActiveWorkbook.Sheets("Plan1").[N6:N100000].Value = ThisWorkbook.Sheets("PT-LC-001").[N6:N100000].Value
    ActiveWorkbook.Sheets("Plan1").[O6:O100000].Value = ThisWorkbook.Sheets("PT-LC-001").[O6:O100000].Value
    ActiveWorkbook.Sheets("Plan1").[P6:P100000].Value = ThisWorkbook.Sheets("PT-LC-001").[P6:P100000].Value
    ActiveWorkbook.Sheets("Plan1").[s6:S100000].Value = ThisWorkbook.Sheets("PT-LC-001").[s6:S100000].Value
    ActiveWorkbook.Close savechanges:=True
    
    
End Sub
________________________________________________________________
 
e tenho um formulário com webbroser de um (gif animado loading) que gostaria que aparecesse enquanto essa macro acima fosse exercida
 
mas se antes dela eu colocar : UserForm1.show é aberto o formulário, mas a macro de copiar e colar nao funciona, gostaria que ficasse exibido o formulario enquanto a macro de copiar e colar e quando ela terminasse o formulário fechasse (unload UserForm1).
 
Alguem tem ideia de como fazer?
 
Obrigado
Link para o post
Compartilhar em outros sites

eu não sei o que é, mas tem algo estranho nessa macro e o fato de abrir o user form não funcionar

mas quando uma macro está rodando prende o funcionamento tanto da planilha quanto do vba e isso inclui o userform

 

mas tem coisa que pode ser melhorada

usar range completa em vez de coluna por coluna

    ActiveWorkbook.Sheets("Plan1").Range("B6:K100000").Value2 = ThisWorkbook.Sheets("PT-LC-001").Range("B6:K100000").Value2        ActiveWorkbook.Sheets("Plan1").Range("M6:P100000").Value2 = ThisWorkbook.Sheets("PT-LC-001").Range("M6:P100000").Value2            ActiveWorkbook.Sheets("Plan1").Range("S6:S100000").Value2 = ThisWorkbook.Sheets("PT-LC-001").Range("S6:S100000").Value2

e mais uma coisa, essa macro não devia demorar tanto para atuar assim

 

 

quando você fala de uma planilha para outra você está falando de ABAS ?

 

ActiveWorkbook =planilha ativa

ThisWorkbook= planilha onde está a macro

 

no caso você está chamando a macro de outra planilha para preencher a planilha ativa com os dados dela?

se for isso, quando se executa o userfor da outra planilha a outra planilha passa a ser a ativa

 

para isso funcionar você tem que referenciar o nome da planilha para onde vai os dados

 

Workbook("nomeplanilhaNova").Sheets("Plan1").Range("B6:K100000").Value2 = ThisWorkbook.Sheets("PT-LC-001").Range("B6:K100000").Value2

 

assim não importa qual planilha vai estar ativa e você pode fazer a operação a partir da planilha onde tem as macro e o usefor que você quer

  • Curtir 1
Link para o post
Compartilhar em outros sites

valeu Edcronos, vou tentar fazer aqui:

 

O objetivo é mandar da Lista de controle pra lista de certificados e enquanto manda mostrar o formulario tipo loading...

to postando as planilhas pra vocês sacarem, to achando elas muito pesadas também, sou novo nessa bagaça kk

valeu

Excel enviar.rar

Link para o post
Compartilhar em outros sites

a sua planilha está indo até a ultima linha de usada apesar de não estar preenchida

 

 

 

eu posso sugerir uma serie de mudanças para melhorar a performance

 

deixar toda a lista em uma aba sem formatação , sem formulas como banco de dados

não use tabelas do excel, apenas os dados

deixar uma aba para pesquisa e visualização do que se quer, essa sim pode se colocar as formulas e formatações, mas maneirando

 

essa macro é muito fácil de se fazer, mas essa sua planilha vai agarrar qualquer coisa que colocar

Link para o post
Compartilhar em outros sites

como eu não sabia de onde você ia rodar a macro

eu coloquei na 

LISTAS DE CONTROLE (GERAL)

no modulo1

Sub Teste()' Workbooks.Open ("C:\Lista Certificados (GERAL).xlsm")    With ThisWorkbook.Sheets("PT-LC-001")        l = .Cells(Rows.Count, 2).End(xlUp).Row    ' ultima linha com dados da planilha        rane = "B6:S" & l    ' monta a range        Workbooks("Lista de Certificados (GERAL).xlsm").Sheets("Plan1").Range(rane).Value2 = .Range(rane).Value2        '  ActiveWorkbook.Close savechanges:=True 'salvar True    End WithEnd Sub
Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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
  • Quem está navegando aqui   0 membros estão online

    Nenhum usuário registrado visualizando esta página.



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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!