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

VBA Excel Intermediário - Mudando a Referência de Vários Gráficos ao mesmo tempo

VBA Excel Intermediário - Mudando a Referência de Vários Gráficos ao mesmo tempo



Vez ou outra precisamos mover nossos gráficos entre planilhas e neste momento dá um frio na barriga, porque para isso precisaremos mexer em todas as referências dos gráficos contidos em nossa activesheet.

E como pode imaginar, fazer isso manualmente certamente propiciará erros. Sim, não há nada mais fácil do que implementar erros durante o momento de uma transcrição de código e/ou referências. 

Neste momento seria muito bom termos à disposição um código que fizesse isso para nós hein! Que tal se apenas precisássemos colar o código, posicionarmo-nos dentro da planilha onde todas as referências precisem ser corrigidas e voilá, TODAS AS REFERÊNCIAS são acertadas sem alterar nenhuma configuração prévia dos nossos gráficos.

Pensando nisso, compartilho o código abaixo, o qual, espero, possa livrá-los de transtornos...


Sub ChangeSeriesFormulaAllCharts()
    '      Author: André Luiz Bernardes - A&A - In Any Place - andreluizbernardes@gmail.com
    '        Date: 13/05/2016 - 11: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: Extract old reference and put new chart references
    ''' Do all charts in sheet
    Dim oChart As ChartObject
    Dim OldString As String, NewString As String
    Dim mySrs As Series
    Let OldString = "[REUNIAO PERFORMANCE.xlsx]" 'InputBox("Enter the string to be replaced:", "Enter old string")
    If Len(OldString) > 1 Then
        Let NewString = ""  'InputBox("Enter the string to replace " & """" _
            & OldString & """:", "Enter new string")
     
        For Each oChart In ActiveSheet.ChartObjects
            Debug.Print oChart.Name
         
            For Each mySrs In oChart.Chart.SeriesCollection
                Debug.Print "CHART " & oChart.Name & " OLD: " & mySrs.Formula & " NEW: " & Replace(mySrs.Formula, OldString, NewString)
                Let mySrs.Formula = Replace(mySrs.Formula, OldString, NewString)
            Next
        Next
    Else
        MsgBox "Nothing to be replaced.", vbInformation, "Nothing Entered"
    End If
End Sub
 

VBA Excel Basic - Gráfico - Alterando todas as Fontes de todos os Objetos em todos os Gráficos

VBA Excel Basic - Gráfico - Alterando todas as Fontes de todos os Objetos em todos os Gráficos



No desenvolvimento e implementação de Dashboards sempre precisaremos aproveitar a construção de sets (conjuntos) de gráficos previamente desenvolvidos. Geralmente estes foram feitos por pessoas que, apesar de saberem criar gráficos, desconhecem alguns aspectos importantes da sua manutenção e criação.

Existe um motivo para mantermos todas as fontes dentro de um gráfico sempre como o mesmo tipo. Qual?

Velocidade

Sim, quanto mais fontes diferentes estiverem sendo usadas num gráfico, mais lento este será carregado. E se for um conjunto com diversos gráficos então, isso será multiplicado, isso quando não trouxer transtornos a atualização.

DICA: Mantenha todas as fontes, de todos os objetos dentro de um gráfico, com o mesmo tipo.

Mas ... Como fazemos? Que código devo usar?

Bem, o código abaixo, além de colocar todas as fontes dentro de código, num mesmo tipo, ainda permite colocar os títulos e os valores das séries neles como negrito. Divirta-se!


Sub ChangeAllFontsAllCharts()
    '      Author: André Luiz Bernardes - A&A - In Any Place - andreluizbernardes@gmail.com
    '        Date: 16/05/2016 - 06:45
    ' Application: Field Force Dashboard Analysis® - © A&A - In Any Place 2016, Inc. Todos os direitos reservados.
    '     Company: © A&A - In Any Place, Inc. Todos os direitos reservados.
    '     Purpose: Change all fonts in all charts in activesheet
    Dim Charts As ChartObject
    Dim chSeries As Series
    Dim nFontName As String
    Let nFontName = "Arial"
    For Each Charts In ActiveSheet.ChartObjects
        Debug.Print "Nome do Gráfico:" & Charts.Name
        Charts.Activate
        ' All chart Fonts.
        With ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font
            Let .Name = nFontName
            'Let .Size = 14
        End With
        ' Title Fonts.
        'Let ActiveChart.ChartTitle.Font.Name = nFontName
        Let ActiveChart.ChartTitle.Font.FontStyle = "Bold"
        ' Series Fonts.
        For Each chSeries In ActiveChart.SeriesCollection
            Debug.Print "Nome da Série:" & ActiveChart.Name
            With chSeries.DataLabels.Font
                'Let .Name = nFontName
                Let .Size = 12
                Let .FontStyle = "Bold"
            End With
        Next
    Next Charts
End Sub
A coleção Charts contém um objeto Chart para cada planilha de gráfico em uma pasta de trabalho. Use Charts (índice), onde índice é o número ou o nome do índice da planilha de gráfico, para retornar um único objeto Chart. O número do índice do gráfico representa a posição da planilha do gráfico na barra da guia da pasta de trabalho. Charts (1) é o primeiro gráfico (mais à esquerda) na pasta de trabalho; Charts (Charts.Count) é o último (mais à direita). Todas as planilhas de gráfico estão incluídas na contagem do índice, mesmo se estiverem ocultas. O nome da planilha de gráfica é mostrado na guia da pasta de trabalho para o gráfico. Use a propriedade Name para definir ou retornar o nome do gráfico.

O objeto Chart também é membro da coleção Sheets, que contém todas as planilhas na pasta de trabalho (planilhas de gráfico e planilhas). Use Sheets (índice), onde índice é o número ou o nome do índice da planilha, para retornar uma única planilha.

Quando um gráfico estiver no objeto ativo, poderá usar a propriedade ActiveChart para fazer referência a ele. Uma planilha de gráfico será ativa se o usuário a tiver selecionado ou se ela tiver sido ativada com o método Activate do objeto Chart ou com o método Activate do objeto ChartObject. 

Um gráfico interno será ativo caso o usuário o tenha selecionado ou se o objeto ChartObject no qual ele está contido tiver sido ativado com o método Activate.

O uso da propriedade ActiveChart permite que você escreva código do Visual Basic que possa fazer referência a um gráfico interno ou a uma planilha de gráfico (o que estiver ativo).


Quando uma planilha de gráfico estiver na planilha ativa, você poderá usar a propriedade ActiveSheet para fazer referência a ela.

MSDN SAMPLES



VBA Excel Basic - Propriedade Application.StatusBar

VBA Simples - Propriedade Application.StatusBar



Sim, precisamos identificar quem é o dono da planilha que nosso Cliente preparou ou que disponibilizamos a outros. Fazer isso, além de personalizar, mantém o CopyRight do conteúdo. Estabelecendo uma base legal para ações futuras em caso de uso autorização.

Como você pode alterar?

Primeiro abra a sua planilha:




Em seguida cole o código abaixo nela:
Private Sub Worksheet_Activate()
    Dim oldStatusBar As Variant
 
    Let oldStatusBar = Application.DisplayStatusBar
    Let Application.DisplayStatusBar = True
 
    Let Application.StatusBar = "Please be patient..."
    'Workbooks.Open Filename:="LARGE.XLS"
 
    Let Application.StatusBar = False
    Let Application.DisplayStatusBar = oldStatusBar
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

Ao utilizar essa funcionalidade o seu código será executado mais rápidamente:


Let Application.ScreenUpdating = False

Depois de colocar esta linha antes do início do processamento do seu código, não será capaz de ver o que a macro está fazendo, mas após o término não se esqueça de redefinir a propriedade ScreenUpdating de volta para True.


Let Application.ScreenUpdating = True

Exemplo:


'  Adicione uma Nova Worksheet

Private Sub GenerateNewWorksheet()
    Dim ActSheet As Worksheet
    Dim NewSheet As Worksheet

    ' Prevenindo as atualizações de tela.
    Let Application.ScreenUpdating = False
    Set ActSheet = ActiveSheet
    Set NewSheet = ThisWorkbook.Sheets().Add()

    NewSheet.Move

After:=Sheets(ThisWorkbook.Sheets().Count)

    ActSheet.Select
     ' Reativando a atualização da tela.
    Let Application.ScreenUpdating = True
End Sub

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

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
diHITT - Notícias