Mostrando postagens com marcador Códigos VBA excel. Mostrar todas as postagens
Mostrando postagens com marcador Códigos VBA excel. Mostrar todas as postagens

Como filtrar dados no Listbox


VBA - Como Filtrar dados no ListBox
Este é um código de exemplo que tenho a muito tempo, mas como o pessoal tem pedido muito, vou deixá-lo em uma forma mais visível.
Como o VBA carece de controles de apresentação de dados mais avançados, como Grids e Listas complexas, acabamos apelando para o controle ListBox para apresentação de dados vindos de ResultSets (particularmente, prefiro apresentar os dados em uma planilha). Bom, como os dados já estão na LisBox, porque não aplicar o filtro nele mesmo?
Para ver um exemplo, proceda da seguinte forma:
  • Em um novo arquivo, crie uma lista de dados na Plan1, na coluna A a partir da célula A1
  • Abra o VBA (Alt+F11)
  • Adicione um UserForm ao projeto
  • No UserForm, adicione um controle TextBox e um ListBox (mantenha os nomes padrão dos controles)
  • Cliquem em F7 para exibir o código e adicione o seguinte:

Option Explicit

Private TextoDigitado As String

Private Sub ListBox1_Click()

End Sub

Private Sub TextBox1_Change()
    TextoDigitado = TextBox1.Text
    Call PreencheLista
End Sub

Private Sub UserForm_Initialize()
    Call PreencheLista
End Sub

Private Sub PreencheLista()
    Dim ws As Worksheet
    Dim i As Integer
    Dim TextoCelula As String
    Set ws = ThisWorkbook.Worksheets("Planilha1")
    i = 1
    ListBox1.Clear
    With ws
        While .Cells(i, 1).Value <> Empty
            TextoCelula = .Cells(i, 1).Value
            If UCase(Left(TextoCelula, Len(TextoDigitado))) = UCase(TextoDigitado) Then
                ListBox1.AddItem .Cells(i, 1)
            End If
            i = i + 1
        Wend
    End With
End Sub

Código para carregar Listbox com dados da planilha

Crie um Userform coloque nele uma Listbox.
De um duplo click na Listbox  apague o que estiver escrito dentro dela, cole o código abaixo.

BOM PROVEITO!!!


Private Sub UserForm_Initialize()
    Dim arrayItems()
    With Planilha1'aqui você pode alterar o nome da planilha'
        ReDim arrayItems(1 To .UsedRange.Rows.Count, 1 To .UsedRange.Columns.Count)
        Me.ListBox1.ColumnCount = .UsedRange.Columns.Count
        For linha = 1 To .UsedRange.Rows.Count
            Me.ListBox1.AddItem
            For coluna = 1 To .UsedRange.Columns.Count
                arrayItems(linha, coluna) = .Cells(linha, coluna).Value
            Next coluna
        Next linha
        
        Me.ListBox1.List = arrayItems()
    End With
End Sub

Codigo vba para enviar e- mail através do outlook

Esse código não salva em PDF ele salva a planilha ativa e envia para o cliente com o email que esta gravado em uma determinada celula, você pode adaptar da maneira que achar melhor o código funciona perfeitamente.
Bom proveito!!!


Sub eMailActiveWorkbook()
Dim OL As Object
Dim EmailItem As Object
Dim Wb As Workbook

Application.ScreenUpdating = False
Set OL = CreateObject("Outlook.Application")
Set EmailItem = OL.CreateItem(olMailItem)
Set Wb = ActiveWorkbook
Wb.Save
With EmailItem
.Subject = "Assunto"
.Body = "coloque aqui sua saudação" & vbCrLf & _
"" & vbCrLf & _
"Obrigado!"
.To = Range("b8") 'coloque aqui a celula onde esta o email
.CC = "fulano de tal@gmail.com"
.Importance = olImportanceNormal
.Attachments.Add Wb.FullName
.Send

MsgBox "Cópia de pedido enviado com sucesso", vbInformation, "ENVIADO"

Botão exibir e esconder planilhas em Userform VBA excel

Crie um botão no seu formulário .
dentro dele cole o seguinte código.
caso tenha alterado o nome da planilha onde esta (planilha1)coloque o nome da sua planilha

Botão para exibir planilhas

Private Sub CommandButton1_Click()
Unload Me
Application.Visible = True
Sheets("planilha1").Select

End Sub


Botão para esconder planilhas atras do formulário (userform)

Dentro do seu editor VBA excel abra (esta pasta de trabalho) ative o evento Workbook
e cole o código salve e inicialize sua planilha para testar.
Lembrando crie primeiro seu botão para exibir as planilhas caso contrario não tera mais acesso as planilhas e não conseguira continuar editando seu projeto.

Código esconder planilhas

Private Sub Workbook_Open()
Application.Visible = falso
UserForm1.Show

End Sub

Código para salvar planilha em pdf com Numero do pedido

Usei este código para salvar minha planilha com numero do pedido cada vez que salvo gera um numero de pedido diferente.

Basta criar um botão SalvarPDF no seu trabalho copiar e colar o código.
altere o a letra e o numero da célula conforme sua necessidade.

Segue o código.
Bom proveito!!!

Sub SalvarPDF()
Dim y As Integer
y = Range("j7").Value + 1
Range("j7") = y


Dim Nome As String
Dim SDate As String
Nome = Range("j7").Value
SDate = Now
If Nome <> vbNullString Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Nome & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True

MsgBox "O arquivo " & Nome & " foi salvo em " & SDate & ".", vbOKOnly, "Salvo"
Else
MsgBox "Nome do arquivo inválido", vbOKOnly, "Salvo"

End If

End Sub

Código vba para limpar celula

Esse código limpa uma célula especifica caso queira, limpar varias células do seu trabalho basta repeti-lo com a letra e o numero da célula que deseja limpar.

Range("letra e numero da célula") = Clear

Bom proveito!!!


Código VBA para abrir pagina da web com navegador Google Chrome

Esse código é para abrir uma pagina especifica da internet, conforme a necessidade do seu botão de controle.
Ex:www.correios.com/
No meu caso eu utilizei o codigo para rastrear objetos na internet pelo SRO
Ex:http://websro.correios.com.br/sro_bin/txect01$.startup?P_LINGUA=001&P_TIPO=001

Segue o código abaixo bom proveito não se esqueça de comentar.


Crie um módulo e cole o código abaixo.

Option Explicit
Private pWebAddress As String

Public Declare Function ShellExecute _
Lib "shell32.dll" _
Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Public Sub NewShell(cmdLine As String, lngWindowHndl As Long)
    ShellExecute lngWindowHndl, "open", cmdLine, "", "", 1
End Sub



Public Sub WebPage()
    Let pWebAddress = "Coloque aqui o seu link "
    
    Call NewShell(pWebAddress, 3)

End Sub