Ir ao conteúdo
  • Cadastre-se

VBA - InputBox


Ir à solução Resolvido por Felipe Carvalho_748684,

Posts recomendados

Bom dia pessoal,

 

Tenho esse código VBA entre muitos outros em minha planilha, mas ainda sou aspirante e demoro a desenvolver.

Preciso trocar o final onde chama uma MsgBox para um ImputBox e o texto informativo aparecer um conteúdo de uma célula.

 

Ela faz basicamente isso:

1. Ao modificar o trecho B4:D10000 é ativada a MsgBox.

2. OK finaliza ela

 

Quero assim:

1. Ao modificar o trecho B4:D10000 é ativada a InputBox

2. Na input quero que apareça os dados da coluna "H" com um texto de introdução, tipo: "O pedido é: -dados da H"

3. Ao inserir uma anotação na caixa de texto, esse texto seja escrito na coluna A.

4. Botão OK aplica, botão cancelar não faz nada.

 

SENHA DO VBA: TAOSSO10

 

 

Dim KeyCells As Range

    Set KeyCells = Range("B4:D1000")
    
    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then
        
     MsgBox "Cobrança feita!", vbInformation, "Status"

Cópia de Plan_TESTE2.zip

Link para o comentário
Compartilhar em outros sites

Pessoal, arrumei metade da dúvida:

Falta agora fazer com que o texto que aparece da célula seja respectivo ao da linha modificada, e a entrada seja respectiva:

 

Exemplo: Se eu modifico a B20, na mensagem aparece a célula H20 e a entrada na célula A20 e assim por diante.

 

Vejam o código:

 

 

Private Sub Worksheet_Change(ByVal Target As Range)

   
    Dim KeyCells As Range

    Set KeyCells = Range("B4:D1000")
    
    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then
        
Range("A4").Value = Application.InputBox("Número de contato: " & Plan1.Range("H5").Value & " ")
       
    End If
End Sub

Link para o comentário
Compartilhar em outros sites

  • Solução

Boa atrde pessoal,

 

Resolvido. Obrigado Mikel Silveira Fraga - TVForum

 

Private Sub Worksheet_Change(ByVal Target As Range)

    'Essas coordenadas correspondem a Range "B4:D1000".
    If (Target.Row >= 4 And Target.Row <= 1000) And _
        (Target.Column >= 2 And Target.Column <= 4) Then
   
        Dim intLinha As Long
       
        intLinha = Target.Row
   
        Range("A" & intLinha).Value = Application.InputBox("Número de contato: " & _
                                                Plan1.Range("H" & intLinha).Value & " ")
   
    End If

End Sub
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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