Vídeo recomendado
https://youtu.be/diWPPPhW-9E

VBA Básico

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
José_Antonio
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Ter Dez 28, 2010 7:36 pm

VBA Básico

Mensagem por José_Antonio »

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


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
joseA
Jedi
Jedi
Mensagens: 1048
Registrado em: Qui Out 22, 2009 7:22 am
Localização: Cel. Fabriciano - MG

Re: VBA Básico

Mensagem por joseA »

Seria isso...

Código: Selecionar todos

Cells(5, 6) = Format(Cells(5, 3), "mmm")


José_Antonio
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Ter Dez 28, 2010 7:36 pm

Re: VBA Básico

Mensagem por José_Antonio »

Isso mesmo deu certo!
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
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!


Avatar do usuário
Mauro Coutinho
Jedi
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

Mensagem por Mauro Coutinho »

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 :

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
[]s


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


José_Antonio
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Ter Dez 28, 2010 7:36 pm

Re: VBA Básico

Mensagem por José_Antonio »

Obrigado, funcionou ! ! !


Edu Bueno
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Sex Jan 14, 2011 2:35 pm

Re: VBA Básico

Mensagem por Edu Bueno »

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.


Avatar do usuário
joseA
Jedi
Jedi
Mensagens: 1048
Registrado em: Qui Out 22, 2009 7:22 am
Localização: Cel. Fabriciano - MG

Re: VBA Básico

Mensagem por joseA »

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


Edu Bueno
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Sex Jan 14, 2011 2:35 pm

Re: VBA Básico

Mensagem por Edu Bueno »

Ao amigo JoseA,

Grato pela ajuda, funcionou perfeitamente.

:D


Avatar do usuário
joseA
Jedi
Jedi
Mensagens: 1048
Registrado em: Qui Out 22, 2009 7:22 am
Localização: Cel. Fabriciano - MG

Re: VBA Básico

Mensagem por joseA »

Estando ao nosso alcance disponha.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder