Ir para conteúdo
Fórum Script Brasil
  • 0

Vba - Excel


Guest Edmilson Gonzalles

Pergunta

Guest Edmilson Gonzalles

Tenho uma planilha Excel de cursos executados

Mês user Sigla Software

AGO/07 8/6/2007 MAIRA GALLETTA DE ARAUJO OC021 MS - EXCEL

AGO/07 13/08/2007 MAIRA GALLETTA DE ARAUJO OC021 COTAÇÕES & CONCORRÊNCIAS 2004

Abr/07 25/4/2007 AILTON AMERICO DE SOUZA FA052 CRYTAL LIGHT

Mai/07 28/05/2007 AILTON AMERICO DE SOUZA FA052 MS - PROJECT 2003

Abr/07 24/04/2007 AILTON AMERICO DE SOUZA FA052 PROJETO ECM NOVARTIS

AGO/07 14/08/2007 AILTON AMERICO DE SOUZA FA052 FLUXO DE PROCESSOS DE DOAÇÃO

AGO/07 22/08/2007 AILTON AMERICO DE SOUZA FA052 CURSO ANÁLISE E GESTÃO DE REQUISITO

Criei um formulário para o cadastro

Quero gerar uma rotina onde eu escolha um usuário e gere as informações em uma segunda plan2 que apresente imediatamente.

Ex:

O grande problema esta na seleção do usuário e seus dados não consigo carregar as variáveis para apresentar no formulário.

1º só consigo carregar a primeira variável

e preciso deletar a planilha 2 toda vez que gere outra solicitação.

Será que alguém pode dar a dica.

Código.

Private Sub CmB_gerar_Click()

Application.ScreenUpdating = False

Range("c5").Select
   
 Do While ActiveCell.Value <> ""
        If ActiveCell.Value = Cmb_user Then
           'Carregar as variaveis----------------
             ActiveCell.Offset(0, 1).Activate
             ActiveCell.Value = txt_sigla.Text
             ActiveCell.Offset(0, 2).Activate
             ActiveCell.Value = txt_sw.Text
     
           'Abrir a planilha 2---------------------------
     
            ActiveWorkbook.Sheets("plan2").Activate
            Range("a2").Select
                   
            Do
                If IsEmpty(ActiveCell) = False Then
                ActiveCell.Offset(1, 0).Select
            End If
            Loop Until IsEmpty(ActiveCell) = True
    
           'Apresentar no formulário-----------------------
    
           ActiveCell.Value = Cmb_user.Value
           ActiveCell.Offset(0, 1).Activate
           ActiveCell.Value = txt_sigla.Text
           ActiveCell.Offset(0, 2).Activate
           ActiveCell.Value = txt_sw.Text
                
          'Voltar no do While até o fim
          
            MsgBox "trocaaaaa"
            Sheets("plan1").Select
            Range("c5").Select
   
      End If
         ActiveCell.Offset(1, 0).Select
  Loop
  
Application.ScreenUpdating = True

End Sub

Editado por RenatoMejias
Adicionar code
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Corrigi alguns erros de lógica e acho que você abusou da instrução activecell; às vezes uma referência direta à célula evita transtornos de troca de planilha, seleção de células etc. quando você não informa que trocou de planilha ou esquece produz resultados inesperados.

Como não tenho seu formulário fiz como macro copiando as informações que você quer na plan2, facilmente você poderá fazer um link para os campos, associá-los as células usadas na plan2 ou alterar o destino que quer.

O nome a ser pesquisado deverá estar em plan1 na célula a1 (associe o campo do formulário a esta célula) e coloque um botão consultar - associado a macro.

os dados em plan1 a2 até e2 os títulos e abaixo os dados propriamente ditos ou sejam os dados começam na linha 3

Sub gerarecopiar()

Application.ScreenUpdating = False
'limpa plan2 de qualquer resultado anterior
ActiveWorkbook.Sheets("plan2").Activate
ActiveSheet.Range("a1:d1000").Select
Selection.Clear

'Ativa plan1
Sheets("plan1").Activate
'c=numero da linha que começam os dados na coluna C que tem o nome
c = 3
Range("c" & c).Select
'loop
Do While ActiveCell.Value <> ""
        'na célula A1 da plan1 deverá ter o nome a ser procurado
        If ActiveCell.Value = Range("a1").Value Then
            'Carregar as variaveis----------------
            'Mês/ano
            ActiveCell.Offset(0, -2).Activate
            txt1 = ActiveCell.Value
            'Sigla
            ActiveCell.Offset(0, 3).Activate
            txt2 = ActiveCell.Value
            'Nome do curso
            ActiveCell.Offset(0, 1).Activate
            txt3 = ActiveCell.Value
            'Abrir a planilha 2---------------------------
            Sheets("plan2").Activate
            'Copia nome selecionado para célula A1
            Sheets(2).Range("a1") = Sheets(1).Range("a1").Value
            Sheets(2).Range("a2").Select
                       
            Do
                If IsEmpty(ActiveCell) = False Then
                   ActiveCell.Offset(1, 0).Select
                End If
            Loop Until IsEmpty(ActiveCell) = True
    
           'Apresentar no formulário--aqui copio para plan2 colunas abc - pode puxar com link nos campos-
    
           'a2 - b2 - c2 = Dados dos cursos
            'Mês/Ano
            ActiveCell.Offset(0, 0).Activate
            ActiveCell.NumberFormat = ("mmm/yyyy")
            ActiveCell.Value = txt1
           'Sigla
            ActiveCell.Offset(0, 1).Activate
            ActiveCell.Value = txt2
           'Nome do curso
            ActiveCell.Offset(0, 1).Activate
            ActiveCell.Value = txt3
          
        End If
        'Voltar no do While até o fim
        Sheets("plan1").Activate
        'Próxima Linha
        c = c + 1
        Sheets(1).Range("C" & c).Select
Loop

Application.ScreenUpdating = True
End Sub

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Domingos Carvalho

cara... esse código me ajudou bastanteeeeeee...

mas ainda estou tendo um probleminha com o meu...

vou passar pra vocês darem uma olhada...

valeu.

abraço...

--

Domingos Carvalho

--

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...