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 MS PowerPoint. Mostrar todas as postagens
Mostrando postagens com marcador MS PowerPoint. Mostrar todas as postagens

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 - Exportando um Range para o PowerPoint

VBA Excel Intermediário - Exportando um Range para o PowerPoint











Exportar um range específico do nosso Dashboard diretamente para o MS Powerpoint deixou de ser um grande segredo e tornou-se a funcionalidade mais usada entre aqueles que conhecem um pouco de VBA. Por isso disponibilizo mais uma versão dessa possibilidade:

Sub ExcelRangeToPowerPoint(nSheet As String, NewPPT As Boolean, nRng As String, nLeft As Integer, nTop As Integer)
    '      Author: André Luiz Bernardes - A&A - In Any Place - andreluizbernardes@gmail.com
    '        Date: 11/05/2016 - 12:25
    ' Application: Field Force Dashboard Analysis®
    '     Purpose: Copy/Paste An Excel Range Into a New PowerPoint Presentation

Dim rng As Range
Dim PowerPointApp As Object
Dim myPresentation As Object
Dim mySlide As Object
Dim myShape As Object

'Copy Range from Excel
  Set rng = Sheets(nSheet).Range(nRng) 'ThisWorkbook.ActiveSheet.Range(nRng)

'Create an Instance of PowerPoint
  On Error Resume Next
    
    'Is PowerPoint already opened?
      Set PowerPointApp = GetObject(class:="PowerPoint.Application")
    
    'Clear the error between errors
      Err.Clear

    'If PowerPoint is not already open then open PowerPoint
      If PowerPointApp Is Nothing Then Set PowerPointApp = CreateObject(class:="PowerPoint.Application")
    
    'Handle if the PowerPoint Application is not found
      If Err.Number = 429 Then
        MsgBox "PowerPoint não pôde ser aberto, abortando exportação."
        Exit Sub
      End If

  On Error GoTo 0

'Optimize Code
  Application.ScreenUpdating = False

'Create a New Presentation
  Set myPresentation = PowerPointApp.Presentations.Add

'Add a slide to the Presentation
  Set mySlide = myPresentation.Slides.Add(1, 11) '11 = ppLayoutTitleOnly

'Copy Excel Range
  rng.Copy

'Paste to PowerPoint and position
  mySlide.Shapes.PasteSpecial DataType:=2  '2 = ppPasteEnhancedMetafile
  Set myShape = mySlide.Shapes(mySlide.Shapes.Count)
  
    'Set position:
      myShape.Left = nLeft
      myShape.Top = nTop

'Make PowerPoint Visible and Active
  PowerPointApp.Visible = True
  PowerPointApp.Activate

'Clear The Clipboard
  Application.CutCopyMode = False

End Sub



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










A&A - In Any Place

A&A - In Any Place


A&A - In Any Place foi criada 2005 como uma consultoria de desenvolvimento de software. Ao passo que um dos fundadores envolvia-se em diversos projetos simultâneos, passando por diversas empresas em diferentes modelos de negócio, a A&A foi transformando-se numa consultoria com um expertise bem específico e necessário no mercado corporativo. 

Um dos seus focos sempre foi o de estender suporte a criação de aplicações desenvolvidas com a suíte MS Office da Microsoft, o que se mostrou-se muito útil a comunidade de utilizadores dessa plataforma. Já existia então uma ampla comunidade com profissionais que utilizam as clássicas soluções MS ExcelMS WordMS AccessMS PowerPointMS Outlook, sem qualquer experiência de desenvolvimento, subutilizando os recursos pouco explorados.


Com o passar dos anos cada uma dos produtos do Office avançaram, tornando-se verdadeiras plataformas de desenvolvimento VBA - Visual Basic for Application - devido aos seus recursos de automação, intrinsecamente existentes em seu core, comum a todos os produtos da suíte.


Essa vertente vem sendo trilhada neste mercado por muitos anos, visto haver uma enorme carência por desenvolvedores profissionais disponíveis.


A empresa passou a oferecer cursos in companypessoais e online. Além disso, Blogs com inúmeras dicas e centenas de artigos foram implementados, os quais ainda continuam ativos com grande audiência e contribuições.





Blog focado em ampla comunidade de desenvolvedores da área de TI. Alto e médio poder aquisitivo.

Perfis: Engenheiros de software, Analistas de Sistemas, Programadores, executivos nos cargos de coordenação e Analistas.



Blog focado em ampla comunidade de desenvolvedores da área de TI. Nicho da comunidade que utiliza MS Excel. Alto e médio poder aquisitivo.

Perfis: Engenheiros de software, Analistas de Sistemas, Programadores, executivos nos cargos de coordenação e Analistas.



Blog focado em ampla comunidade de desenvolvedores da área de TI. Nicho da comunidade que utiliza MS Access. Alto e médio poder aquisitivo.

Perfis: Engenheiros de software, Analistas de Sistemas, Programadores, executivos nos cargos de coordenação e Analistas.


Blog focado em executivos com perfil de TI. São profissionais com Alto e médio poder aquisitivo. Com alto grau de importância nas empresas onde atuam.

Perfis: Executivos: Diretores, Gerentes, Coordenadores e Analistas.


Blog focado em executivos com perfil de TI. São profissionais com Alto e médio poder aquisitivo. Com alto grau de importância nas empresas onde atuam.

Perfis: Executivos: Diretores, Gerentes, Coordenadores e Analistas.


Blog focado em executivos da indústria farmacêutica com perfil voltado para TI. São profissionais com Alto e médio poder aquisitivo. Com alto grau de importância nas empresas onde atuam.

Perfis: Executivos da Indústria Farmacêutica: Diretores, Gerentes, Coordenadores e Analistas.


Blog focado em ampla comunidade de desenvolvedores da área de TI. Alto e médio poder aquisitivo.

Perfis: Engenheiros de software, Analistas de Sistemas, Programadores, executivos nos cargos de coordenação e Analistas.





Blog voltado para profissionais executivos, com médio e alto poder aquisitivo.

Perfis: Alto Executivos da Indústria Farmacêutica: CIOs, CEOs, Diretores, Gerentes e Coordenadores.



Blog voltado para profissionais executivos com perfil técnico voltado para tecnologia - TI. Alto e médio poder aquisitivo.

Perfis: Executivos da Indústria Farmacêutica: Diretores, Gerentes, Coordenadores e Analistas.



Blog focado em da área de TI. Alto e médio poder aquisitivo.

Perfis: Executivos da Indústria Farmacêutica: Diretores, Gerentes, Coordenadores e Analistas




brazilsalesforceeffectiveness@gmail.com

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

eBooks VBA na AMAZOM.com.br

LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...

Vitrine