Usuário com melhor resposta
Localizar celula vazia no Excel VBA

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- Tipo Alterado Felipe Costa GualbertoMVP, Moderator domingo, 15 de junho de 2014 12:56
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).SelectEnd 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- Sugerido como Resposta Felipe Costa GualbertoMVP, Moderator domingo, 15 de junho de 2014 12:56
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator domingo, 15 de junho de 2014 12:56
Todas as Respostas
-
-
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. -
-
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. -
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).SelectEnd 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- Sugerido como Resposta Felipe Costa GualbertoMVP, Moderator domingo, 15 de junho de 2014 12:56
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator domingo, 15 de junho de 2014 12:56
-