Option Explicit
Sub limpar()
inicio:
Dim i As Long
For i = 0 To Form_CadastroCurriculos.ListBox_FormCadCurriculo.ListCount - 1
If Form_CadastroCurriculos.ListBox_FormCadCurriculo.List(i) = "" Then
Form_CadastroCurriculos.ListBox_FormCadCurriculo.RemoveItem (i)
GoTo inicio
End If
Next i
End Sub
Sub ListBox_FormCurriculo()
Dim ultima_linha As Long
Dim Linha As Integer
Dim i As Integer
Dim myArray() As Variant
ultima_linha = Sheets("BD_Curriculos").Range("A100000").End(xlUp).Row
If Sheets("BD_Curriculos").Range("BC1").Value = "" Then
'agora que se sabe o tamanho que terá seu array, redimenciona a variável.
ReDim myArray(1 To ultima_linha, 1 To 18)
'populando a variável array
For Linha = 2 To ultima_linha
myArray(Linha - 1, 1) = Sheets("BD_Curriculos").Range("E" & Linha)
myArray(Linha - 1, 2) = Sheets("BD_Curriculos").Range("AT" & Linha)
myArray(Linha - 1, 3) = Sheets("BD_Curriculos").Range("D" & Linha)
myArray(Linha - 1, 4) = VBA.Format(Sheets("BD_Curriculos").Range("O" & Linha), "dd/mm/yy")
myArray(Linha - 1, 5) = VBA.Format(Sheets("BD_Curriculos").Range("P" & Linha), "hh:mm")
myArray(Linha - 1, 6) = Sheets("BD_Curriculos").Range("Q" & Linha)
myArray(Linha - 1, 7) = Sheets("BD_Curriculos").Range("R" & Linha)
myArray(Linha - 1, 8) = Sheets("BD_Curriculos").Range("AH" & Linha)
myArray(Linha - 1, 9) = Sheets("BD_Curriculos").Range("AI" & Linha)
myArray(Linha - 1, 10) = Sheets("BD_Curriculos").Range("AJ" & Linha)
myArray(Linha - 1, 11) = Sheets("BD_Curriculos").Range("AK" & Linha)
myArray(Linha - 1, 12) = Sheets("BD_Curriculos").Range("AM" & Linha)
myArray(Linha - 1, 13) = Sheets("BD_Curriculos").Range("AN" & Linha)
myArray(Linha - 1, 14) = Sheets("BD_Curriculos").Range("AO" & Linha)
myArray(Linha - 1, 15) = Sheets("BD_Curriculos").Range("AP" & Linha)
myArray(Linha - 1, 16) = Sheets("BD_Curriculos").Range("AQ" & Linha)
myArray(Linha - 1, 17) = Sheets("BD_Curriculos").Range("AR" & Linha)
myArray(Linha - 1, 18) = Sheets("BD_Curriculos").Range("AS" & Linha)
Next
Form_CadastroCurriculos.ListBox_FormCadCurriculo.Clear
Form_CadastroCurriculos.ListBox_FormCadCurriculo.List = myArray
'Caso os filtros sejam preenchidos, filtrar
Else
Do While ultima_linha > Linha
ReDim myArray(1 To ultima_linha, 1 To 18)
For Linha = 2 To ultima_linha
Sheets("BD_Curriculos").Range("A" & Linha).Select
ActiveCell.Offset(0, 54).Select
If Sheets("BD_Curriculos").Range("BC1").Value = ActiveCell.Value Then
myArray(Linha - 1, 1) = Sheets("BD_Curriculos").Range("E" & Linha)
myArray(Linha - 1, 2) = Sheets("BD_Curriculos").Range("AT" & Linha)
myArray(Linha - 1, 3) = Sheets("BD_Curriculos").Range("D" & Linha)
myArray(Linha - 1, 4) = VBA.Format(Sheets("BD_Curriculos").Range("O" & Linha), "dd/mm/yy")
myArray(Linha - 1, 5) = VBA.Format(Sheets("BD_Curriculos").Range("P" & Linha), "hh:mm")
myArray(Linha - 1, 6) = Sheets("BD_Curriculos").Range("Q" & Linha)
myArray(Linha - 1, 7) = Sheets("BD_Curriculos").Range("R" & Linha)
myArray(Linha - 1, 8) = Sheets("BD_Curriculos").Range("AH" & Linha)
myArray(Linha - 1, 9) = Sheets("BD_Curriculos").Range("AI" & Linha)
myArray(Linha - 1, 10) = Sheets("BD_Curriculos").Range("AJ" & Linha)
myArray(Linha - 1, 11) = Sheets("BD_Curriculos").Range("AK" & Linha)
myArray(Linha - 1, 12) = Sheets("BD_Curriculos").Range("AM" & Linha)
myArray(Linha - 1, 13) = Sheets("BD_Curriculos").Range("AN" & Linha)
myArray(Linha - 1, 14) = Sheets("BD_Curriculos").Range("AO" & Linha)
myArray(Linha - 1, 15) = Sheets("BD_Curriculos").Range("AP" & Linha)
myArray(Linha - 1, 16) = Sheets("BD_Curriculos").Range("AQ" & Linha)
myArray(Linha - 1, 17) = Sheets("BD_Curriculos").Range("AR" & Linha)
myArray(Linha - 1, 18) = Sheets("BD_Curriculos").Range("AS" & Linha)
End If
Next
Loop
End If
Form_CadastroCurriculos.ListBox_FormCadCurriculo.List = myArray
Call limpar
End Sub
Postado : 11/04/2018 8:11 am