Notifications
Clear all

VBA - Inputbox

4 Posts
4 Usuários
0 Reactions
1,132 Visualizações
(@walterfeo)
Posts: 15
Active Member
Topic starter
 

Prezados(as),

Bom dia.

Estou em um empreitada para aprender VBA por conta. Após a leitura de vários tópicos, pesquisas na internet e até adquirir livro(s) sobre, estou conseguindo - acredito - ter algum progresso.

Portanto, desde já, agradeço a ajuda de vocês.

Na planilha em anexo (VBA - INPUTBOX) estou criando um cadastro de clientes. Para tanto, utilizei o recurso INPUTBOX para inserir os dados nas células.

Porém, eu quero OBRIGAR o USUÁRIO a inserir algum dado, logo, coloquei a INPUTBOX em um Looping.

É aí que surgem os problemas:

1° Problema: Quando pressionado o botão "cancelar" da INPUTBOX, a mesma continua aparecendo;

2° Problema: Se inserido um NOME ou TELEFONE errado, ou para alteração de dados, como fazer um botão do tipo "EDITAR" para linha que contém as informações?

NOTA: Se for mais simples o que desejo através do recurso UserForm, digam-me que irei aprender mais sobre.

Desde já, novamente, agradeço a colaboração.

Att.,

Walter J. Feo Jr.

 
Postado : 04/04/2017 7:15 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

WalterFeo,

Boa tarde!

Com InputBox fica muito complicado...

Veja se assim fica melhor.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 04/04/2017 9:08 am
Syrax
(@syrax)
Posts: 160
Estimable Member
 

Usar forms é muito mais fácil quando se trata de cadastros

você havia solicitado como seria com inputbox

Sub INSERIRCLIENTE()

Dim cliente As String
Dim TELEFONE As Variant

CLIENTE1:
cliente = InputBox("INSIRA O NOME DO CLIENTE")
If cliente = "" Then ' verifica se o o inputbox está vazio
   If cliente = vbNullString Then ' verifica se foi apertado o cancel, no caso, quando é apertado o cancel ele restorna uma string vazia
   Exit Sub ' se sim, sai da sub
   Else
GoTo CLIENTE1 'se não, volta ao cliente
End If
 Else
TELEFONE1:
TELEFONE = InputBox("INSIRA O TELEFONE DO CLIENTE")
If TELEFONE = "" Then
If TELEFONE = vbNullString Then
Exit Sub
Else
GoTo TELEFONE1
End If
Else
ULTIMALINHA = Range("B" & Rows.Count).End(xlUp).Row + 1

Cells(ULTIMALINHA, "B").Value = cliente
Cells(ULTIMALINHA, "C").Value = TELEFONE
End If
End If
End Sub

Não mudei muita coisa no seu código, apenas algumas condições para o botão cancel

Se essa resposta te ajudou e resolveu o seu problema, clique no "joinha" ao lado de citar, e não esqueça de colocar o tópico como resolvido, clicando no ✓

 
Postado : 04/04/2017 9:30 am
(@gesus)
Posts: 44
Eminent Member
 

Segue um modelo em anexo, Usando userform!
Mas como foi informado por Syrax o inputBox não é a melhor solução e sim userform!
Bom segue para ter uma ideia!

 
Postado : 04/04/2017 10:02 am