Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por CarlosSosa
#45917
Estou com o seguinte problema:

Tenho uma base de dados que limpo todo dia a fim de extrair valores. No intervalo "B1:B3" há utilização da fórmula "=SOMASE" a partir das condições apresentadas no intervalo "A1:A3"

Entretanto, a cada dia há um nº variável de linhas e, via VBA, estou tentando implementar uma contagem de nº de linhas presentes na coluna A (Sempre preenchida) para definir o intervalo que a fórmula "=SOMASE" vai buscar dados.

Consegui fazer a contagem via VBA sem problemas. Estou com dificuldades de aplicar a variável criada para contar as linhas na formula "=SUMIF" do VBA. Dá alguma erro que não consigo de maneira alguma solucionar.

Sendo assim, segue abaixo:
01) Disposição dos dados na planilha
02) Código atual que estou tentando usar
____________________________________________
01)
A B
1 Y 51 [=SOMASE($A$5:$A$10;A1;$B$5:$B$10)]
2 Z 23 [=SOMASE($A$5:$A$10;A2;$B$5:$B$10)]
3 Y 12 [=SOMASE($A$5:$A$10;A3;$B$5:$B$10)]
4
5 Y 21
6 Y 21
7 Z 11
8 X 12
9 Z 12
10 Y 9

02) Código utilizado para contagem
Sub SomaSe_Condicional()
' Contar ultima linha da coluna "A"
' Aplicar SOMASE

Dim ultimalinha As Long
ultimalinha = Range("A" & Rows.Count).End(xlUp).Row
Range("B1").Formula = "=SUMIF(A5:" & "A" & ultimalinha,"A1","B5:" & "B" & ultimalinha) 'ERRO
Range("B2").Formula = "=SUMIF(A5:" & "A" & ultimalinha,"A2","B5:" & "B" & ultimalinha) 'ERRO
Range("B3").Formula = "=SUMIF(A5:" & "A" & ultimalinha,"A3","B5:" & "B" & ultimalinha) 'ERRO

End Sub

Obs: No caso acima, a contagem de linha é igual a 10
#45918
Amigo, pq vc não converte em tabela que ele aumenta automaticamente os seus dados e suas fórmulas?
Por CarlosSosa
#45919
Fala Felipe.

Vou tentar utilizar tal situação.
Tentei até algo parecido, como nomear os intervalos localizados e utilizados no VBA. Porém também não deram certo.

Obrigado.
#45920
Experimente:
Código: Selecionar todos
' Verificar qual a ultima linha da coluna "A";  Aplicar SOMASE
Sub SomaSe_Condicional()
 Dim ultimalinha As Long
  ultimalinha = Range("A" & Rows.Count).End(xlUp).Row
  Range("B1:B3").Formula = "=SUMIF(A$5:A$" & ultimalinha & ",A1,B$5:B$" & ultimalinha & ")"
End Sub
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord