Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
VBA Básico
-
- Acabou de chegar
- Mensagens: 6
- Registrado em: Ter Dez 28, 2010 7:36 pm
VBA Básico
Para atribuir o valor de uma célula a outra, utilizo Cells(5, 6) = Cells(5, 3), por exemplo. Agora no caso da célula C5 conter uma data, como atribuir a célula F5, somente o mês da data contida em C5 e ainda como texto?
Agradeço ajuda ! ! !
Agradeço ajuda ! ! !
-
- Acabou de chegar
- Mensagens: 6
- Registrado em: Ter Dez 28, 2010 7:36 pm
Re: VBA Básico
Isso mesmo deu certo!
Agora pode me dizer porque a o seguinte código não é aceito:
Tentei diversas sintaxes, com Is Nothing Then Exit Sub, Else, Else If, mais não conseguir fazer rodar os três IFs dentro da sub rotina!
Agora pode me dizer porque a o seguinte código não é aceito:
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C5")) Then
Cells(5, 6) = Format(Cells(5, 3), "mm")
Cells(5, 7) = Format(Cells(5, 3), "dd")
Cells(5, 8) = Format(Cells(5, 3), "yy")
End If
If Intersect(Target, Range("C6")) Then
Cells(6, 6) = Format(Cells(6, 3), "mm")
Cells(6, 7) = Format(Cells(6, 3), "dd")
Cells(6, 8) = Format(Cells(6, 3), "yy")
End If
If Intersect(Target, Range("C7")) Then
Cells(7, 6) = Format(Cells(7, 3), "mm")
Cells(7, 7) = Format(Cells(7, 3), "dd")
Cells(7, 8) = Format(Cells(7, 3), "yy")
End If
End Sub
- Mauro Coutinho
- Jedi
- Mensagens: 1561
- Registrado em: Sáb Mar 13, 2010 8:10 pm
- Localização: São José dos Pinhais - Pr
Re: VBA Básico
utilizando somente TARGET temos o valor e não o endereço, para termos o range utilizamos Target.Address, ficando assim a rotina em questão :
[]s
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("C5").Address Then
Cells(5, 6) = Format(Cells(5, 3), "mm")
Cells(5, 7) = Format(Cells(5, 3), "dd")
Cells(5, 8) = Format(Cells(5, 3), "yyyy")
ElseIf Target.Address = Range("C6").Address Then
Cells(6, 6) = Format(Cells(6, 3), "mm")
Cells(6, 7) = Format(Cells(6, 3), "dd")
Cells(6, 8) = Format(Cells(6, 3), "yy")
ElseIf Target.Address = Range("C7").Address Then
Cells(7, 6) = Format(Cells(7, 3), "mm")
Cells(7, 7) = Format(Cells(7, 3), "dd")
Cells(7, 8) = Format(Cells(7, 3), "yy")
End If
End Sub
-
- Acabou de chegar
- Mensagens: 6
- Registrado em: Ter Dez 28, 2010 7:36 pm
Re: VBA Básico
Olá amigos deste fórum,
Admito que sou "noob" quando se trata de criar códigos em VBA, porém, arrisquei-me a praticar. Pretendo desenvolver um código que insira notas dadas pelos clientes (variam de 2 à 10) para o atendimento prestado pela minha empresa.
De início, utilizei este código para inserir os dados à partir do "clique" de um botão:
Sub Inserir()
Dim recepção, Tempo, atendimento, resolvida, ambiente, nota As Long
recepção = InputBox("Introduza a nota de RECEPÇÃO", "Introdução de dados")
Tempo = InputBox("Introduza a nota de TEMPO DE ESPERA", "Introdução de dados")
atendimento = InputBox("Introduza a Nota de ATENDIMENTO", "introdução de dados")
resolvida = InputBox("Introduza a nota de SOLICITAÇÃO RESOLVIDA", "introdução de dados")
ambiente = InputBox("Introduza a nota de AMBIENTE", "Introdução de dados")
nota = InputBox("Introduza a NOTA GLOBAL", "Intrdução de dados")
Application.Cells(14, 3) = recepção
Application.Cells(14, 4) = Tempo
Application.Cells(14, 5) = atendimento
Application.Cells(14, 6) = resolvida
Application.Cells(14, 7) = ambiente
Application.Cells(14, 8) = nota
End Sub
O código funciona muito bem, mas ele só preenche 1 (uma) linha, a minha intenção é que funcionasse como uma tabulação, ou seja, que os caracteres descritos no "box" sejam lançados na planilha conforme o exemplo:
Recepção
10
9
5
2
Espero ter sido claro, pois como eu mencionei, estou iniciando minha jornada para aprimorar-me no VBA.
Deixo o meu e-mail:
eduardo.bueno7@hotmail.com
Um abraço à todos.
Admito que sou "noob" quando se trata de criar códigos em VBA, porém, arrisquei-me a praticar. Pretendo desenvolver um código que insira notas dadas pelos clientes (variam de 2 à 10) para o atendimento prestado pela minha empresa.
De início, utilizei este código para inserir os dados à partir do "clique" de um botão:
Sub Inserir()
Dim recepção, Tempo, atendimento, resolvida, ambiente, nota As Long
recepção = InputBox("Introduza a nota de RECEPÇÃO", "Introdução de dados")
Tempo = InputBox("Introduza a nota de TEMPO DE ESPERA", "Introdução de dados")
atendimento = InputBox("Introduza a Nota de ATENDIMENTO", "introdução de dados")
resolvida = InputBox("Introduza a nota de SOLICITAÇÃO RESOLVIDA", "introdução de dados")
ambiente = InputBox("Introduza a nota de AMBIENTE", "Introdução de dados")
nota = InputBox("Introduza a NOTA GLOBAL", "Intrdução de dados")
Application.Cells(14, 3) = recepção
Application.Cells(14, 4) = Tempo
Application.Cells(14, 5) = atendimento
Application.Cells(14, 6) = resolvida
Application.Cells(14, 7) = ambiente
Application.Cells(14, 8) = nota
End Sub
O código funciona muito bem, mas ele só preenche 1 (uma) linha, a minha intenção é que funcionasse como uma tabulação, ou seja, que os caracteres descritos no "box" sejam lançados na planilha conforme o exemplo:
Recepção
10
9
5
2
Espero ter sido claro, pois como eu mencionei, estou iniciando minha jornada para aprimorar-me no VBA.
Deixo o meu e-mail:
eduardo.bueno7@hotmail.com
Um abraço à todos.
- joseA
- Jedi
- Mensagens: 1048
- Registrado em: Qui Out 22, 2009 7:22 am
- Localização: Cel. Fabriciano - MG
Re: VBA Básico
Código: Selecionar todos
Sub Inserir()
Dim recepção, Tempo, atendimento, resolvida, ambiente, nota As Long
Dim QualLin
QualLin = Range("C65000").End(xlUp).Row
recepção = InputBox("Introduza a nota de RECEPÇÃO", "Introdução de dados")
Tempo = InputBox("Introduza a nota de TEMPO DE ESPERA", "Introdução de dados")
atendimento = InputBox("Introduza a Nota de ATENDIMENTO", "introdução de dados")
resolvida = InputBox("Introduza a nota de SOLICITAÇÃO RESOLVIDA", "introdução de dados")
ambiente = InputBox("Introduza a nota de AMBIENTE", "Introdução de dados")
nota = InputBox("Introduza a NOTA GLOBAL", "Intrdução de dados")
Range("C" & QualLin + 1) = recepção
Range("D" & QualLin + 1) = Tempo
Range("E" & QualLin + 1) = atendimento
Range("F" & QualLin + 1) = resolvida
Range("G" & QualLin + 1) = ambiente
Range("H" & QualLin + 1) = nota
End Sub