terça-feira, 23 de abril de 2013

CARREGANDO DA PLANILHA PARA OS TEXTBOXS....

DO UNTIL PARA CARREGAR INFORMAÇÕES...




A ideia é digitar o código dos produto e o mesmo ser carregado para os TextBox do UserForm...

Para isso criei um pequeno banco de dados... vejam:

O UserForm fiz assim :

Os objetos são Textbox1 para o código, TextBox2 para Produtos e TextBox3 para Valor...

O código que fará a busca vou colocar no evento afterupdate do objeto Textbox1 assim ao digitar o código e teclar enter a busca será realizada...

o código é :

Private Sub TextBox1_afterupdate()
Dim linha As Integer
linha = 2

Do Until Plan1.Range("a" & linha).Value = ""
If Plan1.Range("a" & linha).Value = Me.TextBox1.Text Then
Me.TextBox2.Text = Plan1.Range("b" & linha).Value
Me.TextBox3.Text = Format(Plan1.Range("c" & linha).Value, "CURRENCY")
encontrado = "sim"
Exit Sub
Else
linha = linha + 1
End If
Loop
MsgBox "CÓDIGO NÃO ENCONTRADO", vbCritical

End Sub


E o resultado será :



Caso digite um código inexistente será informado do mesmo através de uma mensagem de aviso....

quarta-feira, 3 de abril de 2013

INSERINDO FÓRMULA EM FORMAS DO EXCEL...

NOVIDADES PARA MIM...


Galera hoje mexendo aqui na net achei uma coisa muito legal e resolvi postar aqui para que mais pessoas possam conhecer e fazer uso de alguma forma... sabe aquelas formas modelos que temos no Excel, balões, círculos  quadrados entre outros...

É só inserir a forma...
 
e ao invés de escrevermos o texto podemos por uma fórmula para pegar o valor de uma célula por exemplo...




Dessa forma tudo o que conter na célula A1 irá aparacer na fórmula, gostei muito dessa ideia dá para abusar na criatividade agora hein..... kkkkkkkkkkk




Bom por hoje é isso galera se alguém conhecer alguma coisa legal tipo essa posta um comentário aqui para eu fazer um post ensinando....


segunda-feira, 1 de abril de 2013

FORMULÁRIO COM BOTÕES MAXIMIZAR E MINIMIZAR

CÓDIGO PARA INSERIR OS BOTÕES MAXIMIZAR E MINIMIZAR.


Visitem meu novo blog:

https://programacaopassoapasso.wordpress.com/








Bom para realizar essa façanha vamos criar um UserForm:



Em seguida criaremos um módulo de classe...













O nome do nosso módulo de classe será "ClasseForm"...


O código abaixo todo ele em azul devemos copiar e colar dentro do ClasseForm.


'Colocar no ClasseForm


Option Explicit

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, ByVal fEnable As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function SetFocus Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long

Private Const GWL_STYLE As Long = (-16)
Private Const GWL_EXSTYLE As Long = (-20)
Private Const WS_CAPTION As Long = &HC00000
Private Const WS_SYSMENU As Long = &H80000
Private Const WS_THICKFRAME As Long = &H40000
Private Const WS_MINIMIZEBOX As Long = &H20000
Private Const WS_MAXIMIZEBOX As Long = &H10000
Private Const WS_POPUP As Long = &H80000000
Private Const WS_VISIBLE As Long = &H10000000

Private Const WS_EX_DLGMODALFRAME As Long = &H1
Private Const WS_EX_APPWINDOW As Long = &H40000
Private Const WS_EX_TOOLWINDOW As Long = &H80

Private Const SC_CLOSE As Long = &HF060

Private Const SW_HIDE As Long = 0
Private Const SW_SHOW As Long = 5

Private Const WM_SETICON = &H80

Dim hWndForm As Long, mbSizeable As Boolean, mbCaption As Boolean, mbIcon As Boolean, miModal As Integer
Dim mbMaximize As Boolean, mbMinimize As Boolean, mbSysMenu As Boolean, mbCloseBtn As Boolean
Dim mbAppWindow As Boolean, mbToolWindow As Boolean, msIconPath As String
Dim moForm As Object
Public Property Let Modal(bModal As Boolean)
    miModal = Abs(CInt(Not bModal))

    'Make the form modal or modeless by enabling/disabling Excel itself
    EnableWindow FindWindow("XLMAIN", Application.Caption), miModal
End Property

Public Property Get Modal() As Boolean
    Modal = (miModal <> 1)
End Property

Public Property Set Form(oForm As Object)

    If Val(Application.Version) < 9 Then
        hWndForm = FindWindow("ThunderXFrame", oForm.Caption)  'XL97
    Else
        hWndForm = FindWindow("ThunderDFrame", oForm.Caption)  'XL2000
    End If

    Set moForm = oForm

    AtualizarEstiloForm

    AtualizarIcone
    
End Property

Private Sub AtualizarEstiloForm()

    Dim iStyle As Long, hMenu As Long, hID As Long, iItems As Integer

    If hWndForm = 0 Then Exit Sub

    iStyle = GetWindowLong(hWndForm, GWL_STYLE)

    iStyle = iStyle Or WS_CAPTION
    iStyle = iStyle Or WS_SYSMENU
    iStyle = iStyle Or WS_THICKFRAME
    iStyle = iStyle Or WS_MINIMIZEBOX
    iStyle = iStyle Or WS_MAXIMIZEBOX
    iStyle = iStyle And Not WS_VISIBLE And Not WS_POPUP

    SetWindowLong hWndForm, GWL_STYLE, iStyle

    iStyle = GetWindowLong(hWndForm, GWL_EXSTYLE)

    iStyle = iStyle And Not WS_EX_DLGMODALFRAME
    iStyle = iStyle Or WS_EX_APPWINDOW

    SetWindowLong hWndForm, GWL_EXSTYLE, iStyle

    hMenu = GetSystemMenu(hWndForm, 0)
    
    ShowWindow hWndForm, SW_SHOW
    DrawMenuBar hWndForm
    SetFocus hWndForm

End Sub

Private Sub AtualizarIcone()

    Dim hIcon As Long

    On Error Resume Next
    
    If hWndForm <> 0 Then

    msIconPath = "C:\Meus documentos\EU\FabioNovo.ico"  'Coloque aquí o seu ícone
        Err.Clear
        If msIconPath = "" Then
            hIcon = 0
        ElseIf Dir(msIconPath) = "" Then
            hIcon = 0
        ElseIf Err.Number <> 0 Then
            hIcon = 0
        ElseIf Not mbIcon Then
            hIcon = ExtractIcon(0, msIconPath, 0)
        Else
            hIcon = 0
        End If

        SendMessage hWndForm, WM_SETICON, True, hIcon
    End If

End Sub










O código abaixo devemos copiar e colar dentro do UserForm



Option Explicit

Dim nAtualizaForm As New ClasseForm


Private Sub btnOK_Click()
End
End Sub

Private Sub cbModal_Change()
nAtualizaForm.Modal = cbModal.Value
End Sub

Private Sub UserForm_Activate()
Set nAtualizaForm.Form = Me
'Me.cbModal.Value = False
End Sub


E pronto é só executar e ver o resultado...

Se quisermos  mexer na planilha sem precisar fechar o UserForm devemos alterar o propriedade ShowModal do UserForm para False...


Espero sinceramente que consigam reproduzir a imagem no inicio com o seu próprio UserForm...

Valeu e até breve...

EXCEL VBA MENSAGEM COM OPÇÃO DE ESCOLHA

MSGBOX COM OPÇÃO DE ESCOLHA


Muitas das vezes é necessário que o usuário tome decisões e isso é muito útil para evitarmos por exemplo excluir acidentalmente informações valiosas...

Assim sendo hoje irei ensinar a criar uma pergunta para o usuário e a partir da resposta o código faz isso ou faz aquilo...


Para tal vamos criar uma macro dentro de um módulo...

Sub teste()
    Dim resultado As VbMsgBoxResult
    resultado = MsgBox("Escolha um dos botões SIM ou NÃO ", vbInformation + vbYesNo, "TESTE")
    If resultado = vbYes Then
    MsgBox "VOCÊ ESCOLHEU O BOTÃO SIM"
    Else
    MsgBox "VOCÊ ESCOLHEU O BOTÃO NÃO"
    End If
End Sub


Ao executarmos essa macro a seguinte mensagem é exibida:







Ao escolher nossa opção uma mensagem será exibida dizendo qual a nossa escolha...
Vejam exemplo:










Passo a passo da macro...

Dim resultado As VbMsgBoxResult Aqui criei a variável do tipo caixa de mensagem resultado.

A segunda linha é responsável por criar a caixa de mensagem vejam...
 
If resultado = vbYes Then  se a resposta do usuário for o botão ok (vbyes) fazer

    MsgBox "VOCÊ ESCOLHEU O BOTÃO SIM" outra mensagem com o texto que está entre aspas

    Else  já se a escolha não for o botão sim então fazer

    MsgBox "VOCÊ ESCOLHEU O BOTÃO NÃO" outra mensagem com o texto que está entre aspas

    End If fim do bloco if (se)


Desse modo quando você criar uma rotina de exclusões é só introduzir esse código de modo que se o usuário clicar sim o código faça a exclusão se não... já sabem né kkkkkkk...


Bom galera por hoje é isso... até a próxima....