Ir ao conteúdo

Posts recomendados

Postado

Boa tarde, pessoal sou iniciante em vba, preciso muito da ajuda de vocês. 

Criei uma planilha onde usuário informar se haverá custo de frete, se ele escolher na célula L18 a opção "não" não ocorre nada, porém se ele escolher opção "sim" aparece uma msgbox "favor inserir o valor do frete".

gostaria da ajuda de vocês que apos aparecesse esta informação ao clicar ok aparecesse outra tela com opção dele inserir manualmente o valor em "R$ XX,XX" e este valor inserisse na celula E39 da mesma planilha.


Private Sub Worksheet_calculate()

If Range("L18").Value = "SIM" Then

MsgBox "Favor Inserir o Valor do Frete ", vbInformation

End If

End Sub

 

desde ja obrigado!

  • Membro VIP
Postado

Boa tarde @franchinni

 

Adapte ao teu caso:

Sub inserir()

Dim entrada As Variant

entrada = InputBox("Insira algum valor")

Range("E39").Value = entrada

End Sub

Não se esqueça de clicar em Curtir.

 

[]s

  • Curtir 2
Postado

@Patropi Obrigado pela ajuda. 

Executei seu código deu certo porém este código não se relacionou se a opção da célula  "L18" for "Sim".

A ideia é que se na celula L18 for "sim"; apareça esta caixa para inserir valor que entrará na celula "e39"

Postado

Junte o seu codigo com o do Patropi

 

Private Sub Worksheet_calculate()

 

Dim entrada As Variant

If Range("L18").Value = "SIM" Then

entrada = InputBox("Insira algum valor")

Range("E39").Value = entrada

 

End If

 

End Sub

 

 

 

  • Curtir 1
Postado

 

Para testar o código abaixo altere o conteúdo de L18.

 

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Count > 1 Then Exit Sub
 If Target.Address <> "$L$18" Or Target.Value <> "sim" Then Exit Sub
 On Error Resume Next
 [E39] = CDbl(InputBox("favor inserir o valor do frete"))
End Sub

 

Postado

@CasaDoHardware obrigado pela ajuda.

Funcionou porém entrou em loop quando alterei para "sim" abriu a caixa para inserir o valor porém apos inserir o valor e dar "ok" voltou a caixa solicitando para por valor novamente entrando em loop sem parar. 

adicionado 0 minutos depois

@osvaldomp obrigado pela ajuda.

tentei o código informado não deu certo, sera que fiz algo errado.

Postado

O que você quer dizer com "não deu certo" ?

Explique com exatidão o que você fez e qual foi o resultado, ou disponibilize uma amostra do seu arquivo Excel com o código instalado.

Postado

@CasaDoHardware obrigado pela ajuda, funcionou... a caixa apareceu para digitar o valor assim que a célula l18 ficou como "Sim"  o valor digitado entrou na celula "E39" porém apos da ok na caixa volta a caixa novamente pedindo para por o valor, coloco valor e novamente pedi para por o valor. 

adicionado 10 minutos depois

@osvaldomp segue arquivo.

FPreço.rar

Postado
6 horas atrás, franchinni disse:

 ... porém se ele escolher opção "sim" aparece uma msgbox "favor inserir o valor do frete".

 

Lembra disso ?

 

Altere no código pois na sua planilha o conteúdo é "SIM", e não "sim".

Postado

 @osvaldomp verdade não me atentei a isso, obrigado deu certo agora! funcionou perfeitamente. muito obrigado pela ajuda.

adicionado 34 minutos depois

@osvaldomp  desculpa te amolar,  tentei usar o mesmo cod para mais uma célula no caso a L19 se for "SIM" mas não deu certo, sabe onde errei no codigo abaixo? funcionou a que me passou so não consegui fazer com mais de uma. obrigado

 

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Count > 1 Then Exit Sub
 If Target.Address <> "$L$18" Or Target.Value <> "SIM" Then Exit Sub
 On Error Resume Next
 [E39] = CDbl(InputBox("favor inserir o valor do frete"))
  If Target.Address <> "$L$19" Or Target.Value <> "SIM" Then Exit Sub
 On Error Resume Next
 [E40] = CDbl(InputBox("favor inserir o valor do custo da implantação"))
End Sub

Postado

Experimente:

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim str As String
  If Target.Count > 1 Then Exit Sub
  If Target.Address = "$L$18" And Target.Value = "SIM" Then
   str = "E39"
  ElseIf Target.Address = "$L$19" And Target.Value = "SIM" Then
   str = "E40"
  Else: Exit Sub
  End If
  On Error Resume Next
  Range(str).Value = CDbl(InputBox("favor inserir o valor do frete"))
End Sub

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

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...