Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

.: Vitrine

Carregando artigos...

Views

Mostrando postagens com marcador SANDWICH PROJECT 2016. Mostrar todas as postagens
Mostrando postagens com marcador SANDWICH PROJECT 2016. Mostrar todas as postagens

SANDWICH PROJECT 2016 - VBA Excel - Força a Digitação em Maiúsculo - Force CAPS LOCK on Entry

SANDWICH PROJECT 2016 - VBA Excel - Força a Digitação em Maiúsculo - Force CAPS LOCK on Entry






































É horrível quando nossa tecla Caps Lock, fica presa e só percebemos isso depois de digitarmos metade ou quase toda a frase que queríamos. Mas, suponha que tenha uma coluna na sua planilha Excel onde digitará um estado do Brasil, ou precise digitar M ou F para Masculino / Feminino. 

Este código altera qualquer entrada de texto na faixa designada para maiúsculas.

Coloque o seguinte código na janela de código ThisWorksheet. O Range ( "C: C") pode ser alterado para qualquer faixa de intervalo que desejar, tal como C1: C15.

Sub Worksheet_Change (ByVal Target As Range)

Let Application.EnableEvents = False
If Not Application.Intersect(Target, Range("C:C")) Is Nothing Then
    Let Target(1).Value = UCase(Target(1).Value)
End If
Let Application.EnableEvents = True

End Sub










SANDWICH PROJECT 2016 - VBA Excel - Copy a Master Worksheet

SANDWICH PROJECT 2016 - VBA Excel - Copy a Master Worksheet



Sabe quando cria uma planilha mestra e gostaria de copiá-la rapidamente como um modelo para uma nova planilha?

Este código funciona muito bem com um calendárioplanilhas de dataentry (entrada de dados) mensais, e outras aplicações onde tem planilhas com praticamente o mesmo layout.

Estou supondo que a planilha que deseja copiar seja chamada de Master, e que esteja oculta quando executar a macro. 

Abra sua pasta de trabalho. Pressione Alt + F11 para visualizar o Editor do VBA. Clique duas vezes em ThisWorkbook. E cole o seguinte código na janela de código:

Dim NewPageName As String
Sub NewPage()
       Let Sheets("Master").Visible = True
       Sheets("Master").Copy After:=Worksheets(Worksheets.Count)
       Let NewPageName = InputBox("What would you like to call your new Worksheet")
       Let ActiveWindow.ActiveSheet.Name = NewPageName
       Let Sheets("Master").Visible = False
End Sub








SANDWICH PROJECT 2016 - VBA Access - Importando Fotos de um Diretório - Import Photos from Directory

SANDWICH PROJECT 2016 - VBA Access - Importando Fotos de um Diretório - Import Photos from Directory






Talvez precise importar as fotos de um cadastro de funcionários | clientes | fornecedores, ou criar um catálogo, album de fotos, etc... E deseje manter todas as fotos dentro de um arquivo MS Access.




Isso é recomendável? Não!


É possível? Sim!


Crie uma tabela com a seguinte especificação dentro do seu banco de dados MS Access.





Em seguida crie um módulo como o nome de mdl_Importando_Imagens.


Em seguida cole o código abaixo nele:

Sub ImportPhotosFromDirectory()
        '      Author: André Luiz Bernardes - A&A - In Any Place - andreluizbernardess@gmail.com
    '        Date: 17/05/2016 - 15:14
    ' Application: Field Force Dashboard Analysis® - © A&A - In Any Place 2016, Inc. Todos os direitos reservados.
    '     Company: © A&A - In Any Place 2016, Inc. Todos os direitos reservados.
    '     Purpose: Import Photos from Directory.
    ' C:\Users\Photos

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim oFS As New FileSystemObject
    
    Dim oFolder As Folder
    Dim oFile As File
    Dim nPath As String

    Let nPath = "C:\Users\Photos"
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("tbl_Photos")

    Set oFolder = oFS.GetFolder(nPath)

    With rs

        For Each oFile In oFolder.Files
            Debug.Print oFile.Name
            
            .AddNew
                        
            Let !PhotoName = oFile.Name
            Let !Photo = oFile
            
            .Update

        Next oFile

    End With
End Sub


Ahhh, não se esqueça de manter a seguinte referência em seu projeto MS Access:




SANDWICH PROJECT 2016 - VBA Excel - Quebrando a proteção de Planilha Protegida

SANDWICH PROJECT 2016 - VBA Excel: Quebrando a proteção de Planilha Protegida - Crack Sheet Protection Password






Às vezes protegemos nossas planilhas e simplesmente esquecemos a senha que havíamos colocado nela. Aí ficamos várias horas tentando lembrar, o que trás muito transtorno quando estamos com pressa, o que não é raro.

O código abaixo deve ser colado na mesma Sheet (ALT + F11) que estiver protegida.


Sub WorkBookPasswordBreaker()
    '      Author: André Luiz Bernardes - A&A - In Any Place - andreluizbernardes@gmail.com
    '        Date: 11/05/2016 - 14:45
    ' Application: Field Force Dashboard Analysis® - © A&A - In Any Place 2016, Inc. Todos os direitos reservados.
    '     Company: © A&A - In Any Place 2016, Inc. Todos os direitos reservados.
    '     Purpose: Crack Sheet Protection Password
  
  Dim i As Integer, j As Integer, k As Integer
  Dim l As Integer, m As Integer, n As Integer
  Dim i1 As Integer, i2 As Integer, i3 As Integer
  Dim i4 As Integer, i5 As Integer, i6 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
    Debug.Print Chr(i) & Chr(j) & Chr(k) & _
      Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
      Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
    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 "A possível senha é " & Chr(i) & Chr(j) & _
          Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
          Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
        ActiveWorkbook.Sheets(1).Select
        Let Range("a1").FormulaR1C1 = 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


SANDWICH PROJECT 2016 - VBA Excel: Navegando entre as abas

SANDWICH PROJECT 2016 - VBA Excel - VBA Excel: Navegando entre as abas



Um recurso interessante quando queremos propiciar a navegação entre diversas abas (Sheets) de uma mesma planilha é criarmos um formulário, colocando nele 2 botões para navegação. Um para a direita, que avançará e outro botão para a esquerda que retornará.

No caso abaixo, além de avançarmos as pastas o botão ainda posicionará na mesma célula em que estávamos na planilha corrente.

Essa facilidade de navegação é interessante. Experimente!

Sub DOSSC()
    ' André Bernardes             16/09/2008 14:33    bernardess@gmail.com
    ' Move-se para a esquerda, quando não houver mais pastas avisa automaticamente.
    ' DOSSC=down one sheet same cell

    On Error Resume Next
    
    Application.Goto Reference:=ActiveWorkbook.Sheets(ActiveSheet.Index - 1).Range(ActiveCell.Address)
     
    ' Caso ocorra um erro, aborta a Sub e envia mensagem.
    If Err.Number = 0 Then Exit Sub
    
    MsgBox ("Não é possível retornar mais, você está posicionado na primeira pasta, (" & Application.ActiveSheet.Name & ")")  'Caso o usuário esteja na primeira past (sheet).
End Sub

Sub UOSSC()
    ' Author:                             Date:                       Contact:
    ' André Bernardes             16/09/2008 14:39    bernardess@gmail.com
    ' Move-se para a direita, quando não houver mais pastas avisa automaticamente.
    ' UOSSC=up one sheet same cell

    On Error Resume Next
    
    Application.Goto Reference:=ActiveWorkbook.Sheets(ActiveSheet.Index + 1).Range(ActiveCell.Address)
     
    ' Caso ocorra um erro, aborta a Sub e envia mensagem.
    If Err.Number = 0 Then Exit Sub

    MsgBox ("Não é possível avançar mais, você está posicionado na última pasta, (" & Application.ActiveSheet.Name & ")")  'Caso o usuário esteja na primeira past (sheet).
End Sub


Ei! Envie seus comentários e sugestões de artigos. Compartilhe este artigo com seus chefes, colegas de trabalho e amigos.
 


SANDWICH PROJECT 2016 - VBA Excel - Gráfico - Redefine tamanho de bolha

SANDWICH PROJECT 2016 - VBA Excel - Gráfico - Redefine tamanho de bolha



Este exemplo define o tamanho da bolha num gráfico com 96% do tamanho padrão se o gráfico for um gráfico de bolhas 2D.

With Worksheets(1).ChartObjects(1).Chart

    If .ChartType = xlBubble Then

        Let .ChartGroups(1).BubbleScale = 96

    End If

End With


Ei! Envie seus comentários e sugestões de artigos. Compartilhe este artigo com seus chefes, colegas de trabalho e amigos.
 


SANDWICH PROJECT 2016 - VBA Excel: Efetuando loop no intervalo nomeado

SANDWICH PROJECT 2016 - VBA Excel: Efetuando loops no intervalo nomeado



Não raro nomeamos um intervalo, range, de dados para a manipulação mais precisa. Também podemos fazê-lo para cuidar de certos aspectos da formatação.

Abaixo temos um código que faz um loop através de cada célula de um intervalo nomeado usando um loop For Each...Next. Se o valor de qualquer célula no intervalo exceder o valor de limit, a cor da célula será alterada para amarelo.

Este código é muito funcional e prático para montar semáforos em uma planilha de dados que aponta resultados.

Sub ApplyColor()

    Const Limit As Integer = 25

    For Each c In Range("MyRange")

        If c.Value > Limit Then
            Let c.Interior.ColorIndex = 27
        End If

    Next c

End Sub


Ei! Envie seus comentários e sugestões de artigos. Compartilhe este artigo com seus chefes, colegas de trabalho e amigos.
 

SANDWICH PROJECT 2016 - VBA Excel: Definindo o tipo de Gráfico

SANDWICH PROJECT 2016 - VBA Excel: Definindo o tipo de Gráfico



Quando o gráfico estiver ativo, use a propriedade ActiveChart para fazer referência a ele. O gráfico fica ativo se o usuário o selecionou ou se foi ativado com o método Activate

O exemplo abaixo ativa o 1º gráfico e, em seguida, define o título e o tipo dele.

Charts(1).Activate 
With ActiveChart 
    Let .Type = xlLine 
    Let .HasTitle = True 
    Let .ChartTitle.Text = "Vendas de Janeiro" 
End With


Ei! Envie seus comentários e sugestões de artigos. Compartilhe este artigo com seus chefes, colegas de trabalho e amigos.
 


SANDWICH PROJECT 2016 - VBA Access: Copiando query com outro nome programaticamente

SANDWICH PROJECT 2016 - VBA Access: Copiando query com outro nome programaticamente





















Não raro ocorre a necessidade de copiarmos o conteúdo de uma query existente para outra com um nome diferente. Quando esta necessidade surgir, não precisará perder tempo em saber como fazê-lo, abaixo está o caminho.

Dica: Uma forma similar pode ser utilizada para copiar quaisquer objeto do MS Access.

 Aprenda: 17 Passos Essenciais para Melhorar seu Código VBA 

Function CpyNQry (nQryNm As String, nQryNm As String) As Boolean
' André Bernardes 04/2009 bernardess@gmail.com 
' Copia uma query qualquer para outra com outro nome. 
CurrentDb().CreateQueryDef nQryNm, CurrentDb().QueryDefs(QryNm).SQL 
Let CpyNQry = (Len(CurrentDb().QueryDefs(nQryNm).Name) > 0) 
Application.RefreshDatabaseWindow
End Function


SANDWICH PROJECT 2016 - VBA Access: Deletando tabelas e querys programaticamente

SANDWICH PROJECT 2016 - VBA Access: Deletando tabelas e querys programaticamente





























 Aprenda: 17 Passos Essenciais para Melhorar seu Código VBA 


Quando estamos criando múltiplas tabelas atualizáveis dinamicamente no MS Access e as disponibilizando para consultas externas como no próprio Access, Excel, Word ou Powerpoint, por vezes precisaremos checar se os seus respectivos nomes já existem e em caso positivo deletá-las.

Uma funcionalidade para tal execução no próprio MS Access, através do nome da tabela, é a que descrevo abaixo:


    Function CheckTable (nTable As String)
        ' André Bernardes             06/06/2008 07:23    bernardess@gmail.com

        Dim db As Database
        Dim i As Integer

        Set db = DBEngine.Workspaces(0).Databases(0)

        db.TableDefs.Refresh

        For i = 0 To db.TableDefs.Count - 1
            If nTable = db.TableDefs(i).Name Then
                DoCmd.DeleteObject acTable, nTable      ' Table Exists.

                Exit For
            End If
        Next i

        Set db = Nothing
    End Function


Para deletarmos Querys, utilizaríamos:


Function CheckQuery (nQuery As String)
    ' André Bernardes             30/04/2009 11:26    bernardess@gmail.com

    Dim db As Database
    Dim i As Integer

    Set db = DBEngine.Workspaces(0).Databases(0)

    db.QueryDefs.Refresh

    For i = 0 To db.QueryDefs.Count - 1
        If nQuery = db.QueryDefs(i).Name Then
            DoCmd.DeleteObject acQuery, nQuery      ' Query Exists.

            Exit For
        End If
    Next i

    Set db = Nothing
End Function


Ei! Envie seus comentários e sugestões de artigos. Compartilhe este artigo com seus chefes, colegas de trabalho e amigos.
diHITT - Notícias