Notifications
Clear all

FUNÇÃO SUBSTITUIR DO EXCEL PARA SUBSTITUIR COMENTÁRIOS

4 Posts
4 Usuários
0 Reactions
1,452 Visualizações
 jao8
(@jao8)
Posts: 0
New Member
Topic starter
 

Preciso substituir o conteúdo do COMENTÁRIO de várias células do excel, porém a função SUBSTITUIR somente examina o conteúdo da célula.
Existe alguma forma automatizada de fazer essa substituição ou terei que fazer uma por uma (em uma planilha de mais de 1000 linhas) ?

 
Postado : 20/10/2015 11:27 am
(@pfarias)
Posts: 0
New Member
 

Tem como fazer através de Macro. Entende algo? Se quiser ajudar, manda um help!

Sub Macro()
    Cells.Find(What:="COMO SUBSTITUIR?", After:=ActiveCell, LookIn:=xlComments, LookAt:=xlPart, _
                SearchOrder:=xlByRows, SearchDirection:=xlNext) = "NOVO COMENTARIO"
End Sub
 
Postado : 20/10/2015 11:43 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde jao8,

No VBE coloque esse código em um novo módulo e execute.

Option Explicit

Public Sub SubstituirComentario()
Dim i           As Long
Dim UltL        As Long
Dim Coluna      As String
Dim Antes       As String
Dim Depois      As String
On Error Resume Next
    
    Coluna = InputBox("Digite a coluna a alterar")
    Antes = InputBox("Digite o texto a ser substituido")
    Depois = InputBox("Digite o novo texto")
    UltL = ThisWorkbook.ActiveSheet.Range(Coluna & Rows.Count).End(xlUp).Row

    For i = 1 To UltL
        If Not Range(Coluna & i).Comment Is Nothing Then
            Range(Coluna & i).Comment.Text Text:=Replace(Range(Coluna & i).Comment.Text, Antes, Depois)
        End If
    Next i

    MsgBox ("Alteração realizada com sucesso!")

End Sub

Qualquer coisa da o grito.
Abraço

 
Postado : 20/10/2015 12:00 pm
 AJRL
(@ajrl)
Posts: 0
New Member
 

Desenvolva uma função personalizada na sua pasta de trabalho, ou seja, crie um procedimento Function.
A guia Desenvolvedor não é visível quando você abre o Excel. Fazer com que o Excel exiba a guia Desenvolvedor é fácil, mas o procedimento varia dependendo de qual versão você usa, mas, basicamente é isso: Arquivo - Opções - Personalizar Faixa de Opções - Coloque uma marca de verificação na caixa de seleção Desenvolvedor na Faixa de Opções e click em OK.
Selecione a Guia Desenvolvedor (que agora aparece do lado da Guia Exibição) e click em Visual Basic ou pressione Alt+F11.
No lado esquerdo, selecione com o botão direito a sua pasta de trabalho e click em inserir módulo. Do lado direito, digite (ou copie e cole) o seguinte:

Function MudarComentario (cell, NewText)
cell.Comment.Text NewText
End Function

Feche o Visual Basic ou clique no ícone do Excel em cima, do lado esquerdo.

E eis a fórmula que usa a função.
Exemplo: Imagine que a célula A1 já tem um comentário e quando a fórmula é calculada, o comentário é alterado.
=MudarComentario (A1; "Esta mensagem é nova!")
Agora você pode ver sua função na Caixa de Diálogo "Inserir Função". Ela estará listada na categoria "Definido pelo Usuário". O atalho é Shift+F3.

Selecione uma célula próxima da que você quer alterar o comentário. A fórmula retornará "0" nessa célula. Se existirem comentários em 5 linhas e 3 colunas consecutivas, faça o mesmo arrastando a fórmula para 3 células para a direita e 5 células abaixo, pois o A1 do exemplo não está travado com $. Os outros comentários também serão alterados caso o texto que você quer inserir seja o mesmo.
Depois, delete os "zeros" que aparecerão nas células que você utilizar como cobaias e ao sair, não se esqueça de salvar seu arquivo como "Pasta de Trabalho Habilitada para Macros do Excel"...

Essa explicação aprendi com o livro "Programando Excel VBA para LEIGOS" de John Walkenbach
Espero que tenha ajudado.
Adriano Lopes... TFA

 
Postado : 04/11/2015 1:03 pm