Planilha Excel VBA Fatura com Eventos Change e SelectionChange
Este Macros e Procedimentos do Aplicativo Microsoft Excel VBA(Visual Basic Application), existentes nesse exemplo de fatura(Planilha), observe que usei os Eventos de Planilha WorkSheetChange() ao corrigir, alterar, digitar em determinadas células da folha de planiha e também o Evento WorkSheet_SelectionChange(), ao selecionar a folha de planilha insere na linha ativa uma cor e fontes e interior da células, determinada e pela linha de código “.colorindex =”
Exemplo bom para pesquisa e estudos com eventos Excel VBA e fórmulas também, há um macro para incrementar e decrementar o número da fatura, impedindo usuario retroagir para um valor negativo.
Dim x As Integer
Dim Y As Byte
Private Sub btADICIONAR_DELETAR_Click()
Dim vRegiao As Range
Set vRegiao = Range(Range(“A” & Range(“LinhaAlvo”).Row), Range(“G” & Range(“LinhaAlvo”).Row + Range(“LinhaAlvo”).Rows.Count – 2))
If Not Intersect(vRegiao, ActiveCell) Is Nothing Then
frmADD_DEL_LINHAS.Show
Else
MsgBox “Por favor, selecione uma célula na Regiao adequada !”, vbInformation, “Escola Saberexcel – Atenção!”
End If
End Sub
‘caso seus eventos desabilite, habilite-os novamente com esse macro
Sub habilitar_eventos()
Application.EnableEvents = True
End Sub
‘//======’ Evento Change (ao digitar, alterar uma célula),
Private Sub Worksheet_Change(ByVal Target As Range)
‘A primeira letra maiúscula
Dim vRegiao As Range
Dim M As Range
If Target.Count > 1 Then Exit Sub ‘se o usuario selecionar mais de uma célula sai da sub
Set vRegiao = Range(Range(“C” & Range(“NomeProprio”).Row), Range(“C” & Range(“NomeProprio”).Row + Range(“NomeProprio”).Rows.Count – 2))
If Not Intersect(vRegiao, Target) Is Nothing Then ‘verficando a interseccão dos dados, se é dentro da vRegiao
If Trim(Target.Cells(1, 1)) = “” Then ‘Trim = Arrumar(retira espaços)
Rows(Target.Row).RowHeight = 15
Exit Sub
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Target = UCase(Left(Target, 1)) & Mid(Target, 2) ‘ aplicando letras maiusculas na primeira letra da célula
‘Target = Application.Proper(Target) ‘fonte nomes próprio
Application.EnableEvents = True
‘Ajuste a altura da linha
ActiveSheet.Unprotect
Set M = Target.MergeArea ‘mesclando
M.UnMerge ‘desmesclar uma área ou célula
M.WrapText = True
M.HorizontalAlignment = xlCenterAcrossSelection
M.Rows.AutoFit ‘ajustando o tamanho da célula ao tamanho da palavra ou frase
M.Merge
M.HorizontalAlignment = xlGeneral
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFormattingCells:=True, AllowFormattingRows:=True
‘Células maiúsculas
ElseIf Not Application.Intersect(Target, Range(“CelulaMaiuscula”)) Is Nothing Then
If Not IsEmpty(Target) Then
Application.EnableEvents = False
Target.Value = UCase(Target.Value)
Application.EnableEvents = True
End If
End If
End Sub
‘//======’ Evento Selection Change ao selecionar em determinada área da folha de planiha.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
‘para colorir as células(Linha) em um intervalo específico de colunas.
Dim vRegiao As Range
Set vRegiao = Range(Range(“A” & Range(“LinhaAlvo”).Row), Range(“G” & Range(“LinhaAlvo”).Row + Range(“LinhaAlvo”).Rows.Count – 2))
vRegiao.Interior.ColorIndex = xlNone
vRegiao.Font.ColorIndex = 1
vRegiao.Font.Bold = False
If Not Intersect(vRegiao, Target) Is Nothing Then
Range(“A” & Target.Row).Resize(1, 7).Interior.ColorIndex = 44
Range(“A” & Target.Row).Resize(1, 7).Font.ColorIndex = 9
Range(“A” & Target.Row).Resize(1, 7).Font.Bold = True
End If
End Sub
‘//========MACROS USADOS EM NOSSO EXERCÍCIO.
‘abrir o formulário para inserir linhas, somente exemplos para treinamento com Formulário USF
Sub sbx_abrir_usf()
frmADD_DEL_LINHAS.Show
End Sub
‘//======== incrementar números da fatura, também há uma lista suspensa de 1.000 números na célula, poderá optar por algum, ou macro ou lista suspensa, ‘Formata os números com zeros na frente do número da fatura.”
Sub sbx_num_fatura_adicionar()
If [Num_Fatura].Value >= 0 Then [Num_Fatura].Value = “0000” & [Num_Fatura] + 1
End Sub
‘//======== decrementa valores e impede de entrar número negativo.
Sub sbx_num_fatura_subtrair()
If [Num_Fatura].Value > 0 Then [Num_Fatura].Value = “0000” & [Num_Fatura] – 1
End Sub
‘//========’ inserimos as cores do vba com esse exemplo de macro, são 56 cores primarias,
‘na coluna(A) insere Cores e na coluna(B) o índice (numero correspondente do Visual Basic)
Sub sbx_cores_visualizar_indice()
Dim i As Single
For i = 1 To 56
saber3.Cells(i, “a”).Interior.ColorIndex = i
saber3.Cells(i, “b”).Value = i
Next i
End Sub
‘//=======’ limpar a area onde inserimos a cores para treinarmos com VBA
Observe que concatenei a célula(A1) com o final (Quantidade) células existentes na coluna(B), para
limpar as duas colunas, ” Limpa na Coluna(A) e (B) o total de células usadas na coluna(B)
‘Cells(Rows.Count, “b”).End(xlUp).Row’
Sub sbx_limpar_cores()
Range(“A1” & “:B” & Cells(Rows.Count, “b”).End(xlUp).Row).Clear
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.
PROMOÇÃO ESPECIAL – CURSO EXCEL VBA EXPERT |
Adquirir Todo Material Didático |
Escola SaberExcel VBA Estudos |
Compre pelo PagSeguro | Compre pelo PayPal | |
Relação do Material didático: Curso Excel VBA Expert – Escola SaberExcel |
Baixe o exemplo de planilha contendo os macros acima: |
Planilha Excel VBA fatura com eventos change e selection change |
<<Link Download: verifique a Caixa de Itens Excluídos >> |