Ir ao conteúdo
  • Cadastre-se

Formula primeira coisa digitada acima.


AlysonR

Posts recomendados

Boa noite, conheço muito este foram por causa de pesquisas só que agora decide me cadastrar para ajudar e ser ajudado também ^^

Preciso de uma formulá que encontre a primeira célula acima que não estava vazia e coloca o valor para ela caso a celular do lado esteja marcado X.

Explicando:

A2 tem "M" e B2 tem um texto qualquer.

A17 tem "X" então eu quero que aparece B17 o texto que estiver no B2.

Obs.: Não tem nada entre essas duas linha.:angry:

Já vi que algumas vezes o pessoal pede para postar links então estou postando o do meu Excel ^^.

http://www.sendspace.com/file/xgcrib

Muito obrigado desde já e aguardo.

Link para o comentário
Compartilhar em outros sites

Instale o código abaixo em um módulo comum, assim:

1. copie o código daqui

2. a partir da planilha em que estão os dados tecle 'Alt+F11' para acessar o editor de VBA

3. no menu do editor >> Inserir >> Módulo

4. cole o código na janela em branco que vai se abrir

5. feito! 'Alt+Q' para retornar para a planilha e testar

para rodar o código:

6. tecle 'Alt+F8' >> selecione a macro correspondente >> Executar, ou insira um botão na planilha e vincule-o à macro

Sub Teste()
Dim LR As Long, oCel As Range
LR = Cells(Rows.Count, 1).End(xlUp).Row
For Each oCel In Range("A3:A" & LR)
If oCel.Value = "M" Or oCel.Value = "x" Then
oCel.Offset(, 1).Value = [L1]
End If
Next oCel
End Sub

Link para o comentário
Compartilhar em outros sites

Não deu certo quando eu vou fazer o F8 na minha planilha principal ele mostrar um caracter errado, estou mandando ela como link novamente só que dessa vez completa.

AlysonR-131212-completo.xls

A formula "Índice" é possível colocar a ultima linha que não esteja vazia para aparecer no resultado?

Link para o comentário
Compartilhar em outros sites

Não deu certo quando eu vou fazer o F8 na minha planilha principal ele mostrar um caracter errado,

1. o que é fazer F8 na planilha ?

2. o que é um caracter errado ?

Testei aqui e também funcionou nesse segundo arquivo que você postou.

Para rodar a macro experimente teclar 'Alt+F8', como foi sugerido no meu post anterior.

A formula "Índice" é possível colocar a ultima linha que não esteja vazia para aparecer no resultado?

Experimente.

Link para o comentário
Compartilhar em outros sites

O código coloca "18h0s" em 'B' ao encontrar 'M' ou 'X' em 'A'.

É assim que está no seu exemplo.

No lugar de "18h0s" você quer colocar :ETB148 e :ETB156, é isso?

Em que células estão os conteúdos :ETB148 e :ETB156 e qual o critério para colocar :ETB148 ou :ETB156 ?

debaixo para palavra material na celula (B15) tem uma formulá que vai encontrar o material.

Isso eu também não entendi.

Link para o comentário
Compartilhar em outros sites

A coluna K mostra a palavra "Material" e do lado direito Coluna L mostra qual o material.

Exemplo: (linha 20)

Celula A20 = M - Formula{=SE(Q20=".";SE(K18="MATERIAL";"M";"x");"")}

Celula B20 = se celula a20 for igual a "M" procure o material da linha.

O material da linha nesse caso vai ser o primeiro que estiver na coluna L acima (para identificar ele está do lado da palavra "Material" Coluna K.

Ficando assim.

Celula L18 = ETB148. (ele é o material)

Link para o comentário
Compartilhar em outros sites

Sub Teste2()
Dim LR As Long, lin As Long, oCel As Range
LR = Cells(Rows.Count, 1).End(xlUp).Row
For Each oCel In Range("A3:A" & LR)
If oCel.Value = "M" Or oCel.Value = "x" Then
lin = Columns("K").Find(What:="MATERIAL", _
After:=Cells(oCel.Row, "K"), SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, LookAt:=xlWhole, _
LookIn:=xlValues).Row
oCel.Offset(, 1).Value = Cells(lin, "L").Value
End If
Next oCel
End Sub

Link para o comentário
Compartilhar em outros sites

Deu certo!!! Eu tenho mais uma duvida possível mudar a coluna da lógica para A macro VBA da mesma maneira que foi feita na coluna B?

Sub Teste2()
Dim LR As Long, lin As Long, oCel As Range
LR = Cells(Rows.Count, 1).End(xlUp).Row
For Each oCel In Range("A3:A" & LR)
If oCel.Value = "M" Or oCel.Value = "x" Then
lin = Columns("K").Find(What:="MATERIAL", _
After:=Cells(oCel.Row, "K"), SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, LookAt:=xlWhole, _
LookIn:=xlValues).Row
oCel.Offset(, 1).Value = Cells(lin, "L").Value
End If
Next oCel
End Sub

Link para o comentário
Compartilhar em outros sites

Eu tenho mais uma duvida possível mudar a coluna da lógica para A macro VBA da mesma maneira que foi feita na coluna B?

O resultado (código do material) será lançado na coluna 'C'.

Sub Teste3()
Dim LR As Long, lin As Long, oCel As Range
LR = Cells(Rows.Count, [COLOR="Red"][B]2[/B][/COLOR]).End(xlUp).Row
For Each oCel In Range("[COLOR="Red"][B]B[/B][/COLOR]3:[COLOR="Red"][B]B[/B][/COLOR]" & LR)
If oCel.Value = "M" Or oCel.Value = "x" Then
lin = Columns("K").Find(What:="MATERIAL", _
After:=Cells(oCel.Row, "K"), SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, LookAt:=xlWhole, _
LookIn:=xlValues).Row
oCel.Offset(, 1).Value = Cells(lin, "L").Value
End If
Next oCel
End Sub

Link para o comentário
Compartilhar em outros sites

O resultado (código do material) será lançado na coluna 'C'.

Sub Teste3()
Dim LR As Long, lin As Long, oCel As Range
LR = Cells(Rows.Count, [COLOR="Red"][B]2[/B][/COLOR]).End(xlUp).Row
For Each oCel In Range("[COLOR="Red"][B]B[/B][/COLOR]3:[COLOR="Red"][B]B[/B][/COLOR]" & LR)
If oCel.Value = "M" Or oCel.Value = "x" Then
lin = Columns("K").Find(What:="MATERIAL", _
After:=Cells(oCel.Row, "K"), SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, LookAt:=xlWhole, _
LookIn:=xlValues).Row
oCel.Offset(, 1).Value = Cells(lin, "L").Value
End If
Next oCel
End Sub

Não sei se eu me expliquei direito.... Bom a primeira coluna é um teste logico então eu se a coluna "Q" estiver escrito "." coloque na coluna "A" (mesma linha) "x".

Link para o comentário
Compartilhar em outros sites

Eu tenho mais uma duvida possível mudar a coluna da lógica para A macro VBA da mesma maneira que foi feita na coluna B?

Não sei se eu me expliquei direito.... Bom a primeira coluna é um teste logico então eu se a coluna "Q" estiver escrito "." coloque na coluna "A" (mesma linha) "x".

Estamos ainda tratando do mesmo assunto que iniciou o tópico ?

Tenho a impressão que mudamos o tema... estou certo?

Agora você quer pesquisar pela existência de 'um ponto isolado' na coluna 'Q' e colocar "x" na coluna 'A' mesma linha ? É para pesquisar na mesma planilha do assunto anterior? Não ví lá nenhuma célula que contenha um ponto isolado na coluna 'Q'.

Sugestão: para responder aqui no fórum clique em "Responder', não clique em 'Citar'.

Link para o comentário
Compartilhar em outros sites

Desculpa eu estava respondendo rápido só que estava marcando a opção Citar -.-" sou novato...

Respondendo: Sim eu mudei o meu foco pois o seu código agora está funcionando perfeitamente, então gostaria de fazer um código para marcar automaticamente a primeira coluna...

Sei muito Access porém aonde eu trabalho ele não serve muito apesar de mudar muitas coisas para Access ^^

Crio um novo tópico para este assunto diferente?

Link para o comentário
Compartilhar em outros sites

Se houver um ponto isolado em 'Q', o código abaixo coloca 'x' em 'A', na mesma linha.

Sub ColocaXemA()
Dim LR As Long, k As Long
LR = Cells(Rows.Count, "Q").End(xlUp).Row
For k = 1 To LR
If Cells(k, "Q").Value = "." Then
Cells(k, 1).Value = "x"
End If
Next k
End Sub

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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...