Jump to content
Fórum Script Brasil

André Luiz Bernardes

Membros
  • Content Count

    15
  • Joined

  • Last visited

Community Reputation

0 Neutro

About André Luiz Bernardes

  • Birthday 02/05/1972

Perfil

  • Gender
    Male
  • Location
    Santos, SP , Brasil

Recent Profile Visitors

2110 profile views
  1. Além das últimas atividades exercidas descritas acima, desenvolveu também projetos em outros modelos de negócio, tais como: Financeiro, Compras - Material Management, Logística, Mobility, Comercial - Sales and Distribution, Report Area.

    Experiência na implantação de ERPs - Enterprise Ressource Planning: SAP R/3, Peoplesoft, e BAAN.

    Implementou inúmeras aplicações de interação

  2. Ligação Tardia / Late binding A ligação entre a variável do objeto e o objeto ocorre no momento da execução do aplicativo. Isso resulta em um desempenho mais lento em comparação com quando a vinculação ocorre quando o aplicativo é compilado (ligação antecipada). Se não adicionar uma referência para o objectlibrary pertencentes ao aplicativo "estrangeiro" no qual precisa declarar as variáveis objeto geral (por exemplo, Dim oDoc As Object). Isto irá tornar mais difícil para o programa o "estrangeiro-objetos", já que o VBE não irá exibir a mesma programação de ajuda sobre as propriedades, métodos e eventos que ele exibe para os objetos pertencentes ao aplicativo que estiver trabalhando. Este é um exemplo de código geral: Sub OLEAutomationLateBinding() ' replace xxx with one of the following: ' Access, Excel, Outlook, PowerPoint or Word Dim oApp As Object ' late binding Dim oDoc As Object ' late binding On Error Resume Next ' ignore errors Set oApp = GetObject(, "xxx.Application") ' reference an existing application instance If oApp Is Nothing Then ' no existing application is running Set oApp = CreateObject("xxx.Application") ' create a new application instance End If On Error GoTo 0 ' resume normal error handling If oApp Is Nothing Then ' not able to create the application MsgBox "The application is not available!", vbExclamation End If With oApp .Visible = True ' make the application object visible ' at this point the application is visible ' do something depending on the application... Set oDoc = .Documents.Open("c:\foldername\filename.doc") ' open a document ' ... oDoc.Close True ' close and save the document .Quit ' close the application End With Set oDoc = Nothing ' free memory Set oApp = Nothing ' free memory End Sub
  3. Quando desejar usar as funcionalidades de outros aplicativos precisará criar uma ligação a estes. Ligação inicial / Early binding A ligação entre a variável do objeto e o objeto ocorre no momento em que o aplicativo é compilado. Resultará numa melhor performance. Se quiser criar uma ligação inicial precisará definí-la como uma referência à biblioteca de objetos que deseja usar antes da execução desta. Isso é feito a partir do VBE usando o menu Ferramentas (por exemplo oDoc Dim Word.Document). Isso também irá tornar o programa mais fácil para os objetos "estrangeiros", pois o VBE irá exibir a mesma programação de ajuda como propriedades, métodos e eventos onde mostra os objetos pertencentes ao aplicativo que está trabalhando. Este é um exemplo de código em geral: Sub OLEAutomationEarlyBinding() ' replace xxx with one of the following: ' Access, Excel, Outlook, PowerPoint or Word Dim oApp As xxx.Application ' early binding Dim oDoc As xxx.Document ' Excel.Workbook, Outlook.MailItem, PowerPoint.Presentation, Word.Document On Error Resume Next ' ignore errors Set oApp = GetObject(, "xxx.Application") ' reference an existing application instance If oApp Is Nothing Then ' no existing application is running Set oApp = New xxx.Application ' create a new application instance End If On Error GoTo 0 ' resume normal error handling If oApp Is Nothing Then ' not able to create the application MsgBox "The application is not available!", vbExclamation End If With oApp .Visible = True ' make the application object visible ' at this point the application is visible ' do something depending on the application... Set oDoc = .Documents.Open("c:\foldername\filename.doc") ' open a document ' ... oDoc.Close True ' close and save the document .Quit ' close the application End With Set oDoc = Nothing ' free memory Set oApp = Nothing ' free memory End Sub
  4. Talvez deseje executar código em um aplicativo do MS Office que trabalhe com os objetos de um outro aplicativo. É importantíssimo definir uma referência à biblioteca de tipos do outro aplicativo na caixa de diálogo Referências (menu Ferramentas). Logo após, os objetos, propriedades e métodos ficarão disponíveis no pesquisador de objetos e a sintaxe será verificada durante a compilação, além de pode obter ajuda contextual. Declare as variáveis de objeto que se referirem aos objetos de outro aplicativo com tipos específicos. Certifique-se de qualificar cada tipo com o nome do aplicativo que está fornecendo o objeto. Por exemplo, abaixo a instrução declara uma variável que apontará para um documento do MS Word e uma outra que se referirá a uma pasta de trabalho do MS Excel: Dim appWD As Word.Application, wbXL As Excel.Workbook Obs: Precisa seguir os passos anteriores se desejar que seu código seja de acoplamento antecipado. Use também a função CreateObject com Identificadores de programação OLE do objeto do outro aplicativo com o qual você deseja trabalhar. Caso deseje visualizar a sessão do outro aplicativo, defina a propriedade Visible como True. Dim appWD As Word.Application Set appWD = CreateObject("Word.Application") appWd.Visible = True Aplique propriedades e métodos ao objeto contido na variável. [code]Dim appWD As Word.Application Set appWD = CreateObject("Word.Application") appWD.Documents.Add Ao terminar o trabalho com o outro aplicativo, use o método Quit para fechá-lo appWd.Quit
  5. Talvez tenha encontrado alguns códigos na internet que são necessários para o que precisa fazer. Mas como usá-lo? Primeiro você precisa abrir o Editor de VBA pressionando Alt + F11. Expanda Microsoft Outlook Objects Dê um duplo clique sobre ThisOutlookSession para abri-lo no painel de edição do lado direito. Cole o código de 'exemplo' em ThisOutlookSession. Pressione F5 ou o botão Executar para executar a macro. (É altamente recomendável que você faça um backup das pastas ou armazene as mensagens antes de executar as macros.) Também precisará alterar a segurança de macros.
  6. Sub CreateMailInExcelEarlyBound() Dim olApp As Outlook.Application Dim Msg As Outlook.MailItem Set olApp = New Outlook.Application Set Msg = olApp.CreateItem(olMailItem) Msg.Display Set Msg = Nothing Set olApp = Nothing End Sub Outra técnica: Sub CreateMailInExcelLateBound() Dim olApp As Object Dim Msg As Object Set olApp = CreateObject("Outlook.Application") Set Msg = olApp.CreateItem(0) Msg.Display Set Msg = Nothing Set olApp = Nothing End Sub
  7. Obter a senha de um formulário do MS Outlook é algo simples, quase trivial (na maioria das vezes), porque o objeto FormDescription, contém informações fundamentais sobre o Form, incluindo a propriedade SENHA. O código VBA para o MS Outlook a seguir mostra o valor da propriedade SENHA numa caixa de mensagem. Sub GetFormPassword() Dim objApp As Application Dim objInsp As Inspector Dim objFD As FormDescription Set objApp = CreateObject("Outlook.Application") Set objInsp = objApp.ActiveInspector If Not objInsp Is Nothing Then Set objFD = objInsp.CurrentItem.FormDescription MsgBox _ Prompt:="A senha para o " & _ Chr(34) & objFD.MessageClass & _ Chr(34) & " formulário é:" & _ vbCrLf & vbCrLf & objFD.Password, _ Title:=".: Recuperando a SENHA" Else MsgBox _ Prompt:="Por favor, abra um item utilizando " & _ "o formulário desejado " & _ "execute o código 'GetFormPassword'.", _ Title:=".: Recuperando a SENHA" End If Set objFD = Nothing Set objNS = Nothing Set objApp = Nothing End Sub
  8. Quando criamos aplicações de automação com o MS Access não é raro precisarmos efetuar conexões em diversas bases de dados como: planilhas MS Excel, arquivos Texto, ou outras tabelas MS Access, sites da Web, etc... Essas conexões geralmente precisam ser refeitas e/ou excluídas. Como fazê-lo? Demonstro abaixo, parte de códigos com variantes para aplicar ao seu gosto...Boa diversão! Esta primeira função é muito rápida, ela checa se o objeto que desejamos excluir está disponível para deleção: Function CheckExistTbl(tblName As String) As Integer ' Author: Date: Contact: URL: ' André Bernardes 09/11/2010 09:45 [email protected] https://sites.google.com/site/vbabernardes/ ' Application: ' Detecta a tabela e a deleta. Dim i As Integer ' Counter. Let CheckExistTbl = False For i = 0 To CurrentData.AllTables.Count - 1 If CurrentData.AllTables(i).Name = tblName Then Let CheckExistTbl = True End If Next i End Function Por exemplo: If CheckExistTbl(strConectionTbl01) Then DoCmd.DeleteObject acTable, strConectionnTbl01 Endif Abaixo demonstro uma das inúmeras técnicas para se conectar dados à sua aplicação MS Access, neste caso efetuo conexões a outras bases MS Access. Function ConectAll(nBase As String, strConection As String) ' Author: Date: Contact: URL: ' André Bernardes 09/11/2010 09:31 [email protected] https://sites.google.com/site/vbabernardes/ ' Application: ' Efetua as conexões. Dim dbsTemp As Database Dim strMenu As String Dim strInput As String Dim nTbl01 As String Dim nTbl02 As String Dim nTbl03 As String ' Tabelas nTbl01 = "tbl_01x" nTbl02 = "tbl_02y" nTbl03 = "tbl_03k" Set dbsTemp = CurrentDb ' Deleta os objetos pré-existentes. If CheckExistTbl(strConection & nTbl01) Then Call Banner("Desconectando tabela:" & strConection & nTbl01) DoCmd.DeleteObject acTable, strConection & nTbl01 Call Banner("Desconectando tabela:" & strConection & nTbl02) DoCmd.DeleteObject acTable, strConection & nTbl02 Call Banner("Desconectando tabela:" & strConection & nTbl03) DoCmd.DeleteObject acTable, strConection & nTbl03 End If ' Conecta o grupo de tabelas respectivas ao mês de análise. Call Banner("Conectando a tabela: " & strConection & nTbl01) ConnectOutput dbsTemp, strConection & nTbl01, ";DATABASE=" & nBase, nTbl01 Call Banner("Conectando a tabela: " & strConection & nTbl02) ConnectOutput dbsTemp, strConection & nTbl02, ";DATABASE=" & nBase, nTbl02 Call Banner("Conectando a tabela: " & strConection & nTbl03) ConnectOutput dbsTemp, strConection & nTbl03, ";DATABASE=" & nBase, nTbl03 End Function Perceba no código acima a utilização das funções explanadas anteriormente. Abaixo observaremos a simples e suave conexão da fonte de dados com o banco de dados atual: Sub ConnectOutput(dbsTmp As Database, strTbl As String, strConnect As String, strSourceTbl As String) ' Author: Date: Contact: URL: ' André Bernardes 09/11/2010 08:01 [email protected] https://sites.google.com/site/vbabernardes/ ' Application: ' Efetua as conexões. Dim tblLinked As TableDef Set tblLinked = dbsTmp.CreateTableDef(strTbl) Let tblLinked.Connect = strConnect Let tblLinked.SourceTableName = strSourceTbl dbsTmp.TableDefs.Append tblLinked End Sub Outra técnica também eficiente, seria utilizar o código abaixo: Dim d_b As Database On Error GoTo ProcessingErrorMsg: Set d_b = CurrentDb() d_b.TableDefs.Delete "tbl_Bernardes" Exit Sub ProcessingErrorMsg: Select Case Err.Number Case 3265 'Table Resume Next Case Else MsgBox Err.Number & " - Descrição: " & Err.Description, vbExclamation, Err.Source End Select Veja também: Meus Blogs https://sites.google.com/site/vbabernardes/blogs BRAZIL MICROSOFT ACCESS DEVELOPER VBA Access - Removendo campos http://brzaccessdeveloper.blogspot.com/200...ndo-campos.html Função para saber se existe http://inanyplace.blogspot.com/2009/11/vba...-se-existe.html
  9. Function TiraAcento(Palavra) CAcento = "àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ" SAcento = "aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN" Texto = "" if Palavra <> "" then For X = 1 to Len(Palavra) Letra = mid(Palavra,X,1) Pos_Acento = inStr(CAcento,Letra) if Pos_Acento > 0 then Letra = mid(SAcento,Pos_Acento,1) end if Texto = Texto & Letra next TiraAcento = Texto end if end function RESTANTE DO CÓDIGO Blog Office VBA | http://inanyplace.blogspot.com/ Blog Excel | http://brzexceldeveloper.blogspot.com/ Blog Access | http://brzaccessdeveloper.blogspot.com/ André Luiz Bernardes A&A - WORK, DON´T PLAY! http://al-bernardes.sites.uol.com.br/ [email protected] Twitter: @officespecialis @brzexceldevelop @brzaccessdevel
  10. Saiba mais INTRODUÇÃO Tratado inicialmente (1992) como um sistema de medição de desempenho baseado em indicadores, o Balanced Scorecard evoluiu e hoje é possível afirmar que se trata de uma ferramenta de gestão que organiza, de forma lógica e objetiva, os conceitos e as idéias preexistentes sobre gestão da estratégia. O Balanced Scorecard (BSC) é a forma de planejar e controlar empresas unindo a rápida implantação com controles eficientes. Isso tornou mais eficiente a administração de empresas, em níveis antes impossíveis de ser alcançados. É um sistema integrado de gestão e implementação da Estratégia da Empresa e seu propósito é "... traduzir a missão e a Estratégia das empresas em um conjunto abrangente de medidas de desempenho que serve de base para um sistema de medição e gestão estratégica", conforme definido pelo criador, Prof. Robert Kaplan da Harvard Business School. Talvez o Balanced Scorecard não tenha sido originado a partir dos conceitos da administração estratégica. Seu surgimento está relacionado às limitações dos sistemas tradicionais de avaliação de desempenho, o que não deixa de ser um dos problemas do planejamento estratégico apontados por Ansoff. Entretanto, conforme sua evolução e uso, o instrumento tornou-se uma importante ferramenta de gestão estratégica. Mais que um exercício de medição, o BSC motiva melhorias não incrementais em áreas críticas, como desenvolvimento de produtos, processos, clientes e mercados. O Balanced Scorecard é uma ferramenta que materializa a visão e a estratégia da empresa por meio de um mapa coerente com objetivos e medidas de desempenho, organizados segundo quatro perspectivas diferentes: financeira, do cliente, dos processos internos e do aprendizado e crescimento. Tais medidas devem ser interligadas para comunicar um pequeno número de temas estratégicos amplos, como o crescimento da empresa, a redução de riscos ou o aumento de produtividade.
  11. Mais detalhes... INTRODUÇÃO O Management Information System (MIS) é um Sistema de Informação Gerencial, utilizado por toda a organização. É o sistema que consiste na rede de canais de comunicação da organização. É composto por todos os componentes que recolhem, manipulam e disseminam as informações. Incluem-se hardware, software, pessoas, sistemas de telecomunicação, e os dados propriamente ditos. As atividades envolvidas no MIS incluem a introdução de dados, processamento dos dados em informação, armazenamento de ambos, e a produção de resultados, como relatórios de gestão.
  12. Saiba mais... INTRODUÇÃO O Visual Basic for Applications (VBA) é uma implementação do Visual Basic da Microsoft incorporada em todos os programas da suíte Microsoft Office. Além dessa outros produtos da Microsoft também apropriaram-se da linguagem devido a flexibilidade e abrangência que essa estendia. Com o tempo programas de terceiros (AutoCAD, Mathcad e WordPerfect) incorporaram por completo ou parcialmente. O Visual Basic for Applications substituiu e ampliou a capacidade das linguagens anteriormente disponíveis como programação de macro, as quais além de serem proprietárias, não eram completas. O Visual Basic for Applications é usado para controlar todos os aspectos da aplicação anfitriã. entre estes estão: - A manipulação da interface da aplicação - Alteração e criação de Menus e Barra de ferramentas - Desenvolvimento de interface (Formulários) pelo programador - Manipulação de objetos da aplicação - Extração e tratamento de dados de outras aplicações, bancos de dados, Data Warehouse, BI, Cubos OLAP, ROLAP, Acesso via ODBC, etc... ABRANGÊNCIA Conforme sugerido pelo nome, Visual Basic for Applications, o VBA apesar de similar ao Visual Basic só funciona a partir de um dos programas da suíte MS Office ou outros produtos que adquiriram tal funcionalidade. O código desenvolvido só "roda" dentro da aplicação, não sendo possível a execução a parte da aplicação. A melhor das características é a possibilidade de manipulação das aplicações usando o DDE (Intercâmbio Dinâmico de Dados [Dynamic Data Exchange] - Protocolo para troca de informações entre aplicativos no Windows), por exemplo: - Um relatório pode ser mostrado no MS Word a partir de dados oriundos do MS Access - Dados em diversas planilhas MS Excel podem ser consolidados e mostrados em relatórios MS Access - Gráficos, atualizados dinamicamente, a partir de dados do MS Excel podem ser exportados e atualizados diretamente no MS Powerpoint - E-Mails podem ser enviados a partir da lista de contatos do MS Outlook contendo apresentações MS Powerpoint atualizadas pontualmente por dados contidos no MS Access As possibilidades são inúmeras e a dinamicidade dos negócios pode ser grandemente implementada nas aplicações.
  13. Outros detalhes Argumentos para a utilização de Dashboards e Scorecards tendo como interface a suíte MS Office: Uuma definição simples para um Dashboard seria a representação (sobretudo) gráfica de um conjunto de indicadores organizacionais na tela de um computador que, de forma imediata, permitisse o monitoramento dos resultados de processos. Na definição acima não diz que um Dashboard precise ser elaborado com recursos e ferramentas complexas, pesadas, com elevados custos de desenvolvimento e manutenção. Por isso vejo diversos motivos e vantagens, para que pequenas e médias organizações, bem como departamentos, utilizem extensivamente planilhas como o MS Excel, ou MS Access e até mesmo o MS Powerpoint para a implementação dos seus respectivos Dashboards: : Custos. Quando o Dashboard estiver associado a uma solução de BI (Business Intelligence) o custo total [envolvendo licenças, desenvolvimento, manutenção e etc…] será inviável para muitas organizações. No caso da suíte MS Office, uma parte desses custos já foi investida, e os custos de desenvolvimento serão muito menores. Por exemplo: Um Dashboard com o MS Excel poderá informar apenas com links a bases de dados já existentes numa empresa. : Manutenção. Como a suíte MS Office já existe a muito tempo, vários usuários tornaram-se hábeis programadores VBA. Criaram e desenvoveram excelentes soluções para o dia-a-dia das corporações. São profissionais de fácil acesso no mercado. Outro aspecto é o fato de a codificação VBA ser de domínio de muitos Analistas e Programadores no mercado. : Prazos. Criar um Dashboard com a suíte MS Office é muito mais rápido do que com as outras soluções comerciais e mais pesadas; : Flexibilidade do Layout. Não existem limitações significativas quanto ao que se pode colocar disponibilizar como interfacfe, ao contrário das estruturas impostas por outras aplicações comerciais; : Flexibilidade dos Objetivos. Sempre será possível desenvolver Dashboards 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 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 um gráfico do Dashboard para uma apresentação MS Powerpoint, não necessitarão de um treinamento adicional, porque já fazem parte da rotina dos usuários; : Acesso Offline. Ao contrário de outras aplicações, que por natureza têm um acesso online (intranet ou rede da organização), um Dashboard 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 software desenvolvidos especificamente para isso, custa-me lembrar outra aplicação que tenha uma gama tão abrangente de 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 o fazemos com a suíte do MS Office.
×
×
  • Create New...