none
Localizar celula vazia no Excel VBA RRS feed

  • Pergunta

  • Ola quero fazer uma tabela dinamica em que ao clicar na caixa de seleção execute a função de copiar 2 celular de uma planilha e colar em outra planilha, mas que isso seja feito somente se a celula do excel que eu determinar estiver vazia. Como tenho duas celular a primeita armazena texto e a outra numero.
    Mas a que quero verificar se tem texto e a primeira para que a função seja executada.
    Está ai meu codigo, sou novo no VBA, desculpe se meu codigo estiver grosseiro.
    Public Sub teste()

    If Range("C15").Select = vbNullString Then   'Verifica se posição tem algum texto
        
        Sheets("Plan2").Select              'Busca plan2
        Range("A2", "B2").Select           'Na posição A1
        Selection.Copy                         'Copia o valor que estiver na celula
        Sheets("Plan1").Select              'Busca plan1
        Range("C15", "G15").Select       'Na posição A1
        ActiveSheet.Paste                     'Cola o valor da primeira planilha
        x = InputBox("Digite Quantidade:")
        Range("B15") = x
        Sheets("Plan2").Select

    ElseIf Range("C16").Select = vbNullString Then
        Sheets("Plan2").Select
        Range("A2", "B2").Select 'Trocar a posição do produto
        Selection.Copy
        Sheets("Plan1").Select
        Range("C16", "G16").Select
        ActiveSheet.Paste
        x = InputBox("Digite Quantidade:")
        Range("B16") = x
    Else
    MsgBox "erro"
    End If
    End Sub

    segunda-feira, 14 de setembro de 2009 16:59

Respostas

  • AI GALERA MUITO OBRIGADO EM FIM CONSEGUI FAZER O QUE EU DESEJAVA... TA AI O CODIGO SE ALGUEM PRECISAR E TIVER AFIM DE MODIFICAR...
    MESMO ASSIM AGRADEÇO PELA A AJUDA WESLEY FORAM OTIMAS SUAS DICAS. OBRIGADO.
    TEM UMS COMENTARIOS NÃO SÉI SE ESTÁ CORRETO MAS TA AI... E FUNFANDO...


    Public Sub CORRETO()                        ' Inicio do Programa
    Dim Y, X As Integer


    Range("B15").Select                         ' Seleciona a começa a correr a celula apartir desta posição
    Do                                          ' Inicio do LOOP
    If IsEmpty(ActiveCell) = False Then         ' Verifica se posição tem ou não texto
        ActiveCell.Offset(1, 0).Select

    End If                                      ' Fim de IF

    Loop Until IsEmpty(ActiveCell) = True       ' Se posição inicial não tem texto efetuar comandos
       
        X = InputBox("Digite Quantidade:")      ' Apresenta caixa de texto para inserir valor de X.
       
       
       
       
        Sheets("Plan2").Select                  ' Vai para plan2.
       
        Range("A2").Clear                       ' Limpa a celula A2
       
        Range("A2").Value = X                   ' Insere novo valor
       
        Range("A2 : C2").Select                 ' Na posição A1
       
        Selection.Copy                          ' Copia o valor que estiver na celula
       
        Sheets("Plan1").Select                  ' Busca plan1
       
        ActiveSheet.Paste                       ' Cola o valor da primeira planilha
       
       
                        
    End Sub                                     ' Fim do Programa

    terça-feira, 15 de setembro de 2009 23:36

Todas as Respostas



  • If Cells(Row,col).text = "" Then

    ou Range("A1").text = "" then

    é assim que funciona

    ou para ver se tem texto é só verificar assim

    If val(Cells(lin, col).Text) > 0 then


    espero que ajude

    Wesley
    terça-feira, 15 de setembro de 2009 01:28
  • Amigo...
    Ainda sim não funcionou porque quando volto a click no botão, a celula que já tem texto e volta a inserir o valor na mesmo celula ou seja eu quero que ele verifique da seguinte forma se estiver texto na celula ele vai para proxima celula. Mas verifiquei o maximo aqui e ainda sim ele não pula de celula.
    terça-feira, 15 de setembro de 2009 13:24
  • Vc pode fazer um while


    While ActiveCell.Text <> ""
        ActiveCell.Offset(1, 0).Select

    wend

    Ele vai até encontrar uma celula vazia


    Wesley
    terça-feira, 15 de setembro de 2009 16:47
  • Vc pode fazer um while


    While ActiveCell.Text <> ""
        ActiveCell.Offset(1, 0).Select

    wend

    Ele vai até encontrar uma celula vazia


    Wesley

    BLZ...valeu mesmo...mas como so novo no vba...me ajuda ai...como poderia utilizar isso no if else, ou devo deixar de lado já que ele localiza a celula vazia no excel.
    terça-feira, 15 de setembro de 2009 20:14
  • AI GALERA MUITO OBRIGADO EM FIM CONSEGUI FAZER O QUE EU DESEJAVA... TA AI O CODIGO SE ALGUEM PRECISAR E TIVER AFIM DE MODIFICAR...
    MESMO ASSIM AGRADEÇO PELA A AJUDA WESLEY FORAM OTIMAS SUAS DICAS. OBRIGADO.
    TEM UMS COMENTARIOS NÃO SÉI SE ESTÁ CORRETO MAS TA AI... E FUNFANDO...


    Public Sub CORRETO()                        ' Inicio do Programa
    Dim Y, X As Integer


    Range("B15").Select                         ' Seleciona a começa a correr a celula apartir desta posição
    Do                                          ' Inicio do LOOP
    If IsEmpty(ActiveCell) = False Then         ' Verifica se posição tem ou não texto
        ActiveCell.Offset(1, 0).Select

    End If                                      ' Fim de IF

    Loop Until IsEmpty(ActiveCell) = True       ' Se posição inicial não tem texto efetuar comandos
       
        X = InputBox("Digite Quantidade:")      ' Apresenta caixa de texto para inserir valor de X.
       
       
       
       
        Sheets("Plan2").Select                  ' Vai para plan2.
       
        Range("A2").Clear                       ' Limpa a celula A2
       
        Range("A2").Value = X                   ' Insere novo valor
       
        Range("A2 : C2").Select                 ' Na posição A1
       
        Selection.Copy                          ' Copia o valor que estiver na celula
       
        Sheets("Plan1").Select                  ' Busca plan1
       
        ActiveSheet.Paste                       ' Cola o valor da primeira planilha
       
       
                        
    End Sub                                     ' Fim do Programa

    terça-feira, 15 de setembro de 2009 23:36
  • Pra mim.. o While é mais fácil e simples e eficiente..

    Código perfeito

    terça-feira, 20 de janeiro de 2015 17:30