Preenchimento Automatico de Celula  [Resolvido]

Visual Basic for Aplication e macros no Excel.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

Preenchimento Automatico de Celula

Mensagempor tauron » Qua Jun 12, 2019 3:28 pm

Então mestres, a questão agora é a seguinte. Necessito que ao preencher qualquer celula da coluna "A", a celula correspondente (linha) na coluna "E" seja preenchida. Também, ao preencher a celula "G1", a celula "J4" seja preenchida automaticamente.
Obs.: com o codigo vba, que aprendi aqui no forum fornecido pelo Wagner consegui o resultado mas apenas em uma celula.
tauron
Membro
Membro
 
Mensagens: 11
Registrado em: Ter Mai 07, 2019 5:53 am
Has thanked: 7 times
Have thanks: 0 time

{ SO_SELECT }

Re: Preenchimento Automatico de Celula

Mensagempor srobles » Qua Jun 12, 2019 4:03 pm

tauron,

Veja se a rotina abaixo atende sua necessidade.
Código: Selecionar todos
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Range("G1") <> "" Then Range("J4") = Range("G1")
    If Target.Row >= 2 Then
        If Not Intersect(Target, Range("A:D")) Is Nothing Then
            If Range("A" & Target.Row - 1) <> "" Then ThisWorkbook.Sheets(1).Cells(Target.Row - 1, 5) = Range("A" & Target.Row - 1)
        End If
    End If
End Sub

Espero ter ajudado

Abs
Espero ter ajudado.

Abs.

Saulo Robles

Remember when you were young?
You shone like the sun.
Shine On You Crazy Diamond

For this post the author srobles thanked:
tauron (Qui Jun 13, 2019 8:07 am)
srobles
Membro
Membro
 
Mensagens: 314
Registrado em: Sáb Mai 09, 2015 10:35 pm
Has thanked: 101 times
Have thanks: 128 times

Re: Preenchimento Automatico de Celula

Mensagempor tauron » Qui Jun 13, 2019 6:37 am

Corrigindo minha mensagem anterior, o codigo do Wagner foi exatamente o que eu havia interesse na epoca. Bom, Como eu disse antes, sou fraldinha em vba excel, quanto aa questao das colunas, atendeu perfeitamente e consegui adaptar na minha real necessidade restando alguns ajustes. No que se refere a outra questao, seria possivel determinar mais de uma celula sequencial (G1, H1, I1), acredito que em caso de uma celula nao sequencial terei de repetir o codigo adaptanado conforme o caso, correto?
Podem conferir essa rotina por favor

Código: Selecionar todos
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Range("G1") <> "" Then Range("J4") = Range("G1")
    If Target.Row >= 2 Then
        If Not Intersect(Target, Range("A:D")) Is Nothing Then
            If Range("A" & Target.Row - 1) = "Indeterminado" Then ThisWorkbook.Sheets(1).Cells(Target.Row - 1, 5) = 20
            ElseIf Range("A" & Target.Row - 1) <> "Indeterminado" Then ThisWorkbook.Sheets(1).Cells(Target.Row - 1, 5) = ""
            End If
    End If
End Sub
tauron
Membro
Membro
 
Mensagens: 11
Registrado em: Ter Mai 07, 2019 5:53 am
Has thanked: 7 times
Have thanks: 0 time

Re: Preenchimento Automatico de Celula

Mensagempor Coutinho » Qui Jun 13, 2019 9:38 am

tauron, se está se referindo a celulas não contíguas, você pode utilizar uma das formas indicadas abaixo, só ajuste os Ranges.

Código: Selecionar todos
If Not Intersect(Target, Range("A1,B2,C5")) Is Nothing Then

Código: Selecionar todos
If Not Intersect(Target, Range("A1:A10,B2,C5:D10")) Is Nothing Then

[]s

Mauro Coutinho
Mauro Coutinho
com novo usuário devido a manutenção do grupo

For this post the author Coutinho thanked:
tauron (Qua Jun 19, 2019 12:30 pm)
Coutinho
Ninja do Excel
Ninja do Excel
 
Mensagens: 46
Registrado em: Qua Jun 12, 2019 6:18 pm
Has thanked: 2 times
Have thanks: 17 times

Re: Preenchimento Automatico de Celula

Mensagempor tauron » Qui Jun 13, 2019 12:49 pm

Obrigado Coutinho, entao, pode-se perceber que na rotina ha duas maneiras de se preencher automaticamente as ceulas. Mas nas duas formas apos modifacada a celula da resposta, ou seja, no primeiro caso a "J4" e no segundo a coluna "D", em qualquer tempo eu venha alterar qualquer das celulas Principais, no caso "G1" e coluna "A", as céulas de retorno, continuaram mostrando o resultado. Penso que ao limpar a celula principal, a celula de retorno também devera ser limpa por isso tentei acrescentar a linha abaixo
ElseIf Range("A" & Target.Row - 1) <> "Indeterminado" Then ThisWorkbook.Sheets(1).Cells(Target.Row - 1, 5) = ""
tauron
Membro
Membro
 
Mensagens: 11
Registrado em: Ter Mai 07, 2019 5:53 am
Has thanked: 7 times
Have thanks: 0 time

Re: Preenchimento Automatico de Celula

Mensagempor Coutinho » Qui Jun 13, 2019 2:49 pm

Tauron, não entendi a sua demanda, respondi sobre utilizar celulas não contiguas que foi a sua pergunta.
Detalhe melhor e se possível anexe um modelo, ficará mais fácil de entender e responder mais precisamente.

Mauro Coutinho
Administrador
Mauro Coutinho
com novo usuário devido a manutenção do grupo

For this post the author Coutinho thanked:
tauron (Qua Jun 19, 2019 12:30 pm)
Coutinho
Ninja do Excel
Ninja do Excel
 
Mensagens: 46
Registrado em: Qua Jun 12, 2019 6:18 pm
Has thanked: 2 times
Have thanks: 17 times

Re: Preenchimento Automatico de Celula

Mensagempor tauron » Sex Jun 14, 2019 6:24 am

Coutinho, na rotina disponibilizada, existem duas maneiras de se preencher automaticamente outras celulas.
A primeira forma é: "Também, ao preencher a celula "G1", a celula "J4" seja preenchida automaticamente."
Código: Selecionar todos
[b]If Range("G1") <> "" Then Range("J4") = Range("G1")[/b]


A segunda forma é: "Necessito que ao preencher qualquer celula da coluna "A", a celula correspondente (linha) na coluna "E" seja preenchida."
Código: Selecionar todos
If Target.Row >= 2 Then
        If Not Intersect(Target, Range("A:D")) Is Nothing Then
            If Range("A" & Target.Row - 1) <> "" Then ThisWorkbook.Sheets(1).Cells(Target.Row - 1, 5) = Range("A" & Target.Row - 1)
        End If
    End If

Então, quando expressei "Bom, Como eu disse antes, sou fraldinha em vba excel, quanto aa questao das colunas, atendeu perfeitamente e consegui adaptar na minha real necessidade restando alguns ajustes. No que se refere a outra questao, seria possivel determinar mais de uma celula sequencial (G1, H1, I1), acredito que em caso de uma celula nao sequencial terei de repetir o codigo adaptanado conforme o caso, correto?

Minha intensão era que na primeira opção, eu pudesse, digamos, "aproveitar" a mesma linha de comando para outra celulas sequenciais ou não.
Quanto a parte da Coluna já estava pronto restando alguns ajustes, o que já foi providenciado. Essa é a demanda.
tauron
Membro
Membro
 
Mensagens: 11
Registrado em: Ter Mai 07, 2019 5:53 am
Has thanked: 7 times
Have thanks: 0 time

Re: Preenchimento Automatico de Celula

Mensagempor klarc28 » Sex Jun 14, 2019 8:40 am

Código: Selecionar todos
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("G1") <> "" Then Range("J4") = Range("G1")
    If Target.Row >= 2 Then
        If Not Intersect(Target, Range("A:D")) Is Nothing Then
            If Range("A" & Target.Row - 1) = "Indeterminado" Then ThisWorkbook.Sheets(1).Cells(Target.Row - 1, 5) = 20
            ElseIf Range("A" & Target.Row - 1) <> "Indeterminado" Then ThisWorkbook.Sheets(1).Cells(Target.Row - 1, 5) = ""
            End If
    End If

    If Range("H1") <> "" Then Range("K4") = Range("H1")
    If Target.Row >= 2 Then
        If Not Intersect(Target, Range("A:D")) Is Nothing Then
            If Range("A" & Target.Row - 1) = "Indeterminado" Then ThisWorkbook.Sheets(1).Cells(Target.Row - 1, 5) = 20
            ElseIf Range("A" & Target.Row - 1) <> "Indeterminado" Then ThisWorkbook.Sheets(1).Cells(Target.Row - 1, 5) = ""
            End If
    End If
End Sub
É estudando que se consegue. Quando quiser agradecer, clique no joinha. Marque como resolvido na parte que resolveu sua dúvida.

For this post the author klarc28 thanked:
tauron (Qua Jun 19, 2019 12:29 pm)
klarc28
Membro
Membro
 
Mensagens: 1085
Registrado em: Sáb Dez 09, 2017 12:33 am
Has thanked: 24 times
Have thanks: 453 times

Re: Preenchimento Automatico de Celula

Mensagempor tauron » Qua Jun 19, 2019 12:36 pm

Galera, acho que não estou conseguindo me expressar. Minha demanda se refere somente a rotina abaixo:

Código: Selecionar todos
If Range("G1") <> "" Then Range("J4") = Range("G1")

Seria possível extender para celulas seguintes, como por exemplo: H1, I1. E caso eu necessite desta rotina em uma celula mais distante tipo "P1", seria possivel na mesma linha ou não.
tauron
Membro
Membro
 
Mensagens: 11
Registrado em: Ter Mai 07, 2019 5:53 am
Has thanked: 7 times
Have thanks: 0 time

Tentei fazer um exemplo para as colunas de 8 a 18

Mensagempor klarc28 » Qua Jun 19, 2019 1:54 pm

Código: Selecionar todos
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

dim coluna as long

for coluna  = 8 to 18
    If cells(1, coluna) <> "" Then cells(4, coluna +2) = cells(1, coluna)
    If Target.Row >= 2 Then
        If Not Intersect(Target, Range("A:D")) Is Nothing Then
            If Range("A" & Target.Row - 1) <> "" Then ThisWorkbook.Sheets(1).Cells(Target.Row - 1, 5) = Range("A" & Target.Row - 1)
        End If
    End If
next coluna
End Sub
É estudando que se consegue. Quando quiser agradecer, clique no joinha. Marque como resolvido na parte que resolveu sua dúvida.

For this post the author klarc28 thanked:
tauron (Qua Jul 03, 2019 7:43 am)
klarc28
Membro
Membro
 
Mensagens: 1085
Registrado em: Sáb Dez 09, 2017 12:33 am
Has thanked: 24 times
Have thanks: 453 times

Próximo

Voltar para VBA & Macros

Quem está online

Usuários navegando neste fórum: Google Adsense [Bot] e 11 visitantes