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 Gráfico. Mostrar todas as postagens
Mostrando postagens com marcador Gráfico. Mostrar todas as postagens

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
 

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: 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.
 


Infográficos - O que é LITERACY - Letramento


A palavra "letramento" é a "versão para o português da palavra da língua inglesa literacy. (...) Literacy é o estado ou condição que assume aquele que aprende a ler e escrever. Implícita nesse conceito está a ideia de que a escrita traz conseqüências sociais, culturais, políticas, econômicas, cognitivas, lingüísticas, quer para o grupo social em que seja introduzida, quer para o indivíduo que aprenda a usá-la. 

Em outras palavras: do ponto de vista individual, o aprender a ler e escrever – alfabetizar-se, deixar de ser analfabeto, tornar-se alfabetizado, adquirir a 'tecnologia' do ler e escrever e envolver-se nas práticas sociais de leitura e de escrita – tem conseqüências sobre o indivíduo, e altera seu estado ou condição em aspectos sociais, psíquicos, culturais, políticos, cognitivos, linguísticos e até mesmo econômicos; do ponto de vista social, a introdução da escrita em um grupo até então ágrafo tem sobre esse grupo efeitos de natureza social, cultural, política, econômica, linguística. O 'estado' ou a 'condição' que o indivíduo ou grupo social passam a ter, sob o impacto dessas mudanças, é que é designado por literacy" (Soares, 1999, p. 17-18).

Assim, podemos definir letramento como a capacidade de um indivíduo de se apropriar da escrita, sendo capaz de utilizá-la em diversas situações exigidas no cotidiano. Segundo os Parâmetros Curriculares Nacionais (PCNs), a aptidão para ler e produzir textos – dos mais variados gêneros e temas – com proficiência é o mais significativo indicador de um bom desempenho linguístico e, conseqüentemente, de letramento. Um escritor competente deve, portanto, saber selecionar o gênero apropriado a seus objetivos e à circunstância em que realizará seu discurso.

Mas essa definição de letramento e a forma de avaliá-lo são diferentes em cada país e podem variar mesmo entre escolas do mesmo estado. Na avaliação, de acordo com Magda Soares (1999, p. 86), "os critérios segundo os quais os testes são construídos é que definem o que é letramento em contextos escolares: um conceito restrito e fortemente controlado, nem sempre condizente com as habilidades de leitura e escrita e as práticas sociais fora das paredes da escola". Neste sentido, são freqüentes os casos em que indivíduos "são capazes de comportamentos escolares de letramento, mas são incapazes de lidar com os usos cotidianos da leitura e da escrita em contextos não escolares" (idem, ibid.). Isso se justifica pelo fato de muitas vezes a escola ser um mundo à parte, e não assumir o seu papel de preparar o sujeito para a realidade na qual se insere.

Em certos contextos, o conceito de letramento adotado pela escola está de certa forma em dissonância com aquilo que é importante para as pessoas em sua vida diária. Depois de frequentarem a escola por alguns anos, muitos adultos "evidenciam um domínio limitado das habilidades e estratégias de processamento de informação necessárias para que sejam bem-sucedidos ao enfrentarem uma vasta gama de atividades no trabalho, em casa, em suas comunidades" (idem, ibid.).

Esse quadro denota que a noção de letramento não é única e que varia de acordo com o tipo e os objetivos da avaliação realizada. Nessa perspectiva, buscamos elucidar as concepções de letramento subjacentes ao PISA e ao SAEB. À primeira vista, essas concepções nos pareceram muito operacionais, ou seja, percebemos que o que define letramento nos contextos escolares avaliados são, sobretudo, os critérios que viabilizam a elaboração das provas dos alunos no PISA e no SAEB. Um exemplo disso é a ênfase dada pelas duas avaliações à leitura, uma vez que a análise da produção escrita dos estudantes seria extremamente trabalhosa e dispendiosa.


Tags: Infochart, Infographic, Infográfico, gráfico, literacy, letramento, alfabetizar, analfabeto, 









Inline image 1

VBA Excel - Convertendo em Imagens



Lembro-me de há alguns anos, quando criei um Blog específico de VBA. Recordo-me como era incipiente a inter-colaboração de códigos VBA no mercado nacional, bem como a utilização profissional de Dashboards e Scorecards. O desenvolvimento VBA naquela época restringia-se aos expressão "faz-se macros no excel'. 

Hoje, estamos vivenciando um mercado de desenvolvimento VBA mais maduro, cheio de profissionais competentíssimos (tomara que essa expressão não seja um neologismo), com inúmeras excelentes soluções de desenvolvimento e aplicações de automação. Encontramo-nos amadurecidos e prontos para avançarmos no nosso ciclo de aprimoramento profissional!

O artigo a seguir visa elevar a qualidade da nossa entrega. Enviar o conteúdo das nossas soluções para outros ambientes e interfaces. Das aplicações da suíte MS Office, a editores gráficos para a criação de Infográficos e até mesmo a inserção destes em páginas da Web de modo automático (Sharepoint). 

Abaixo seguem diversos códigos bem elaborados que possibilitarão copiar os gráficos das suas planilhas pré-existentes, bem como os ranges de dados destas (conjuntos de células previamente selecionados) como uma imagem. 

Detalhes:
Por vezes desejará não enviar a fonte de dados junto com o gráfico para um Slide que lhe solicitaram.

Talvez deseje enviar uma tabela, um relatório, partes de um Balanced Scorecard, um Dashboards ou um Scorecards, ou mesmo um conjunto deKPIs, sem que estes sejam alterados por quem recebê-los.

Criar um informativo regular, parte de um relatório, que envia via MS Outlook, comentários dos
relatórios, agregando conteúdo analítico e não apenas gráficos e dados estáticos para o público alvo.

Como fazê-lo?
Com os recursos abaixo alistados, poderá enviar somente as imagens, como se tirasse uma foto e colasse no Slide, num documento MS Word, num e-mail e até mesmo no Photoshop (há!). Chega! Essas são apenas algumas das possibilidades...Pensem em outras...

CÓDIGO: SELECIONAR TUDO
ActiveChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture


Para copiar um gráfico selecionado (ou ativo) em uma planilha, implemente a seguinte sintaxe: 

CÓDIGO: SELECIONAR TUDO
ActiveChart.CopyPicture Appearance:=xlScreen, Format:=xlPicture

Copiando um range de dados, colando-a como uma imagem: 

CÓDIGO: SELECIONAR TUDO
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture

Copie gráficos selecionados (ou ativo) em uma planilha, implemente a seguinte sintaxe: 

CÓDIGO: SELECIONAR TUDO
Worksheets("Nome da pasta").ChartObjects(1).Chart.CopyPictureAppearance:=xlScreen, Size:=xlScreen, Format:=xlPicture

Copie uma faixa de dados específica, embora não esteja selecionada, colando-a a posteriori: 

CÓDIGO: SELECIONAR TUDO
Worksheets("Nome da pasta").Range("B11:AF25").CopyPicture Appearance:=xlScreen, Format:=xlPicture

Pois é, sempre existem códigos admiráveis por aí: 

CÓDIGO: SELECIONAR TUDO
Sub GraficoToPowerPoint()
    Dim objPPT As Object
    Dim objPrs As Object
    Dim shtTemp As Worksheet
    Dim chtTemp As ChartObject
    Dim intSlide As Integer
     
    Set objPPT = CreateObject("Powerpoint.application")
    objPPT.Visible = True
    objPPT.presentations.Open ThisWorkbook.Path & "\Dashboard_Bernardes.ppt"
    objPPT.ActiveWindow.ViewType = 1 'ppViewSlide
     
    For Each shtTemp In ThisWorkbook.Worksheets
        For Each chtTemp In shtTemp.ChartObjects
            intSlide = intSlide + 1
            chtTemp.CopyPicture
            If intSlide > objPPT.presentations(1).Slides.Count Then
                objPPT.ActiveWindow.View.GotoSlide Index:=objPPT.presentations(1).Slides.Add(Index:=intSlide, Layout:=1).SlideIndex
            End If
            objPPT.ActiveWindow.View.Paste
        Next
    Next
    objPPT.presentations(1).Save
    objPPT.Quit
     
    Set objPrs = Nothing
    Set objPPT = Nothing
End Sub

Copiando range e gráfico para o MS Powerpoint: 

CÓDIGO: SELECIONAR TUDO
Sub GraficoRange_TO_Powerpoint() 
    Dim objPPT As Object 
    Dim objPrs As Object 
    Dim objSld As Object 
    Dim shtTemp As Object 
    Dim chtTemp As ChartObject 
    Dim objShape As Shape 
    Dim objGShape As Shape 
    Dim intSlide As Integer 
    Dim blnCopy As Boolean 
     
    Set objPPT = CreateObject("Powerpoint.application") 
    objPPT.Visible = True 
    objPPT.Presentations.Add 
    objPPT.ActiveWindow.ViewType = 1
     
    For Each shtTemp In ThisWorkbook.Sheets 
        blnCopy = False 
        If shtTemp.Type = xlWorksheet Then 
            For Each objShape In shtTemp.Shapes
                blnCopy = False 
                If objShape.Type = msoGroup Then 

                    For Each objGShape In objShape.GroupItems 
                        If objGShape.Type = msoChart Then 
                            blnCopy = True 
                            Exit For 
                        End If 
                    Next 
                End If 
                If objShape.Type = msoChart Then blnCopy = True 
                 
                If blnCopy Then 
                    intSlide = intSlide + 1 
                    objShape.CopyPicture 

                    objPPT.ActiveWindow.View.GotoSlide Index:=objPPT.ActivePresentation.Slides.Add(Index:=objPPT.ActivePresentation.Slides.Count + 1, Layout:=12).SlideIndex 
                    objPPT.ActiveWindow.View.Paste 
                End If 
            Next 
            If Not blnCopy Then 

                intSlide = intSlide + 1 
                shtTemp.UsedRange.CopyPicture 

                objPPT.ActiveWindow.View.GotoSlide Index:=objPPT.ActivePresentation.Slides.Add(Index:=objPPT.ActivePresentation.Slides.Count + 1, Layout:=12).SlideIndex 
                objPPT.ActiveWindow.View.Paste 
            End If 
        Else 
            intSlide = intSlide + 1 
            shtTemp.CopyPicture 

            objPPT.ActiveWindow.View.GotoSlide Index:=objPPT.ActivePresentation.Slides.Add(Index:=objPPT.ActivePresentation.Slides.Count + 1, Layout:=12).SlideIndex 
            objPPT.ActiveWindow.View.Paste 
        End If 
    Next 
     
    Set objPrs = Nothing 
    Set objPPT = Nothing 
End Sub

Bônus: 
CÓDIGO: SELECIONAR TUDO
Sub RangeUsado_TO_Powerpoint()
    Dim objPPT As Object
    Dim shtTemp As Object
    Dim intSlide As Integer
     
    Set objPPT = CreateObject("Powerpoint.application")
    objPPT.Visible = True
    objPPT.Presentations.Open ThisWorkbook.Path & "\Bernardes.ppt"
    objPPT.ActiveWindow.ViewType = 1
    
    For Each shtTemp In ThisWorkbook.Sheets
        shtTemp.Range("A1", shtTemp.UsedRange).CopyPicture xlScreen, xlPicture
        intSlide = intSlide + 1

        objPPT.ActiveWindow.View.GotoSlide Index:=objPPT.ActivePresentation.Slides.Add(Index:=objPPT.ActivePresentation.Slides.Count + 1, Layout:=12).SlideIndex
        objPPT.ActiveWindow.View.Paste
        With objPPT.ActiveWindow.View.Slide.Shapes(objPPT.ActiveWindow.View.Slide.Shapes.Count)
            .Left = (.Parent.Parent.SlideMaster.Width - .Width) / 2
        End With
    Next
     
    Set objPPT = Nothing
End Sub



Tags: VBA, Excel, copy, object, objeto, copiar, chart, gráfico





Como Construir Infográficos - Desenvolvedores VBA arrisquem-se!

Inline image 4



Não é só por sermos desenvolvedores de automação e soluções com o MS Excel, MS Access, MS Powerpoint, MS Outlook, MS Word, e os demais itens da suíte MS  Office, que quer dizer que não possamos criar soluções gráficas mais primorosas e atrativas. 

Em alguns momentos isso significará deixarmos a nossa confortável suíte Office à espera, e darmos uma breve fugida ao ambiente de outras suítes para traduzirmos por lá, o que gostaríamos de implementar no Office.  Isso não traz prejuízo algum, antes, amplia a nossa compreensão de que devemos dar o melhor aos nossos clientes,e por fim a nós mesmos, quais desenvolvedores completos de soluções.

Alías, digo-lhes que qualquer bom observador tem percebido que o pessoal de Redmond tem se esmerado em deixar-nos mais livres na criação de gráficos e suas adaptações visuais para traduzirmos os nossos dados e conceitos, ilustrando melhor os nossos modelos conceituais de análise. Tenho a impressão que querem ajudar-nos a transcendermos os básicos gráficos de barras e linhas que utilizamos no piloto automático a tanto tempo.

Não tema, pergunte-se: Você acompanhará o salto do pessoal de Redmond, ou ficará mais alguns anos fazendo simples gráficos de barra e linha?

Sempre me perguntam sobre como é possível utilizar Infográficos ao invés dos batidos e renovados gráficos da suíte MS Office. Claro, isso exige algum estudo e prática. Precisamos desenvolver vários, um após o outro, sem medo de errar. O exercício contínuo aperfeiçoará o trabalho final.

Também já fui vitima de críticas, por exemplo, com respeito as cores que utilizo nos meus relatórios  e Dashboards. Obviamente o público que analisava os meus relatórios era retentor de uma profunda ignorância gráfica, não conheciam, por exemplo, os conceitos por detrás da teoria das cores.

Tais "críticos de cores" dividem-se basicamente em 2 grupos:

Profissionais desatualizados que não estão habituados a pensar fora da caixa, apesar de entoarem este mantra aos quatro ventos, sentem seguros por se manterem agarrados aos velhos modelos gráficos que conhecerem há muitos anos na época do Supercalc e do Lotus 123. Ei! Eu também estive por lá, e nem por isso criei um permafrost dentro da minha cabeça.



O outro grupo é daqueles jovens menos descolados, recém saídos das suas primeiras graduações. Manipulados anos e anos por cores nos videogames, sem se aperceberem disso, têm medo de implementar grafias diferentes devido a formatação que receberam nas instituições por onde passaram.

Quando estes dois grupos deparam-se com um projeto mais arrojado,  não conseguem aceitar nada diferente daquilo que os impressionou no passado. Você desenvolvedor, não se deixe intimidar.

Agora será portador de algum subsídio conceitual: Explique, ensine, eduque...

O que segue é uma coletânea com o intuito de servir-lhe de orientação para que possa desenvolver algum conteúdo de qualidade, lidando com as decisões comuns no que tange a escolher as ferramentas certas de trabalho.

Poderá aprender melhor a lidar com as cores, logotipos, papéis, tipografia, e espaço, entre muitos outros aspectos.

Este post tem o objetivo de torná-lo mais produtivo caso seja um designer gráfico freelancer, trabalhe em casa ou no escritório, ou seja um desenvolvedor VBA MS Office que precisa rever os conceitos no que diz respeito a dar atenção aos seus Relatórios e Dashboards.


Atalhos no Teclado para o Photoshop CS6











diHITT - Notícias