Escola Saberexcel VBA Estudos® – Treinamentos com Macros, Fórmulas e Funções
Este Macro do Aplicativo Microsoft Excel VBA(Visual Basic Application), contém 2 exemplos de macros que extraem relatório Excel VBA para outra folha de planilha, vamos usar objeto Range(Coluna e Linha) e Objeto Cells(Linha, Coluna)
e condição IF para essa comparação. Vamos aproveitar o exercício no segundo macro e vamos fazer uma soma referente aos grupos extraídos e também a média. Esses valores serão retornado para a folha de planilha na inserção da ultima linha de extração. Observe que usamos o evento Change() da folha de planilha (ao alterar ou digitar em determinada célula e Folha de Planilha. os valores retornarão automaticamente. veja que usamos também o evento SelectionChange() para abrir automaticamente a lista suspensa quando a célula for selecionada. (usando a função Sendkeys)
Fiquem com Deus. Expedito Marcondes
Faça o download do exemplo de planilha no final da página.
Atendendo o pedido do amigo,
Fiz mais um macro usando o objeto Rangee também inseri uma variavel tSoma para acumular os valores e descarregá-la na coluna (B) para Treinamento com Macro Observe também que inseri o macro no evento change da folha de planilha para ser sensibilizado pela Planilha Auxiliar (C2), ao ser alterada já extrai o relatório automaticamente. Calculando a Soma e Média automaticamente e retornando para para posição da ultima célula na coluna(F)
Sub sbx_extrair_dados2()
Dim i, wLin As Integer
On Error GoTo sbx
wLin = 4
‘Limpar area para novos dados
X = Plan1.Cells(Rows.Count, “b”).End(xlUp).Row + 1 ‘ ultima linha
Plan2.Range(“B4:G” & X & “,” & “f2” & “,” & “g2”).Clear
‘extração de dados
For i = 2 To Plan1.Cells(Rows.Count, “b”).End(xlUp).Row
If Plan1.Cells(i, “b”).Value = Plan2.Cells(2, “c”) Then
Plan1.Cells(i, “b”).Resize(, 3).Copy Plan2.Cells(wLin, “b”)
tSoma = tSoma + Plan1.Cells(i, “d”).Value
wLin = wLin + 1
End If
Next i
Plan2.Cells(wLin – 1, “f”).Value = tSoma
Plan2.Cells(wLin – 2, “f”).Value = “Total”
Plan2.Cells(wLin – 2, “g”).Value = “Média”
Plan2.Cells(wLin – 1, “g”).Value = (tSoma / (wLin – 4))
Exit Sub
sbx: MsgBox “Grupo ” & Plan2.Cells(2, “c”) & vbCrLf & “Grupo inexistente!”, vbCritical, “Escola SaberExcel VBA Estudos”
End Sub
Sub sbx_extrair_dados_criterio_grupo()
Dim i As Integer, j As Byte
j = 4
‘limpar
X = Plan2.Cells(Rows.Count, “b”).End(xlUp).Row + 1
Plan2.Range(“B4:D” & X).ClearContents
‘extrair usando a Instrução With e Objeto Range
With Plan1
For i = 2 To .Range(“B” & Rows.Count).End(xlUp).Row
If .Range(“B” & i) = Plan2.Range(“C2”) Then
Plan2.Range(“B” & j) = .Range(“B” & i)
Plan2.Range(“C” & j) = .Range(“C” & i)
Plan2.Range(“D” & j) = .Range(“D” & i)
j = j + 1
End If
Next i
End With
End Sub
Aprenda tudo sobre planilhas do Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos
Escola Saberexcel VBA Estudos® – Treinamentos com Macros, Fórmulas e Funções.
Adquira já o acesso area de membros Escola SaberExcel VBA Estudos.
u – Procedimentos de Aquisição dos produtos Didáticos SaberExcel
Baixe o exemplo de planilha contendo os macros acima:
Excel planilha vba extrair dados baseados criterio grupos (92.16 kB)