quarta-feira, 5 de outubro de 2016

Código VBA para Botão Excluir em Formulário!!!!

Olá galera!!!!!

Segue mais um código que de repente pode ajudá-los nos trabalhos de vocês....

Este código serve para Excluir uma linha inteira a partir de sua seleção!!!!

ou seja ele exclui a linha a partir da seleção do cursor!!!!!

Eu usei este código em um formulário de cadastro e coloquei um botão excluir caso o usuário da planilha faça um cadastro errado.

portanto coloque este codigo num botão!!!!!


Private Sub CommandExcluir_Click()

Sheets("Nome da Planilha").Select ' faz a seleção da Planilha onde os dados estão sendo gravados
ActiveCell.EntireRow.Delete  

  'ActiveCell << - Célula Selecionada
 'EntireRow <<- Seleciona toda a Linha
 'Delete << - Para deletar sua seleção!

End Sub


Valeu por hoje até a próxima!!!!!!!

quarta-feira, 28 de setembro de 2016

Validação de Preenchimento de formulário

Olá galera!!!!! 

Vai aqui mais uma rotina para que vocês possam usar!!!!!!!

Quando fazemos um formulário de cadastro de dados em alguns casos alguns campos são obrigatório, para que o usuário não se esqueça de preencher este campos obrigatórios criei uma rotina que valida o preenchimento..... e sinaliza quando não preenchido com uma mensagem.
Este tipo de rotina pode ser usado com ComboBox, TextBox, OpitonButton, CheckBox.

Coloquei a rotina dentro do Botão de cadastro!!!!


Private Sub CommandButton_Click()

'Verifica se o campo código tem valor

If TxtCodigo = "" Then 'Verifica se o campo está vazio
MsgBox "Preenchimento Obrigatório", vbExclamation, "Preencha do Codigo da Empresa"
TxtCodigo.SetFocus
Exit Sub
End If


verifica se alguma das opções de optionbutton foi selecionada

If OptionButton1.Value = False And OptionButton2.Value = False And OptionButton3.Value = False And OptionButton4.Value = False And OptionButton5.Value = False And OptionButton6.Value = False And OptionButton7.Value = False And OptionButton8.Value = False And OptionButton9.Value = False And OptionButton10.Value = False And OptionButton11.Value = False And OptionButton12.Value = False And OptionButton13.Value = False And OptionButton14.Value = False And OptionButton15.Value = False And OptionButton16.Value = False And OptionButton17.Value = False Then
MsgBox "O Preenchimento Obrigatório!", vbExclamation, "Marque a Ativdade ou Obrigação Acessória Executada"
Exit Sub
End If
end sub



If TxtCodigo = "" Then ' <<Verifica se o campo está vazio
MsgBox "Preenchimento Obrigatório", vbExclamation, "Preencha do Codigo da Empresa"
Acima exibe mensagem de preenchimento obrigatório caso campo vazio !
TxtCodigo.SetFocus << coloca o cursor no campo que está vazio!!!!!


a explicação acima assume também para qualquer  item do formulário!!!!


espero ter ajudado!!!!

até a proxima




quarta-feira, 21 de setembro de 2016

ÍNDICE + CORRESP COM MÚLTIPLOS CRITÉRIOS

Ainda Ontem estava no trabalho me descabelando de pensar como fazer uma busca com dois critérios no meu caso seria por Data e por funcionário!!!!! Tentei de várias formas....

Precisava que a Planilha me desse o seguinte resultado ... quando eu selecionar a empresa e o mês me desse todos os funcionários que estiveram envolvidos no trabalho de uma determinada empresa...

tentei gente tentei mesmo .... ai sai a procura na internet de algumas soluções ... achei nesse site abaixo a solução de parte do problema

http://www.funcaoexcel.com.br/indice-corresp-com-multiplos-criterios/

Cara foi 80% do caminho andado....



Observando a imagem acima eu precisava que me trouxesse a seguinte informação que quando selecionado o mês e a empresa no campo colaborador trouxesse todos que trabalharam nessa empresa.....

então achei o pulo do gato...

Índice e Corresp com dois critérios....

=SEERRO(ÍNDICE(Plan2!$C$2:$C$72;CORRESP(Empresas!$C$7&MÊS($O$13);Plan2!$E$2:$E$72&MÊS(Plan2!$B$2:$B$72);0);0);"")

entendendo a função.....


= seerro( << se a funçao der erro ela deixa a célula vazia.

Indice(<< Plan2 C2:C72 ;<< busca a coluna do onde está o meu resultado!

Corresp(Empresas!C7&Mês((O13) << Note que aqui eu coloquei dois critérios de busca a célula C7 e O13 
A mesma coisa tem que ser feito com a matriz juntar as duas por concatenação...

Plan2!$E$2:$E$72&MÊS(Plan2!$B$2:$B$72)

a funçao Mês(arg1) esta porque eu precisava de um mês especifico. 

Peguei duas matrizes concatenadas!!!! e finalizei a formula normalmente.....


bjs até a proxima






segunda-feira, 12 de setembro de 2016

Formatação de TextBox em padrão de Horas ou Texto

Ai galera !!!!

Vai aqui mais uma Sub que de repente pode ajudar em suas atividades!!!!

esta sub formata um texto de formulário em padrão de hora ou data...

Private Sub TextBox1_Change()

If Len(TextBox1) = 2 Or Len(TextBox1) = 5 Then
    TextBox1.Text = TextBox1.Text & "/"
    SendKeys "{End}", True
                                                                End If
End Sub

Neste caso estou colocando barra para formatar em Data mas caso queria usar para formatar em horas só trocar a "/" por ":" .

Até mais......

quinta-feira, 1 de setembro de 2016

VBA para Desbloquer Planilhas

Ai galera achei esse código na Internet para Desbloquear planilhas só serve para planilhas que abram como somente leitura!!!!!



Public Sub lsDesbloquearTodasPlanilhas()

    Dim lQtdePlan As Integer
    Dim lPlanAtual As Integer

    'Inicia as variáveis
    lQtdePlan = Worksheets.Count
    lPlanAtual = 1

    'Loop pelas planilhas
    While lPlanAtual <= lQtdePlan
        Worksheets(lPlanAtual).Activate

        DesprotegerPlanilhaAtivaB

        lPlanAtual = lPlanAtual + 1
    Wend

    MsgBox "Planilhas desprotegidas!"
End Sub

'Desproteger Planilha
Sub DesprotegerPlanilhaAtivaB()

Dim i, i1, i2, i3, i4, i5, i6 As Integer, j As Integer, k As Integer, l As Integer, m As Integer, n As Integer
On Error Resume Next
For i = 65 To 66
For j = 65 To 66
For k = 65 To 66
For l = 65 To 66
For m = 65 To 66
For i1 = 65 To 66
For i2 = 65 To 66
For i3 = 65 To 66
For i4 = 65 To 66
For i5 = 65 To 66
For i6 = 65 To 66
For n = 32 To 126
ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
If ActiveSheet.ProtectContents = False Then
'    MsgBox "One usable password is " & Chr(i) & Chr(j) & _
'    Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
'    Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
    Exit Sub
End If
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
End Sub


Font: http://guiadoexcel.com.br/desproteger-todas-as-planilhas-de-um-documento-excel/

segunda-feira, 18 de julho de 2016

Vba para copiar especial

Sub Copiar_Especial()
 Sheets("fornecedor 1").Select
    Range("f8:f116").Select
    Selection.Copy
    Sheets("compras").Select
    Range("e8:e116").Select
    Selection.PasteSpecial Paste:=xlPasteValues, _
    Operation:=xlNone, skipblanks:=False, _
    Transpose:=False

    Application.CutCopyMode = False

terça-feira, 26 de abril de 2016

Deletar linhas vazias

Bom tarde...

desculpem-me mas tenho andado bem cheia de trabalho...

aqui vai mais uma ... que utilizo muito para tratar meu banco de dados.

Com este código é possível excluir linhas vazias da planilha toda...

Sub deletarLinhasVazias()
Dim ultimalinha, r As Integer
ultimalinha = ActiveSheet.UsedRange.Row - 1 + _
ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
For r = ultimalinha To 1 Step -1 If Application.CountA(Rows(r)) = 0 Then
Rows(r).Delete
End If
Next r

End Sub

este não foi eu que desenvolvi achei num site....

http://www.bertolo.pro.br/FinEst/TutoriaisVBA/RemoverLinhasEmBranco.pdf

valeu Galera até a proxima......