none
Transformar tudo que contém a fórmula "indireto" em valores em toda a pasta de trabalho RRS feed

  • Pergunta

  • Olá!

    Existe algum código que transforme em valores todas as células que contém a fórmula INDIRETO? Porém, para as células que não contenham a fórmula INDIRETO, mantenha-se a fórmula.

    Preciso que o código seja executada para toda a pasta de trabalho.

    Desde já, obrigado.

    quinta-feira, 22 de fevereiro de 2018 11:48

Respostas

  • Este código procura pela formula em questão e converte em valores, em todas as planilhas da pasta de trabalho.

    Dim r As Range
        Dim i!
        Dim miForm()
        Dim sh As Worksheet
        
        miForm = Array("INDIRECT")
        
        For i = 0 To UBound(miForm)
            
            For Each sh In ThisWorkbook.Worksheets
                sh.Activate
                On Error Resume Next
                With ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas)
                    
                    Set r = .Find(miForm(i), LookIn:=xlFormulas)
                    If Not r Is Nothing Then
                        On Error GoTo 0
                        Do
                            r.Value = r.Value
                            Set r = .FindNext(r)
                            Loop Until r Is Nothing
                        End If
                    End With
                    
                Next sh
            Next i


    Click em propor como resposta se foi util a voce. ricardodm@outlook.com.br

    • Marcado como Resposta Oliveira, Douglas quinta-feira, 22 de fevereiro de 2018 12:56
    quinta-feira, 22 de fevereiro de 2018 12:33

Todas as Respostas

  • Este código procura pela formula em questão e converte em valores, em todas as planilhas da pasta de trabalho.

    Dim r As Range
        Dim i!
        Dim miForm()
        Dim sh As Worksheet
        
        miForm = Array("INDIRECT")
        
        For i = 0 To UBound(miForm)
            
            For Each sh In ThisWorkbook.Worksheets
                sh.Activate
                On Error Resume Next
                With ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas)
                    
                    Set r = .Find(miForm(i), LookIn:=xlFormulas)
                    If Not r Is Nothing Then
                        On Error GoTo 0
                        Do
                            r.Value = r.Value
                            Set r = .FindNext(r)
                            Loop Until r Is Nothing
                        End If
                    End With
                    
                Next sh
            Next i


    Click em propor como resposta se foi util a voce. ricardodm@outlook.com.br

    • Marcado como Resposta Oliveira, Douglas quinta-feira, 22 de fevereiro de 2018 12:56
    quinta-feira, 22 de fevereiro de 2018 12:33
  • Obrigado Ricardo Vba, estava precisando disso mesmo. Excelente!
    quinta-feira, 22 de fevereiro de 2018 12:56