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

VBA Excel - Barra de Status Informativa - Info Status Bar


Podemos aumentar  a quantidade de visualizações sobre o que estamos fazendo, colocando detalhes na nossa Barra de Status do MS Excel. Chamaremos este exemplo de INFO STATUS BAR.

Antes de continuar, um pequeno parênteses, deixe seus comentários para este post. 

Como sempre fazemos, é bom lembrar que este exemplo de código serve para que possamos ampliar a nossa visão sobre como utilizar outras informações muito mais úteis do que estas na Barra de Status, fica o exemplo!

Ahhh, e faremos passo a passo para incluir os iniciantes.

Início
Já percebeu que ao selecionarmos um range de células, não conseguimos observar o range selecionado na  
'Name Box'? (Veja abaixo)


Tampouco, observamos este Range na Barra de Status.


PASSO 01
Com o intuito de inserirmos um código que possa demonstrar o que selecionamos, vá para o VBE (pressione Alt + F11), e então dê umduplo clique em 'EstaPasta_de_trabalho(ou 'ThisWorbook' se a sua versão do MS Office estiver em inglês).



PASSO 02
Ao lado direito, na área do editor, copie e cole o código abaixo:

Private Sub Workbook_SheetSelectionChange
(ByVal Sh As Object, ByVal Target As Range)
    ' Author                        Contact                        Place
    ' André Luiz Bernardes          bernardess@gmail.com          http://inanyplace.blogspot.com/
    ' Mostra as células que foram marcadas na barra de status.
    
    Dim cCell As Variant, i As Range
  
    For Each i In Selection.Areas
        Let cCell = cCell + CDec(i.Rows.Count) * i.Columns.Count
    Next

    Let Application.StatusBar = Replace(Selection.Address(0, 0) & " selecionadas (" & cCell & Left(" Célula(s)", 11 + (cCell = 1)) & ")", ",", ", ")
End Sub


PASSO 03
Agora quando selecionar qualquer parte da planilha, sempre observará algo similar a isso:


Muito bem, o exemplo acabou aqui. Mas lembre-se, este foi apenas uma aplicabilidade para a utilização da Barra de Status. Colocarei outras aplicações abaixo para que continue se exercitando:

Exemplo 01
Se você, no código VBA, desligou a atualização da tela, e seus códigos levarem algum tempo para processar, o usuário pode pensar que o computador parou de responder. Por isso, uma boa regra de programação é informar ao usuário sobre a evolução do processamento, exibindo [no mínimo] uma mensagem na Barra de Status na parte inferior da tela.

Sub StatusBarSample()
    Let Application.ScreenUpdating = False 
    ' Desliga a atualização da tela.
    
    ' Certifica-se de que a Barra de Status estará funcional.
    Let Application.DisplayStatusBar = True    
    Let Application.StatusBar = "Por favor, aguarde a execução da 1ª Parte..."

    ' No ponto abaixo, algum código é adicionado para o processamento.
    Application.Wait Now + TimeValue("00:00:02")
    Let Application.StatusBar = "Aguarde a execução da 2ª Parte..."
    
    ' Adicione algum código para o processamento da 2ª Fase.
    Application.Wait Now + TimeValue("00:00:02")
    Let Application.StatusBar = False 
End Sub

Exemplo 02
Você tem um processo que leva algum tempo para ser executado. Talvez uns 30 segundos, talvez 10 minutos. De qualquer forma você quer que o usuário saiba que a macro está sendo executado e em que parte do processe está:

Sub StatusBar()
    ' Author                        Contact                        Place
    ' André Luiz Bernardes          bernardess@gmail.com           http://inanyplace.blogspot.com/
    ' Efetua um contador.
         
    Dim x               As Integer
    Dim MyTimer         As Double
     
    Let Application.StatusBar = True
    
    ' Adapte este loop se for necessário.
    For x = 1 To 250
        Let MyTimer = Timer
        
        Do
        Loop While Timer - MyTimer < 0.03
         
        Application.StatusBar = "Progresso: " & x & " de 250: " & Format(x / 250, "Percent")
        
        DoEvents
    Next x
     
    Let Application.StatusBar = False
End Sub

Tags: Barra de Status, Bernardes, Excel, information, iniciantes, Microsoft, MS, Office, range, select, Status, Status Bar, VBA





VBA Tips - Evocando chamada ao Painel de Controle


Sei que há alguns posts atrás falei sobre como é rápido usarmos as funcionalidades das APIs dentro do VBA.

Controlling Windows Regional Settings From Vba
VBA controlling IE confirmation popup box
VBA to open control panel's "Internet Date & Time" applet
VBA: How To: Floating VBA Control Panel for Initialization
Panel Class
Controlling Windows Regional Settings from VBA
controlling IE using vba from within a worksheet additional info
Controlling external programs using vba
VBA controlling Acrobat Distiller


Agora, quero fazer uma abordagem distinta,  por usar o comendo SHELL.

Para chamar qualquer tela do Painel de Controle não precisamos necessariamente evocar uma API

'Para chamar a tela principal do Painel de Controle:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL", vbNormalFocus)

'Para chamar a tela Adicionar ou Remover Programas:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1", vbNormalFocus)

'Para chamar a tela Adicionar ou Remover Programas, na aba
'Instalao do Windows:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2", vbNormalFocus)

'Para chamar a tela Adicionar ou Remover Programas, na aba
'Disco de Inicializao:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,3", vbNormalFocus)

'Para chamar a tela Vdeo, na aba Segundo Plano:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0", vbNormalFocus)

'Para chamar a tela Vdeo, na aba Proteo de Tela:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1", vbNormalFocus)

'Para chamar a tela Vdeo, na aba Aparncia:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2", vbNormalFocus)

'Para chamar a tela Vdeo, na aba Configurao:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3", vbNormalFocus)

'Para chamar a tela Configuraes Regionais, na aba
'Configuraes Regionais:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0", vbNormalFocus)

'Para chamar a tela Configuraes Regionais, na aba
'Nmero:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,1", vbNormalFocus)

'Para chamar a tela Configuraes Regionais, na aba 
'Moeda:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,2", vbNormalFocus)

'Para chamar a tela Configuraes Regionais, na aba'Hora:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3", vbNormalFocus)

'Para chamar a tela Configuraes Regionais, na aba'Data:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,4", vbNormalFocus)

'Para chamar a tela Joystick:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL joy.cpl", vbNormalFocus)

'Para chamar a tela Mouse:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL main.cpl @0", vbNormalFocus)

'Para chamar a tela Teclado:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL main.cpl @1", vbNormalFocus)

'Para chamar a tela Impressoras:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL main.cpl @2", vbNormalFocus)

'Para chamar a tela Fontes:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL main.cpl @3", vbNormalFocus)

'Para chamar a tela Mail e Fax:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL mlcfg32.cpl", vbNormalFocus)

'Para chamar a tela Multimdia, na aba Audio:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0", vbNormalFocus)

'Para chamar a tela Multimdia, na aba Vdeo:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,1", vbNormalFocus)

'Para chamar a tela Multimdia, na aba MIDI:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,2", vbNormalFocus)

'Para chamar a tela Multimdia, na aba Msica de CD:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,3", vbNormalFocus)

'Para chamar a tela Multimdia, na aba Dispositivos:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,4", vbNormalFocus)

'Para chamar a tela Som:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1", vbNormalFocus)

'Para chamar a tela Modem:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL modem.cpl", vbNormalFocus)

'Para chamar a tela Rede:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl", vbNormalFocus)

'Para chamar a tela Senhas:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL password.cpl", vbNormalFocus)

'Para chamar a tela Sistema, na aba Geral:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0", vbNormalFocus)

'Para chamar a tela Sistema, na aba Gerenciador'de Dispositivos:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1", vbNormalFocus)

'Para chamar a tela Sistema, na aba Perfis deHardware:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,2", vbNormalFocus)

'Para chamar a tela Sistema, na aba Performance:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,3", vbNormalFocus)

'Para chamar a tela Opes de Acessibilidade, na aba'Teclado:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1", vbNormalFocus)

'Para chamar a tela Opes de Acessibilidade, na aba'Som:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2", vbNormalFocus)

'Para chamar a tela Opes de Acessibilidade, na aba'Vdeo:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3", vbNormalFocus)

'Para chamar a tela Opções de Acessibilidade, na aba'Mouse:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4", vbNormalFocus)

'Para chamar a tela Opes de Acessibilidade, na aba'Geral:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5", vbNormalFocus)

'Para chamar a tela do Assistente (Adicionar novo'Hardware):
Call Shell("rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1", vbNormalFocus)

'Para chamar a tela Data e Hora:
Call Shell("rundll32.exe shell32.dll,Control_RunDLL timedate.cpl", vbNormalFocus)

'Para chamar a tela DiskCopy:
Call Shell("rundll32 diskcopy.dll,DiskCopyRunDll", vbNormalFocus)



Reference: 
Tags: Bernardes, VBA, Office, SHELL, API, rundll32.exe, Painel de Controle, Control Painel,



DEFINIÇÃO: Dashboard & Scorecard

Dashboard e Scorecards

A utilização de Dashboards e Scorecards, dentre outros tipos de relatórios, precisam de alguns conceitos solidamente embasados para que administremos as expectativas as quais estes terão a responsabilidade de atender.

O que esperar?

Quando buscamos informações geralmente desejamos que estas estejam acompanhadas de três imprescindíveis características: Rápidas, Exatas, e Dinâmicas, explico:


Rápidas: Não queremos consultar uma informação e perder longos minutos aguardando o retorno do resultado. Aprendemos muito com o Google e outros searchs do mercado. A construção das queries precisam ser muito bem modeladas para que o usuário tenha o seu resultado em tempo hábil.

Exatas: Um comitê assegurará e validará todas as parametrizações simuláveis disponíveis no nosso modelo de análise. Além disso as visões disponibilizadas serão informações resultantes de um consenso interdepartamental colegiado pelo comitê responsável.

Dinâmicas: A interface deve ser fácil e simples de utilizar. O acesso as informações não deve depender de nenhuma pessoa especializada. Parametrizações também devem estar claramente expostas para permitir adequações tais como de: periodicidade, cenário, conceito, etc.

Em que base serão construídos?

Tanto os Dashboards como os Scorecards devem demonstrar total aderência as características descritas acima. De modo clássico, a utilização destes 2 modelos de 'relatórios' têm sido a de servir informações e não apenas dados inexpressivos.

Os executivos geralmente têm necessidade constante de acompanhar a dinamicidade do seu modelo de negócio. Suas análises precisam estar dispostas em interfaces intuitivas, o que inclui unir as visões: Estratégica, Financeira e em alguns casos, Operacional, num mesmo cockpit de análise.

Inúmeros ERPs, SCMs, ou mesmo CRMs, oferecem plataformas sensacionais que agilizam enormemente as necessidades transacionais do dia-a-dia. Tais produtos contém ambientes de reporting, que combinam extratores de dados com a exportação de algumas análises simples para planilhas eletrônicas. Mas realmente muito pouco destes têm soluções maduras para análise. Têm sim, produtos que dizem fazer isso, mas os analistas não desejam apenas produtos, mas soluções.

Como será a base de dados na qual serão conectados?

As análises dispostas nos Dashboards e Scorecards necessitam impreterivelmente de um repositório inteligente de informações e não apenas terem conexões a um amontoado de dados sem quaisquer convenções e consenso nas regras de negócio.

A definição conceitual das informações precisam refletir o 'aceite' dos diversos departamentos da empresa.

Os KPIs dispostos neles precisam estar fundamentados em conceitos discutidos e validados previamente.

O Business Intelligence, fonte das nossas interfaces de análise, é composto por decisões conceituais colegiadas por um grupo que representa todas as áreas usuárias. Este grupo independente tem suas ações pautadas nos conceitos do seu modelo de negócio, além de estarem alinhadas com a estratégia da sua companhia.


É necessário fazer compreender que os Dashboards bem como os Scorecards devem ser utilizados como gateways em análises avançadas de primeira ordem. Após a conexão das interfaces às suas respectivas bases de dados, diversos métodos de gerenciamento de desempenho serão implementados:

KPIs: Estes precisam constantemente ser avaliados quanto a sua validade e aplicabilidade. Especialmente se o modelo de negócio for tão dinâmico que esteja constantemente em mutação. Os KPIs devem acompanhar tais mudanças para que continuem sendo eficazes em seus apontamentos.

Metas da empresa: Os KPIs devem estar estreitamente conectados às metas da empresa, deve-se ficar atento quanto as mudanças de metas e subseqüentes reajustes dos mesmos.

Visibilidade dos Relatórios: Estabelecer os Dashboards e Scorecards em cascatas através de toda a organização, na sua cadeia de valores. Promover o compartilhamento de análises snapshot realizadas nos Dashboards e Scorecards via e-mail ou publicação na intranet e internet.

Ampliação do repositório de dados: Incorporar paulatina e constantemente todos os dados empresariais – financeiro, operacional, logístico, contábil, e estratégico. Integrar filiais e congêneres. A abrangência ideal deve considerar todas as partes comprometidas com as práticas de governança corporativa executadas pela companhia.

Convencionando definições

§ Os Dashboards fornecem uma representação ilustrada do desempenho dos negócios em toda a organização.

§ Dashboards e Scorecards em Cascata são entregues em todas as áreas funcionais da organização.

§ Os Scorecards fornecem uma representação visual dos indicadores chave de desempenho (KPIs), os quais são cuidadosamente selecionados, ajudando a medí-los e gerenciá-los.

§ A onipresença dos Dashboards e Scorecards assegura que inúmeros usuários possam, com segurança, ter acesso aos relatórios que necessitem em qualquer parte e momento, utilizando qualquer plataforma.

§ A personalização automática do conteúdo dos Dashboards e Scorecards é um recurso importante que requererá uma arquitetura robusta na plataforma de dados estabelecida, e esta se tornará garantidora do acesso às informações.

§ Os Relatórios de Métrica Gerenciada constituem a base do CPM (Corporate Performance Management), permitindo que os gerentes monitorem continuamente o desempenho dos negócios.

Utilizando o Microsoft Office como interface dos Dashboards e Scorecards:

Uma definição simples para os Dashboards e Scorecards seria a representação (sobretudo) gráfica de um conjunto de indicadores organizacionais. Estas devem ser apresentadas não mais nas telas de computadores pessoais sobre as mesas dos colaboradores, mas em TVs de LCD dispostas em áreas acessíveis e nos corredores dos departamentos, as quais permitiriam, de forma imediata, o monitoramento dos resultados e processos sob observação.

É importante pontuar que a definição acima não diz que os Dashboards e Scorecards necessitem ser modelados em ferramentas proprietárias e complexas, onerando demasiadamente o comitê responsável pela manutenção destes.

Pessoalmente desenvolvo e defendo o estabelecimento das diversas vantagens e motivos, para que as organizações de todos os portes, bem como seus respectivos departamentos, utilizem extensivamente planilhas como o MS Excel, ou bases de dados como as do MS Access para implementar seus Dashboards e Scorecards. Para aprofundar um pouco mais minha defesa sugiro ainda alguns outros tópicos para reflexão.

CIDs (Colaboradores Internos Dedicados) — As soluções desenvolvidas com as ferramentas contidas no MS Office mantém o conhecimento do negócio sob os olhares atentos dos seus CIDs, desenvolvedores locais departamentais, a quem o departamento de TI deve constantemente manter atualizados e paparicados. Estes empenham-se diariamente para que as dinâmicas e intrínsecas análises necessárias nos seus departamentos não fiquem descoladas das regras de negócio, as quais trazem um enorme peso de responsabilidade quando gerido pela área de TI, muitas vezes sem a necessária vivência sob a faceta específica do departamento dentro do modelo de negócio analisado. Os CIDs não devem ser execrados por TI, antes devem aproximar-se deles, ministrando-lhes treinamento quanto a documentação para que suas ferramentas possam suavemente migrar para soluções corporativas com ampla visibilidade, adequação e usabilidade. TI deve sim, abrir mão de uma consultoria externa que vende um produto proprietário e que a posteriori seja paga especificamente para ordenar, agrupar ou inserir uma nova coluna ou um novo filtro ou nova visão em um dos cenários disponíveis nos Dashboards e Scorecards vendidos [ou alugados].

Custos — Se lhe perguntarem qual é o sistema mais utilizado em todo o mundo, qual seria a sua resposta? Um ERP, um Banco de Dados? Qual? Sem qualquer receio ou medo de errar lhes diria que depois do MS Windows as planilhas eletrônicas são as campeãs. Aplicações espetaculares são desenvolvidas com elas e sua segurança, confiabilidade e disponibilidade são amplificadas a cada nova versão disponível. A Microsoft permitiu que sua arquitetura avançasse ao ponto de compartilharmos o conteúdo delas nas nuvens, e automatizarmos a sua exportação para apresentações sem perder horas formatando o MS Powerpoint. Temos a possibilidade de enviar análises em massa por e-mail ou publicá-las na intranet, acomodando nossas análises também 'nas nuvens'. Quanto isso custa? Um pouco de conhecimento, o MS Excel, o MS Sharepoint, e o MS Powerpoint. Debaixo desse modelo modesto, pessoalmente já desenvolvi inúmeras soluções para empresas de todos os portes, criando Cockpits repletos de Dashboards e Scorecards associados a alguns Datawarehouses e BIs. Qual o custo em software que as empresas envolvidas tiveram? Apenas o custo das minhas horas trabalhadas, pois todos os demais recursos estavam disponíveis in house. Não precisaram preocupar-se com os custos envolvendo licenças, manutenção, instalação ou treinamento específico. Lidar com a suíte do MS Office já é pré-requisito de contratação em várias das companhias por onde passei. Nelas encontrei diversos CIDs dispostos a ampliar a semente que estava plantando em seus departamentos. Quero deixar bem claro que tais aplicações são sementes que podem ser adubadas e compreendidas tornando-se frondosas aplicações corporativas, ao invés de serem tratadas como ervas daninhas.

Manutenção — Como a suíte MS Office já existe há muito tempo, vários CIDs tornaram-se hábeis programadores VBA. Criaram e desenvolveram excelentes soluções para o dia-a-dia das corporações. São profissionais de fácil acesso no mercado, além do fato de que a codificação VBA é de domínio de muitos Analistas e Programadores no mercado.

Prazos — Criar Dashboards e Scorecards com a suíte MS Office é muito mais rápido do que com as outras soluções comerciais mais pesadas. E melhor, não são soluções proprietárias, não exigem custos adicionais para adequar as cores, e não prescindem de uma disponibilidade no budget. Os prazos prendem-se única e exclusivamente ao tempo de desenvolvimento, passando por cima de todos os trâmites de aprovação.

Flexibilidade do Layout — Não existem limitações significativas quanto ao que se pode disponibilizar como interface, ao contrário das estruturas impostas por outras aplicações comerciais.

Flexibilidade dos Objetivos — Sempre será possível desenvolver Dashboards e Scorecards para um grande leque de necessidades em toda a organização

Interface Flexível — Vários BIs comerciais já compreenderam que não necessitam re-inventar a roda. Não raro suas interfaces finais são cubos OLAP descarregados no ambiente MS Excel a partir de onde podem fazer qualquer coisa com os dados, moldando as informações (através de Dashboards e Scorecards), de modo a atender as inúmeras necessidades da corporação.

Ambiente familiar — O MS Excel, por exemplo, é uma aplicação conhecida pela maioria absoluta dos usuários nas empresas, os quais não serão retirados da sua zona de conforto ao utilizar soluções em tal ambiente.

Total integração com outras aplicações Office — Certas tarefas, como copiar gráficos dos Dashboards e Scorecards para uma apresentação MS PowerPoint, não necessitarão de um treinamento adicional, porque já fazem parte da rotina dos usuários.

Acesso Off-line — Ao contrário de outras aplicações, que por natureza têm um acesso online (intranet ou rede da organização), um Dashboards ou Scorecards em MS Excel pode em geral ser utilizado no modo Offline copiando o arquivo para um disco local ou pendrive.

Melhores gráficos — Excetuando-se os softwares desenvolvidos especificamente para isso, custa-me lembrar outra aplicação que tenha uma gama tão abrangente de objetos gráficos como o MS Excel. Nas demais soluções proprietárias nunca poderemos exportar os objetos gráficos com tanta facilidade e rapidez quanto fazemos com a suíte do MS Office.

Espero que estas reflexões o tenham ajudado a vislumbrar as soluções que o aguardam, além de lhe aguçar o olhar para aquele CID presente no seu departamento e para o qual ainda não tinha atentado como parte indispensável para alcançar os seus sonhos quanto a obter informações rápidas, dinâmicas e exatas.

Tags: TI, Tecnologia da Informação, Dashboard, Scorecard, YTD, YTG, KPI, sparklines, charts, Pivot Table, slicers, bullet, Scroll chart, gráfico, mini-gráfico, termômetro, Velocímetro, Gauge, relatório, MS, Microsoft, Office, Excel, Access, Outlook, Powerpoint, Organização, Ordenação, Formatação, numérico, projeto, ranqueado, painel, evolução, clustering, redes neurais, métodos genéticos, mineração em textos, roll up, drill down, KPI, KPIs, Key performance Indicator, escopo, stakeholder, indicadores, DW, Data Warehousing, BSM, Business Scorecard Manager, BSC, Balanced Scorecard, Dashboard, características, infochart, chart, infográfico, gráfico, drugs, drogas, Ilegal, Americas, Pharma, Malaria, Malária, farmacêutica, análise, Data Mining Tweeder, The Health Tweeder, algoritmo, data mining, Mineração de Dados, colaborativa, rede social, social mídia, community, facebook, like, friendwheel, google play, health tweeder, infographic, keyword, like button, likebutton.me, mentionmap, MSNBC spectra, network,news feed, rss, search, topics, touchgraph, twitter, twitter venn, dólar, Real, superimposição, finanças, financeiro, contábil, contabilidade, crédito, débito




André Luiz Bernardes
A&A® - Work smart, not hard.

VBA - Função Format e exemplos.

Eu sei, eu sei, isso é superfácil todo mundo sabe, não precisa ser um post. Mas a verdade indica que muita gente ainda não domina a utilização da função Format. Esta retorna uma Variant (String) que contém uma expressão formatada segundo instruções contidas em uma expressão de formato: Sintaxe: Format (expression[, format[, firstdayofweek[, firstweekofyear]]])

Expression - Obrigatória. Qualquer expressão válida.

Format - Opcional. Uma expressão de formato válida nomeada ou definida pelo usuário.

Firstdayofweek - Opcional. Uma constante que especifica o primeiro dia da semana.

firstweekofyear - Opcional. Uma constante que especifica a primeira semana do ano.

O argumento firstdayofweek tem as seguintes configurações:

CONSTANTE VALOR DESCRIÇÃO
vbUseSystem 0 Use a configuração NLS API.
VbSunday 1 Domingo (padrão)
vbMonday 2 Segunda-feira
vbTuesday 3 Terça-feira
vbWednesday 4 Quarta-feira
vbThursday 5 Quinta-feira
vbFriday 6 Sexta-feira
vbSaturday 7 Sábado

O argumento firstweekofyear tem as seguintes configurações:

CONSTANTE VAL DESCRIÇÃO
vbUseSystem 0 Use a configuração NLS API.
vbFirstJan1 1 Inicie com a semana na qual ocorre o dia 1º de janeiro (padrão).
vbFirstFourDays 2 Inicie com a primeira semana que tem pelo menos 4 dias no ano.
vbFirstFullWeek 3 Inicie com a primeira semana completa do ano.

Estes exemplos mostram os diversos usos da função Format para formatar valores, usando formatos nomeados e formatos definidos pelo usuário. Para o separador de data (/), separador de hora (:) e literal AM/ PM, o resultado real formatado, exibido pelo sistema, dependerá das configurações da localidade em que o código estiver executado. Ao exibir datas e horas no ambiente de desenvolvimento, serão usados os formatos de hora e data abreviados da localidade do código. Quando exibidas pelo código em execução, serão usados os formatos de hora e data abreviados da localidade do sistema, que podem ser diferentes da localidade do código. No exemplo abaixo, considera-se o inglês dos EUA.

MyTime e MyDate serão exibidas no ambiente de desenvolvimento, usando as configurações de hora e data abreviadas do sistema atual.

Exemplos

Dim MyTime, MyDate, MyStr
Let MyTime = #17:04:23#
Let MyTime = #17:04:23#
Let MyTime = #17:04:23#
' Retorna a hora atual do sistema no formato longo de hora definido pelo sistema.
Let MyDate = #Februry 05, 2010#
 ' Retorna a hora atual do sistema no formato longo de hora definido pelo sistema.
Let MyStr = Format (Time, "Hora longa")
' Retorna a data do sistema atual no formato longo de data definido pelo sistema.
Let MyStr = Format (Date, "Data longa") Let MyStr = Format (MyTime, "h:m:s") ' Retorna "17:4:23". Let MyStr = Format (MyTime, "hh:mm:ss AMPM") ' Retorna "05:04:23 PM". Let MyStr = Format (MyDate, "dddd, mmm d yyyy") ' Retorna "Quarta-feira,
Jan 27 1993".
Se o formato não for especificado, retornará uma seqüência de caracteres
Let MyStr = Format (23) ' Retorna "23".
Formatos definidos pelo usuário.
Let MyStr = Format (5459.4, "##,##0.00") ' Retorna "5.459,40". Let MyStr = Format (334.9, "###0.00") ' Retorna "334,90". Let MyStr = Format (5, "0.00%") ' Retorna "500,00%". Let MyStr = Format ("OLÁ", "<") ' Retorna "olá". Let MyStr = Format ("Isto é tudo", ">") ' Retorna "ISTO É TUDO".


Fonte: Ajuda do MS Excel 2007

André Luiz Bernardes
A&A® - Work smart, not hard.

eBooks VBA na AMAZOM.com.br

LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...

Vitrine