Buscar

Vba Excel Cadastro

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Sub BarraDeProgresso()
'Esta é a macro Principal, que chama todas as demais.
'Ou seja, esta macro é a que inicia o processo. Geralmente é a macro que está associada a um botão "Iniciar"
 Application.ScreenUpdating = False
 frmBarraDeProgresso.Show False 'Exibe a barra de progresso
 Call MinhaMacro0 'Inicia o processamento
 Unload frmBarraDeProgresso 'Fecha a barra de progresso
 MsgBox "Processo concluído.", vbInformation, "Excel do Seu Jeito"
End Sub
Private Sub MinhaMacro0()
Dim i As Long
Dim iFinal As Long
Dim iPercentualConcluido As Double
 iFinal = 5 'Quantidade de processos que vai realizar
 With frmBarraDeProgresso
 'Manda executar a primeira Macro
 iPercentualConcluido = 1 / iFinal '----- Aqui vai sempre dizendo qual processo está sendo realizado
 Call MinhaMacro1
 Call AtualizaBarra1(iPercentualConcluido)
 'Manda executar a segunda Macro
 iPercentualConcluido = 2 / iFinal '----- Aqui vai sempre dizendo qual processo está sendo realizado
 Call MinhaMacro2(Plan2.Range("A1:E900"), 41)
 Call AtualizaBarra1(iPercentualConcluido)
 'Manda executar a terceira Macro
 iPercentualConcluido = 3 / iFinal '----- Aqui vai sempre dizendo qual processo está sendo realizado
 Call MinhaMacro2(Plan3.Range("A1:C500"), 3)
 Call AtualizaBarra1(iPercentualConcluido)
 'Manda executar a quarta Macro
 iPercentualConcluido = 4 / iFinal '----- Aqui vai sempre dizendo qual processo está sendo realizado
 Call MinhaMacro2(Plan4.Range("B1:C2200"), 14)
 Call AtualizaBarra1(iPercentualConcluido)
 'Manda executar a quinta Macro
 iPercentualConcluido = 5 / iFinal '----- Aqui vai sempre dizendo qual processo está sendo realizado
 Call MinhaMacro2(Plan5.Range("B10:F850"), 55)
 Call AtualizaBarra1(iPercentualConcluido)
 End With
End Sub
Private Sub MinhaMacro1()
Dim i As Long
Dim iUltimaLinha As Long
Dim iPercentualConcluido As Double
 iUltimaLinha = Plan1.Range("A1").End(xlDown).Row
 Call AtualizaBarra2(0)
 For i = 2 To iUltimaLinha
 '---- A barra de progresso é atualiza a cada incremento no loop que percorre as linhas da planilha,
 'ou seja, a cada ação da sua macro, o contador é modificado
 iPercentualConcluido = i / iUltimaLinha
 Call AtualizaBarra2(iPercentualConcluido)
 '----- Execução da sua macro, propriamente dita. As funções que você manda executar
 With ActiveSheet.Cells(i, 1)
 Select Case CInt(Left(.Offset(0, 1).Value, 1))
 Case 7, 8, 9
 .Offset(0, 2).Value = "Oi, " & .Value & ". Este número de telefone parece ser um celular!"
 Case Else
 .Offset(0, 2).Value = "Oi, " & .Value
 End Select
 End With
 Next
End Sub
Private Sub MinhaMacro2(ByVal rngIntervalo As Range, ByVal iIndexColor As Integer)
Dim rng As Range
Dim i As Long
Dim iFinal As Long
Dim iPercentualConcluido As Double
 iFinal = rngIntervalo.Cells.Count
 i = 0
 Call AtualizaBarra2(0)
 For Each rng In rngIntervalo.Cells
 '---- A barra de progresso é atualiza a cada incremento no loop que percorre as linhas da planilha,
 'ou seja, a cada ação da sua macro, o contador é modificado
 i = i + 1
 iPercentualConcluido = i / iFinal
 Call AtualizaBarra2(iPercentualConcluido)
 '----- Execução da sua macro, propriamente dita. As funções que você manda executar
 With rng
 .Value = "Célula " & Replace(.AddressLocal, "$", "")
 .Font.ColorIndex = iIndexColor
 End With
 Next rng
End Sub
Private Sub AtualizaBarra1(ByVal iPercentualConcluido As Double)
 With frmBarraDeProgresso
 .framePb.Caption = Format(iPercentualConcluido, "0%") & " Concluído"
 .progressBar.Width = iPercentualConcluido * (.framePb.Width - 10)
 End With
 DoEvents 'Permite que sejam visualizadas as mudanças nos controles do formulário
End Sub
Private Sub AtualizaBarra2(ByVal iPercentualConcluido As Double)
 With frmBarraDeProgresso
 .framePb2.Caption = Format(iPercentualConcluido, "0%") & " Concluído"
 .progressBar2.Width = iPercentualConcluido * (.framePb2.Width - 10)
 End With
 DoEvents 'Permite que sejam visualizadas as mudanças nos controles do formulário
End Sub
Sub ConfigListView()
 With ListView1
 .ColumnHeaders.Add 1, "id", "id", 0
 .ColumnHeaders.Add 2, "nome", "Nome", 70
 .ColumnHeaders.Add 3, "estado", "Estado", 30
 .ColumnHeaders.Add 4, "funcao", "Função", 50
 .ColumnHeaders.Add 5, "status", "Status", 30
 .Gridlines = True
 .FullRowSelect = True
 .HideColumnHeaders = False
 .View = lvwReport
 End With
End Sub
Sub PreencheListView()
Dim i As Long
 ListView1.ListItems.Clear
 If IsArray(MatrizResultadosLinha) Then
 For i = 0 To UBound(MatrizResultadosLinha)
 Set NewItem = ListView1.ListItems.Add(, , i)
 With Sheets(CInt(MatrizResultadosPlanilha(i)))
 NewItem.SubItems(1) = .Cells(MatrizResultadosLinha(i), 1).Value
 NewItem.SubItems(2) = .Cells(MatrizResultadosLinha(i), 2).Value
 NewItem.SubItems(3) = .Cells(MatrizResultadosLinha(i), 3).Value
 NewItem.SubItems(4) = .Cells(MatrizResultadosLinha(i), 4).Value
 End With
 Next i
 End If
End Sub
'##################################################################################
'########## U P D A T E (NOV-2018) #################################
'##################################################################################
'Use este evento do Listview para carregar os dados selecionados nas caixas de texto
'Tem a mesma função que o SpinButton tinha na versão anterior
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
Dim sLinha As Long
Dim iPlanilha As Integer
Dim TotalOcorrencias As Long
 SpinButton1.Value = Item
 
End Sub

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando