MACRO ACHAR PALAVRA NA CELULA
Prezados, gostaria da ajuda de vocês, como sei menos que o básico de vb, não estou conseguindo, tenho a seguinte macro, ela funciona muito bem, mas, gostaria de deixar ela mais enchuta, onde Ãnsere a fórmula que procura determinada palavra na célula e retorna outra
(ActiveCell.FormulaR1C1 = _
[Ô]=IF(ISNUMBER(FIND([Ô][Ô]NIQ[Ô][Ô],RC[-1])),[Ô][Ô]NIQUELAÇÃO[Ô][Ô],IF(ISNUMBER(FIND([Ô][Ô]FORNO[Ô][Ô],RC[-1])),[Ô][Ô]FORNO[Ô][Ô],IF(ISNUMBER(FIND([Ô][Ô]CLAS[Ô][Ô],RC[-1])),[Ô][Ô]CLASSIFICAÇÃO[Ô][Ô],IF(ISNUMBER(FIND([Ô][Ô]PIST[Ô][Ô],RC[-1])),[Ô][Ô]PISTOLA[Ô][Ô],[Ô][Ô]ACA[Ô][Ô]))))[Ô]
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False)
, gostaria de verificar como montar isso com .find.
Se puderem me dar uma luz
Sub Fórmula1()
Application.ScreenUpdating = False
Columns([Ô]C:C[Ô]).Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range([Ô]C1[Ô]).Select
ActiveCell.FormulaR1C1 = [Ô]PROCESSO[Ô]
Range([Ô]C2[Ô]).Select
[ô]Define que o processo será repetido enquanto a célula à direita
[ô]for diferente de vazia
Do While ActiveCell.Offset(0, 1).Value <> [Ô][Ô]
If ActiveCell.Value = [Ô][Ô] Then
ActiveCell.FormulaR1C1 = _
[Ô]=IF(ISNUMBER(FIND([Ô][Ô]NIQ[Ô][Ô],RC[-1])),[Ô][Ô]NIQUELAÇÃO[Ô][Ô],IF(ISNUMBER(FIND([Ô][Ô]FORNO[Ô][Ô],RC[-1])),[Ô][Ô]FORNO[Ô][Ô],IF(ISNUMBER(FIND([Ô][Ô]CLAS[Ô][Ô],RC[-1])),[Ô][Ô]CLASSIFICAÇÃO[Ô][Ô],IF(ISNUMBER(FIND([Ô][Ô]PIST[Ô][Ô],RC[-1])),[Ô][Ô]PISTOLA[Ô][Ô],[Ô][Ô]ACA[Ô][Ô]))))[Ô]
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
ActiveCell.Offset(1, 0).Activate
Loop
Range([Ô]A1[Ô]).Select
Application.ScreenUpdating = False
End Sub
(ActiveCell.FormulaR1C1 = _
[Ô]=IF(ISNUMBER(FIND([Ô][Ô]NIQ[Ô][Ô],RC[-1])),[Ô][Ô]NIQUELAÇÃO[Ô][Ô],IF(ISNUMBER(FIND([Ô][Ô]FORNO[Ô][Ô],RC[-1])),[Ô][Ô]FORNO[Ô][Ô],IF(ISNUMBER(FIND([Ô][Ô]CLAS[Ô][Ô],RC[-1])),[Ô][Ô]CLASSIFICAÇÃO[Ô][Ô],IF(ISNUMBER(FIND([Ô][Ô]PIST[Ô][Ô],RC[-1])),[Ô][Ô]PISTOLA[Ô][Ô],[Ô][Ô]ACA[Ô][Ô]))))[Ô]
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False)
, gostaria de verificar como montar isso com .find.
Se puderem me dar uma luz
Sub Fórmula1()
Application.ScreenUpdating = False
Columns([Ô]C:C[Ô]).Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range([Ô]C1[Ô]).Select
ActiveCell.FormulaR1C1 = [Ô]PROCESSO[Ô]
Range([Ô]C2[Ô]).Select
[ô]Define que o processo será repetido enquanto a célula à direita
[ô]for diferente de vazia
Do While ActiveCell.Offset(0, 1).Value <> [Ô][Ô]
If ActiveCell.Value = [Ô][Ô] Then
ActiveCell.FormulaR1C1 = _
[Ô]=IF(ISNUMBER(FIND([Ô][Ô]NIQ[Ô][Ô],RC[-1])),[Ô][Ô]NIQUELAÇÃO[Ô][Ô],IF(ISNUMBER(FIND([Ô][Ô]FORNO[Ô][Ô],RC[-1])),[Ô][Ô]FORNO[Ô][Ô],IF(ISNUMBER(FIND([Ô][Ô]CLAS[Ô][Ô],RC[-1])),[Ô][Ô]CLASSIFICAÇÃO[Ô][Ô],IF(ISNUMBER(FIND([Ô][Ô]PIST[Ô][Ô],RC[-1])),[Ô][Ô]PISTOLA[Ô][Ô],[Ô][Ô]ACA[Ô][Ô]))))[Ô]
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
ActiveCell.Offset(1, 0).Activate
Loop
Range([Ô]A1[Ô]).Select
Application.ScreenUpdating = False
End Sub
Olha isso,varios exemplos
http://www.rondebruin.nl/find.htm
Sub Macro1()
Dim FindString As String
Dim Rng As Range
FindString = InputBox([Ô]Enter a Search value[Ô])
If Trim(FindString) <> [Ô][Ô] Then
With Sheets([Ô]Plan1[Ô]).Range([Ô]A:A[Ô])
Set Rng = .Find(What:=FindString, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
Application.Goto Rng, True
Else
MsgBox [Ô]Nothing found[Ô]
End If
End With
End If
End Sub
http://www.rondebruin.nl/find.htm
Sub Macro1()
Dim FindString As String
Dim Rng As Range
FindString = InputBox([Ô]Enter a Search value[Ô])
If Trim(FindString) <> [Ô][Ô] Then
With Sheets([Ô]Plan1[Ô]).Range([Ô]A:A[Ô])
Set Rng = .Find(What:=FindString, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
Application.Goto Rng, True
Else
MsgBox [Ô]Nothing found[Ô]
End If
End With
End If
End Sub
Muito bom Ale, obrigado pela sua resposta rápida, vou ver se consigo inserir esse código na minha macro, qualquer coisa retorno.
Ainda não consegui, essa macro que eu postei na mensagem, ela faz o seguinte insere uma coluna. depois ela dê a coluna ao lado, enquanto ela estiver vazia insere a fórmula e cola valores, então essa procura também deveria se basear na célula da direita e se fo diferente de vazio, ler a célula da esquerda e voltar a palavra na célula atua.
Bem vou continuar tentando
Bem vou continuar tentando
Tópico encerrado , respostas não são mais permitidas