Views

...

Important:

Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog podem ser tratados como consultoria freelance.

E-mails

Deixe seu e-mail para receber atualizações...

eBook Promo

Mostrando postagens com marcador VBA Excel. Mostrar todas as postagens
Mostrando postagens com marcador VBA Excel. Mostrar todas as postagens

Envie 10.000 e-Mails pelo GMAIL em 8 Passos

Envie 10.000 e-Mails pelo GMAIL em 8 Passos



Quem não é visto não é lembrado!

A máxima acima é verdadeira e talvez por causa disso sempre estejamos enviando diversas abordagens para nossos Clientes.


Apenas as Rede Sociais não são suficientes para promoverem a imersão que desejamos em nossos conteúdos.

Suponha que quisesse uma abordagem arrojada através do envio de 10.000 e-Mails com diferentes conteúdos, critérios, abordagens e perfis do público alvo. Tudo devidamente segmentado com medição online.

Imagine adicionalmente que pudéssemos controlar o envio, o retorno, e tudo o que estiver no processo.

Visualize a sensação de operar sem os limites do MS Outlook, sem restrições de anexos ou o tamanho dos e-Mails.

Veja a vantagem de não precisar compartilhar sua lista com terceiros ou disponibilizá-las em servidores que sequer sabe a procedência.

Pense na possibilidade de poder criar inúmeros conteúdos HTML para diversos e-Mails, permitindo liberdade de criação dinâmica através de código VBA:

  • Passo - Crie algumas contas no GMail para organizar o seu envio.
  • Passo Configure o GMail para o envio através do MS Excel.
  • Passo - Função de validação dos endereços de e-Mail.
  • Passo Função de controle dos intervalos de envio dos e-Mails.
  • Passo Formatação da planilha repositória da lista de e-Mails.
  • Passo Função intercambiável, modeladora do HTML do e-Mail.
  • Passo Funcionalidade de automação do processo de envio.
  • Passo Conexão e envio ao GMail.


brazilsalesforceeffectiveness@gmail.com

✔ Brazil SFE®✔ Brazil SFE®´s Facebook´s Profile  Google+   Author´s Professional Profile  ✔ Brazil SFE®´s Pinterest       ✔ Brazil SFE®´s Tweets

VBA Excel Intermediário - Exportando DOIS Ranges Simultaneamente para o PowerPoint

VBA Excel Intermediário - Exportando DOIS Ranges Simultaneamente para o PowerPoint



Sim, caso nosso Dashboard seja grande demais, ou tenha pequenas partes que gostaria de destacar durante a sua apresentação, talvez decida exportar pequenas partes em slides separados, logo após tê-los exportado juntos.

Ter a liberdade de poder efetuar essa exportação com a mesma funcionalidade técnica é sempre uma bem recebida solução para a nossa correria do dia a dia.

Um plus+ neste código é o que verá no arremate da colagem da imagem, quando o script tenta adequar o tamanho da imagem ao slide onde está sendo colado. 

Começa assim:

    Dim nTitle As String
    Dim nRngName01 As String

    Dim nRngName02 As String

     Let nRngName01 = "TOP"
     Let nRngName02 = "BODY"

     Let nTitle = ActiveSheet.Range("AB9").Value

    Call XPortRng2PPT (nRngName01, nRngName02, nSheetName, nTitle)

Continue assim:

Sub XPortRng2PPT (nRngName01 As String, nRngName02 As String, nSheet As String, nTitle As String)
    '      Author: André Luiz Bernardes - A&A - In Any Place - andreluizbernardes@gmail.com
    '        Date: 01/06/2016 - 10:32
    ' Application: Field Force Dashboard Analysis® 
    '     Purpose: Copy/Paste An Excel Range Into a New PowerPoint Presentation

    Dim ActFileName As Variant
    Dim ScaleFactor As Single

    On Error GoTo ErrorHandling

    Let ActFileName = Application.GetOpenFilename("Microsoft PowerPoint-Files (*.pptx), *.ppt")
    Let ScaleFactor = Range("myScaleFactor").Value

    Application.Sheets(nSheet).Select

    Set PP = CreateObject("Powerpoint.Application")

    If ActFileName = False Then
        PP.Activate
        PP.Presentations.Add
        Set PP_File = PP.ActivePresentation
    Else
        PP.Activate
        Set PP_File = PP.Presentations.Open(ActFileName)
    End If

    Let PP.Visible = True

    CopyandPastetoPPT nRngName01, nTitle, ScaleFactor, ScaleFactor
    CopyandPastetoPPT nRngName02, nTitle, ScaleFactor, ScaleFactor

    Set PP_Slide = Nothing
    Set PP_File = Nothing
    Set PP = Nothing

    Application.Sheets(nSheet).Activate
Exit Sub

ErrorHandling:

Set PP_Slide = Nothing
Set PP_File = Nothing
Set PP = Nothing

MsgBox "Error No.: " & Err.Number & vbNewLine & vbNewLine & "Description: " & Err.Description, vbCritical, "Error"

End Sub

Sub CopyandPastetoPPT (myRangeName As String, _
                              myTitle As String, _
                              myScaleHeight As Single, _
                              myScaleWidth As Single)
    '      Author: André Luiz Bernardes - A&A - In Any Place - andreluizbernardes@gmail.com
    '        Date: 01/06/2016 - 10:32
    ' Application: Field Force Dashboard Analysis®
    '     Purpose: Copy/Paste.

    Dim NextShape As Integer

    Application.GoTo Reference:=myRangeName

    Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
    
    Range("A1").Select

    PP.ActivePresentation.Slides.Add PP.ActivePresentation.Slides.Count + 1, 11

    Set PP_Slide = PP_File.Slides(PP.ActivePresentation.Slides.Count)
    Let PP_Slide.Shapes.Title.TextFrame.TextRange.Text = myTitle
    Let NextShape = PP_Slide.Shapes.Count + 1

    PP_Slide.Shapes.PasteSpecial 2
    
    PP_Slide.Shapes(NextShape).ScaleHeight myScaleHeight, 1
    PP_Slide.Shapes(NextShape).ScaleWidth myScaleWidth, 1
    PP_Slide.Shapes(NextShape).Left = PP_File.PageSetup.SlideWidth \ 2 - PP_Slide.Shapes(NextShape).Width \ 2
    PP_Slide.Shapes(NextShape).Top = 90

End Sub


Se gostou, compartilhe este post com outros! Deixe seus comentários e sugestões.










VBA Excel Intermediário - Como Desligar os Menus do MS Excel, Maximizando a Visualização do Dashboard? - Hide/Show Ribbon Programmaticaly

VBA Excel Intermediário - Como Desligar os Menus do MS Excel, Maximizando a Visualização do Dashboard?

Hide/Show Ribbon Programmaticaly



Ás vezes nossos Dashboards são enormes e desejamos que sejam mostrados em sua totalidade, por vezes, ocupando toda a tela. 

De fato, a visualização pode ficar fantástica, mas não queremos que ela seja prejudicada pelos menus padrões do MS Excel não é mesmo? Então, Como Desligar os Menus do MS Excel, Maximizando a Visualização do um Dashboard?

Use este código, que pode ser acionado através de um botão ou mesmo logo que o seu Dashboard for aberto:

Private Sub btnMenu01_Click()
    '      Author: André Luiz Bernardes - A&A - In Any Place - andreluizbernardes@gmail.com
    '        Date: 23/06/2016 - 09:33; 20/06/2016 - 08:08
    ' Application: Field Force Dashboard Analysis® - © ALLERGAN 2016, Inc. Todos os direitos reservados.
    '     Purpose: Load / Unload Main Menu.

    Dim nStat As Boolean
    Dim nLbl As String
    Dim nToolBarStr As String

    Let Application.ScreenUpdating = False

    ' Posiciona na Planilha.

    ActiveSheet.Select
    ActiveSheet.Activate

    If btnMenu01.Value Then
        Let nToolBarStr = "Show.ToolBar(""Ribbon"", False)"
        Let nStat = False
        'Let ActiveWindow.Zoom = 55

        ' Opções.
        Application.ExecuteExcel4Macro nToolBarStr

        Let Application.DisplayFormulaBar = nStat
        Let ActiveWindow.DisplayWorkbookTabs = nStat

        Range("A1").Select

        ' Mostra o Form.
        MainMenuFRM.Show (0)  ' 21.06.16
    Else
        Let nToolBarStr = "Show.ToolBar(""Ribbon"", True)"
        Let nStat = True
        'Let ActiveWindow.Zoom = 70

        ' Opções.
        Application.ExecuteExcel4Macro nToolBarStr

        Let Application.DisplayFormulaBar = nStat
        Let ActiveWindow.DisplayWorkbookTabs = nStat

        ActiveSheet.Range("A1").Select

        ' Esconde o Form.
        MainMenuFRM.Hide
    End If

    Let Application.ScreenUpdating = True

End Sub


Outra opção seria, simplesmente:

Sub HideRibbon()    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
End Sub 
Sub ShowRibbon()    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
End Sub

Somente nas versões do MS Excel 2010-2016 você poderá usar o comando: CommandBars.ExecuteMso "MinimizeRibbon"

Nestas versões também pdoerá checar o estado do Ribbon.

Sub test()
If RibbonState = 0 Then CommandBars.ExecuteMso "MinimizeRibbon"
End Sub 
Function RibbonState() As Long
'Result: 0=normal, -1=autohide
Let RibbonState = (CommandBars("Ribbon").Controls(1).Height < 100)
End Function



Se gostou, compartilhe este post com outros! Deixe seus comentários e sugestões.











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ário, planilhas 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 Excel - Crack Sheet Protection Password

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

VBA Excel Basic - Usando a Propriedade ScreenUpdating


VBA Excel - Usando a Propriedade ScreenUpdating















Na grande maioria das vezes que implementamos algum código para automação, não desejamos visualizar na tela o código que está sendo processado, para isso podemos usar a propriedade ScreenUpdating:

A sintaxe é: Application.ScreenUpdating

Acesse o artigo completo e aprenda a usá-lo aqui.

Please connect with me - I'm always happy to befriend.
(Caso queira conectar-se comigo, estou sempre feliz em ajudar.)

eBooks VBA na AMAZOM.com.br

LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...

Vitrine