Escola Saberexcel VBA Estudos® - Treinamentos com Macros, Fórmulas e Funções
Escola Saberexcel VBA Estudos®
Treinamentos com Macros, Fórmulas e Funções
Site....: http://www.microsoftexcel.com.br
Email..: [email protected]
'//========================'
RESPONDENDO A VARIAS DÚVIDAS:
1- ) gera números Aleatórios(Colunas(C), Coluna(E))
2-) Mostra as formulas da Coluna(G)) nas coluna(I) Função ExisteFormulas
3-) faz os calculos por linha(como nas formulas )(usando Lin,col - Propriedade Cells() )
'//======='(Subtrai(Colunas(E-C), Divide por 5 e multiplica por 5,76
4-com o mesmo macro faz acumulo de Valores em Variavel ((xSoma))
//=======' e retorna valores variaveis para linha 24 que é linha de totais
- (Treinamento com Do While Until
5- há também uma soma isolada das colunas(C), Coluna(E), Coluna(K)
'//=======' o Loop percorrerá todas as células das colunas [acumulando valores em variaveis Soma]
'//======='até encontrar a palavra Total, quando encontrar descarrega os valores das variaveis nas colunas correspondentes
Sub sbx_gerar_numeros_aleatorios()
Dim tSoma, vSoma, zSoma, ySoma As Double
For i = 4 To Cells(Rows.Count, "a").End(xlUp).Row
If i = 21 Then Exit For 'para inserir números aleatórios depois da linha 21 (Palavra Total)
Cells(i, "c").Value = CDbl(Application.WorksheetFunction.RandBetween(200, 1000) & "," & Application.WorksheetFunction.RandBetween(1, 99))
Cells(i, "e").Value = CDbl(Application.WorksheetFunction.RandBetween(3000, 5000) & "," & Application.WorksheetFunction.RandBetween(1, 99))
Cells(i, "b").NumberFormat = "0.00"
Cells(i, "e").NumberFormat = "0.00"
Cells(i, "i") = "'" & ExisteFomula(Range("G" & CStr(i)))
Cells(i, "k").Value = (Cells(i, "e").Value - Cells(i, "c").Value) / 2 * 5.76
'//========='variaveis soma acumulando valor (Linhas e Colunas especificas)
tSoma = tSoma + Cells(i, "c").Value 'aproveitando o Instrução for next para inserção Soma
vSoma = vSoma + Cells(i, "e").Value
zSoma = zSoma + Cells(i, "g").Value
ySoma = ySoma + Cells(i, "k").Value
Next i
Cells(i + 3, "c").Value = tSoma
Cells(i + 3, "e").Value = vSoma
Cells(i + 3, "g").Value = zSoma
Cells(i + 3, "k").Value = ySoma
End Sub
'//======='
'fiz a soma também por variaveis no macro anterior para ilustrar [Somando com Variaveis]
'mas segue um treinamento com Do While
Sub sbx_soma_do_while_treinamentos()
Dim tSoma, vSoma, zSoma, ySoma As Double
i = 4
If Application.WorksheetFunction.CountA(Range("c4:c20")) = 0 Then
MsgBox ("insira primeiramente os números aleatórios"), vbCritical, "Escola Saberexcel VBA Estudos®"
End If
Do Until Cells(i, "A").Value = "Total"
tSoma = tSoma + Cells(i, "c").Value
vSoma = vSoma + Cells(i, "e").Value
zSoma = zSoma + Cells(i, "g").Value
ySoma = ySoma + Cells(i, "k").Value
i = i + 1
Loop
Cells(i, "c").Value = tSoma 'descarrega variavel - valores acumulados linha palavra "Total"
Cells(i, "e").Value = vSoma
Cells(i, "g").Value = zSoma
Cells(i, "k").Value = ySoma
End Sub
'//=======' função personalizada mostra fórmulas
Function ExisteFomula(sbxCell)
ExisteFomula = sbxCell.FormulaLocal
End Function
'//=======' macro chama a funcao ExisteFormulas, mostrando formulas na coluna (I)
Sub sbx_mostrar_formulas()
Dim i As Integer
For i = 4 To Cells(Rows.Count, "c").End(xlUp).Row
Cells(i, "i") = "'" & ExisteFomula(Range("G" & CStr(i)))
Next i
End Sub
'//=======' Limpar as os range nas colunas c,e,i,k, e celulas,
Sub sbx_limpar_teste()
Dim vRange As Range
For Each vRange In Range("C4:C20,E4:E20,I4:I20,K4:K20,c24,e24,g24,k24")
vRange.ClearContents
Next vRange
End Sub
'//=======' Limpar as somas que foram inseridas pelo macro (Do While Until)
Sub sbx_limpar_teste_Total()
[c24,e24,g24,k24].ClearContents
End Sub
'//======='
Fiquem com Deus,
Expedito Marcondes
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.
Baixe o exemplo de planilha contendo os macros acima.
Excel vba gera numeros aleatorios soma treinamento vba (124.06 KB)