locked
FUNÇÕES EM VBA RRS feed

  • Pergunta

  • Bom dia a todos, será que alguém pode me explicar como é que coloco as funções básicas do excel como procv, somase, cont.se e outras como soma, em várias células mas com VBA? Ex: da célula a1 até a100, eu não sei colocar em várias células, em uma só eu sei mas em várias eu não sei declarar para o excel.

    CAso não tenham entendido a dúvida, meu e-mial é LBARBOSA@SANEPAR.COM.BR

    OBRIGADO A TODOS

    ABRAÇOS

    LEANDRO

    quarta-feira, 5 de setembro de 2007 10:55

Todas as Respostas

  • Olá Leandro,

    entendi sua pergunta mais não sei como quer implementar, vou tentar explicar.

     

    Exemplo:

    For i = 1 To 100
       Cells(i, 1) = "=SUM(RC[1]:RC[2])"
    Next

     

    Obs: Você faz um For com uma variável contador para ir mudando a linha onde sera inserida a formula entre aspas duplas.

     

    abraços,

     

     

    quinta-feira, 6 de setembro de 2007 14:11
  • Oi Ian, obrigado pela resposta, mas poderia me dizer mais uma coisa?

    O que quer dizer o (i,1), mais diretamente o 1?

     

    Eu quero implementa-las em colunas exemplo, na coluna C, somando as colunas A e B, assim:

    c1 é igual a soma de A1 + B1, fui claro?

     

    Abraços

    quinta-feira, 6 de setembro de 2007 16:19
  • Leandro, a partir da função Cells, é possível vc, através do número de índice de cada coluna e linha, referenciar uma célula.

    Por exemplo, a célula A1, é Cells(1,1). Deu pra entender? Quer dizer linha 1, coluna 1 na matriz da planilha.

    Bom...pelo que entendi, vc quer somar da linha 1 a 100, o valor da coluna A+B e representar em C, linha por linha. Isso?

    C1 = A1+B1

    C100 = A100+B100

     

    A programação da Ian está correta. Só estou adaptando pra fazer a coluna C ser igual a A + B. Ok?

     

    Sub SomarColunaAB()

    Dim i As Integer

        For i = 1 To 100 Step 1
            Cells(i, 3) = "=SUM(A" & i & ":" & "B" & i & ")"
        Next i

    End Sub

     

    Deu pra entender?

    Retorne os resultados!

    Abraços,

    sexta-feira, 7 de setembro de 2007 00:23
  • Para não ter problemas com o idioma do Excel, use a propriedade "Formula", e o nome das funções sempre em inglês:

     

    Sub InsereFormula()
    Dim l As Long

    For l = 1 To 100
        ThisWorkbook.Worksheets(1).Cells(l, 1).Formula = "=SUM(B1:B" & l & ")"
    Next l
    End Sub

     

    sábado, 8 de setembro de 2007 00:49
    Moderador
  • Landro, para função cont.se você pode usar:

     

    Função Cont.Se (countif) em VBA

    Sub cont.se ()

    Dim i, cont

    i = 1                                                                     ' numero da linha inicial

    Cont = 0                                                             ' variavel contadora

    Do Until Sheet1.Cells (i, 1) = ""                     ' onde i é a linha e um é a coluna

    If Sheet1.Cells (i, 1) = "200822" Then           ' onde "200822" é o critério

        cont = cont + 1

    End If

    i = i + 1

    Loop

    MsgBox "Existe(m) " & cont & " ocorrências.", vbOKOnly, "quantidade"

    End Sub

     

    Neste exemplo o macro conta a quantidade de vezes que o valor "200822" consta na coluna 1.

     

    Espero que tenha ajudado.

    segunda-feira, 23 de junho de 2008 18:02
  • Eu costumo utilizar o método Worksheetfunction, como no exemplo abaixo:

     

    Code Snippet

    Sub Funções()
    Dim Intervalo As Range
    Dim CONTSE, PROCV, SOMASE

    Set Intervalo = [A1:A100]

    Pesquisa = "Valor"

    CONTSE = Application.WorksheetFunction.CountIf(Intervalo, Pesquisa)
    PROCV = Application.WorksheetFunction.VLookup(Pesquisa, Intervalo, 1, False)
    SOMASE = Application.WorksheetFunction.SumIf(Intervalo, Pesquisa)

    End Sub

     

     

     

    [ ]s

    terça-feira, 24 de junho de 2008 10:09