none
Erro ao dar o valor da soma na célula RRS feed

  • Pergunta

  • Boa Tarde,

    Tentei criar uma funcao que localizasse o nome do ambiente da minha tabela final em outras abas e somasse todos os numeros da coluna ao lado do ambiente encontrado, mas da o seguinte erro na celula pra soma: #VALOR!

    Teria como alguem dar uma corrigida no codigo para mostrar o nr na celula e nao como msgbox?

    VALEU

       

    Function ProcuraValor(nome_ambiente, coluna_valor)
        'Declara nome_ambiente como strign que vai receber o valor a ser procurado na planilha
        Dim i, j, QuantPlanilhas As Integer
        'Declara duas variáveis do tipo inteiro
        'i -> Para controlar o laço de repetição
        'j -> Para salvar a coluna de onde nome_amb foi achado
        'QuantPlanilhas -> para armazenar a quantidade de planilhas da pasta de trabalho atual
        Dim k, Soma As Variant
        'Declara duas variáveis do tipo numero fracional

        QuantPlanilhas = ThisWorkbook.Worksheets.Count - 3
        Soma = 0

        'Inicia o laço de repetição que varre todas as planilhas da pasta de trabalho atual
        For i = 1 To QuantPlanilhas Step 1
            'Seleciona toda a área da planilha
            With Worksheets(i).Range("B20:B500")
                'Efetua o método de busca, que retorna o valor da coluna_valor se for encontrado
                Set c = .Find(nome_amb, LookIn:=xlValues)
                j = c.Row
                k = Worksheets(i).Cells(j, coluna_valor)
            End With
            Soma = Soma + k
            'MsgBox (Soma)
        Next
        MsgBox (Soma)
        ProcuraValor = Soma
    End Function

    quarta-feira, 8 de agosto de 2012 18:10

Respostas

  • "e pegar o valor ao lado para somar"

    Pra mim, "ao lado", significa na coluna da frente. Experimente o código abaixo:

    Function ProcuraValor(nome_ambiente, coluna_valor)
        'Declara nome_ambiente como strign que vai receber o valor a ser procurado na planilha
        Dim i, j, QuantPlanilhas As Integer
        Dim c As Range
        'Declara duas variáveis do tipo inteiro
        'i -> Para controlar o laço de repetição
        'j -> Para salvar a coluna de onde nome_amb foi achado
        'QuantPlanilhas -> para armazenar a quantidade de planilhas da pasta de trabalho atual
        Dim k, Soma As Variant
        'Declara duas variáveis do tipo numero fracional
    
        QuantPlanilhas = ThisWorkbook.Worksheets.Count - 3
        Soma = 0
    
        'Inicia o laço de repetição que varre todas as planilhas da pasta de trabalho atual
        For i = 1 To QuantPlanilhas Step 1
            'Seleciona toda a área da planilha
            With Worksheets(i).Range("B20:B500")
                'Efetua o método de busca, que retorna o valor da coluna_valor se for encontrado
                k = 0
                Set c = .Find(nome_ambiente, LookIn:=xlValues)
                If Not c Is Nothing Then
                    j = c.Row
                    k = Worksheets(i).Cells(j, coluna_valor)
                End If
            End With
            Soma = Soma + k
            'MsgBox (Soma)
        Next
        ProcuraValor = Soma
    End Function

    Para usar a função, escreva algo como:

    =ProcuraValor("fff";3)


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    • Marcado como Resposta tatimm sexta-feira, 10 de agosto de 2012 11:46
    quinta-feira, 9 de agosto de 2012 20:55
    Moderador

Todas as Respostas

  • Olá amigo,

    É pra mostrar o número exatamente em qual célula da tabela de cada planilha?


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quarta-feira, 8 de agosto de 2012 22:01
    Moderador
  • Oi,

    acima ele ira procurar por um ambiente em varias abas e pegar o valor ao lado para somar......no final é pra me mostrar só a soma!

    quinta-feira, 9 de agosto de 2012 10:53
  • "e pegar o valor ao lado para somar"

    Pra mim, "ao lado", significa na coluna da frente. Experimente o código abaixo:

    Function ProcuraValor(nome_ambiente, coluna_valor)
        'Declara nome_ambiente como strign que vai receber o valor a ser procurado na planilha
        Dim i, j, QuantPlanilhas As Integer
        Dim c As Range
        'Declara duas variáveis do tipo inteiro
        'i -> Para controlar o laço de repetição
        'j -> Para salvar a coluna de onde nome_amb foi achado
        'QuantPlanilhas -> para armazenar a quantidade de planilhas da pasta de trabalho atual
        Dim k, Soma As Variant
        'Declara duas variáveis do tipo numero fracional
    
        QuantPlanilhas = ThisWorkbook.Worksheets.Count - 3
        Soma = 0
    
        'Inicia o laço de repetição que varre todas as planilhas da pasta de trabalho atual
        For i = 1 To QuantPlanilhas Step 1
            'Seleciona toda a área da planilha
            With Worksheets(i).Range("B20:B500")
                'Efetua o método de busca, que retorna o valor da coluna_valor se for encontrado
                k = 0
                Set c = .Find(nome_ambiente, LookIn:=xlValues)
                If Not c Is Nothing Then
                    j = c.Row
                    k = Worksheets(i).Cells(j, coluna_valor)
                End If
            End With
            Soma = Soma + k
            'MsgBox (Soma)
        Next
        ProcuraValor = Soma
    End Function

    Para usar a função, escreva algo como:

    =ProcuraValor("fff";3)


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    • Marcado como Resposta tatimm sexta-feira, 10 de agosto de 2012 11:46
    quinta-feira, 9 de agosto de 2012 20:55
    Moderador