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.

Microsoft Office Excel - 10 percepções de utilização



header-hands.jpg

Disponibilizei 10 percepções de utilização de como o Microsoft Office Excel pode ajudar-nos a criar as nossas planilhas, bem como analisá-las, compartilhá-las, gerenciá-las e distribuí-las de forma mais eficaz. 

Microsoft Office Excel é uma ferramenta poderosa e amplamente usada que ajuda as pessoas a analisarem suas informações e tomarem decisões coerentes, e na medida do possível embasadas em lógica simples.

Usando o 
Microsoft Office Excel
 e os seus serviços, podemos compartilhar e gerenciar nossas análises e idéias com colegas de trabalho, clientes e parceiros com maior confiança.

1
O Microsoft Office Excel tem a interface de usuário Office Fluent para ajudá-lo a encontrar ferramentas poderosas quando precisar delas.
Com base no trabalho que precisa realizar, quer seja a criação de uma tabela ou escrever uma fórmula, o  Microsoft Office Excel apresenta os comandos adequados para você quando necessários.
2
Importe, organize e explore conjuntos de dados maciços dentro de planilhas significativamente expandidas.
Trabalhe com grandes quantidades de dados no  Microsoft Office Excel, que oferece suporte a planilhas que podem ser maiores do que 1 milhão de linhas por 16.000 colunas. 
Além da grade maior, o  Microsoft Office Excel oferece suporte a plataformas de processadores de vários núcleos para o cálculo mais rápido das planilhas com suas várias fórmulas.
3
Use o mecanismo de gráficos completamente redesenhado do  Microsoft Office Excel para comunicar a sua análise em gráficos de aparência profissional.
Crie gráficos de aparência profissional mais rápido e com menos cliques usando ferramentas gráficas na interface de usuário Office Fluent. Aplique melhorias visuais ricas aos seus gráficos, como sombreamento leve e transparência. Crie e interaja com gráficos da mesma maneira, independentemente do aplicativo que está usando, pois o mecanismo de gráficos do  Microsoft Office Excel é consistente em todo o Microsoft Office e no Microsoft Office PowerPoint.
4
Desfrute o suporte poderoso e melhorado de trabalhar com tabelas.
Crie, formate, expanda, filtre e consulte tabelas dentro de fórmulas, pois o  Microsoft Office Excel melhorou muito o suporte para tabelas. Ao revisar dados contidos em uma tabela grande, o Microsoft Office Excel  mantém os títulos das tabelas na exibição, enquanto você os rola.
5
Crie e trabalhe com modos de exibição de tabela dinâmica interativos, com facilidade.
Os modos de exibição de tabela dinâmica permitem que você redirecione rapidamente os seus dados para ajudá-lo a responder várias perguntas. Encontre as respostas de que precisa mais rapidamente, crie e use os modos de tabela dinâmica mais facilmente, arrastando campos onde você quer exibi-los.
6
"Consulte" tendências importantes e encontre exceções nos dados.
Aplique formatação condicional às suas informações mais facilmente para descobrir padrões e realçar tendências em seus dados. Os novos esquemas incluem gradientes de cor, mapas de calor, barras de dados e ícones de indicador de desempenho.
7
Use o  Microsoft Office Excel  e os seus serviços para ajudar a compartilhar planilhas com os outros de maneira mais segura.
Os Serviços do  Microsoft Office Excel, um recurso do Microsoft Office SharePoint Server, processam dinamicamente uma planilha como HTML para que outros possam acessar as informações usando um navegador da Web. 
Devido ao alto grau de fidelidade com o cliente do  Microsoft Office Excel , os usuários dos Serviços do Excel podem navegar, classificar, filtrar, inserir parâmetros e interagir com as informações, tudo dentro do navegador da Web.
8
Ajude a garantir que você e sua organização trabalhem com as informações comerciais mais atuais.
Evite que a disseminação de várias cópias ou de cópias desatualizadas de uma planilha pela organização usando o  Microsoft Office Excel  e o Office SharePoint Server. Controle quais usuários podem exibir e modificar planilhas no servidor usando acesso baseado em permissão.
9
Reduza o tamanho das planilhas e melhore a recuperação do arquivo danificado ao mesmo tempo.
O novo formato compactado XML do Microsoft Office Excel oferece uma redução drástica em tamanho de arquivo, enquanto sua arquitetura oferece melhoria na recuperação de dados de arquivos danificados. Esse novo formato oferece uma enorme economia de requisitos de armazenamento e de largura de banda, além de reduzir a carga no pessoal de TI.
10
Amplie seus investimentos em inteligência comercial, pois o  Microsoft Office Excel oferece suporte completo para o Microsoft SQL Server Analysis Services.
Tire vantagem da flexibilidade e das novas funções de cubo do  Microsoft Office Excel  para criar um relatório personalizado a partir de um banco de dados OLAP
Você também pode conectar-se a fontes externas de dados mais facilmente usando a Biblioteca de Conexões de Dados.







TagsMicrosoft Office Excel, Excel, Office Fluent, 10 percepções de utilização, Microsoft Office SharePoint Server, Microsoft SQL Server Analysis Services, OLAP

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


VBA Excel - Como deixar suas planilhas enxutas

header-training.jpg

Confesso que manter o tamanho das planilhas sejam um tema recorrente e difícil de divulgar. Certamente causa interesse, mas o ponto principal é: Como deixá-las menores?

Ja abordei este assunto diversas vezes, sobre óticas distintas: Explicando o motivo destas ficarem assim, mostrando ações efetivas de torná-las menores, demonstrei técnicas com o VBA e tudo o mais.

Nos idos de 2009, escrevi coisas similares as demonstradas abaixo:

Possivelmente já percebeu como suas planilhas inflam sem qualquer aparente explicação, como se tivesse comido vários quilos de açúcar. De uma hora prá outra o que tinha apenas uns parcos 530 KB de peso, passa a ter e exibir exuberantes 2.350 KB. O que aconteceu? Será que nossas planilhas atacam a geladeira durante a madrugada?

Com o passar do tempo, sem que necessariamente tenhamos acrescentado algum conteúdo relevante, nossas planilhas persistem em aumentar.

Linhas inofensivas
:
É muito comum que somente abramos o nosso arquivo, efetuando pequenas alterações em certas células, além de vez ou outra inserirmos algumas linhas em branco, apenas para posicionarmos algumas informações. O que talvez não percebamos é que estas inofensivas linhas em branco não somem, antes são salvas, ocupando espaço desnecessário. Lógico que isso é muito comum devido a grande manipulação de dados que efetuamos diariamente. Nunca paramos prá pensar em tamanho no nosso dia-a-dia. Somente quando não temos espaço, ou quando o administrador da rede diz-nos que nosso espaço no Public está lotado é que pensamos no motivo de tão poucas planilhas ocuparem tanto espaço.

Mandando suas planilhas para o SPA
:
O MS Excel não consegue distinguir as linhas que estão em branco (pelo menos não o fazia corretamente na versão de 2009) ou vazias e acaba por gravar todas as ocorrências em branco como conteúdo das nossas planilhas. Além disso, caso formatemos uma coluna inteira até a linha 1 milhão (mesmo que sem querer), ao fechar a planilhas teremos gravado aquela coluna em um milhão de linhas, apenas porque esquecemos da formatação ali.

O tamanho das planilhas é uma preocupação constante nas nossas aplicações. A não ser que realmente precisemos ter ocorrências extensas, deveríamos automatizar a deleção das linhas excedentes.

Como faremos isso?

Técnicas de exclusão de linhas podem ser colocadas ao fecharmos e/ou gravarmos nossas planilhas...Isso as fariam efetuar atividades 'aeróbicas' constantemente, queimando suas calorias extras...

Deletar linhas e efetuar as tais tarefas aeróbicas podem tornar o fechamento das planilhas muito lento dependendo do tamanho.


Confesso que nesta época era persistente, por isso não parei por aí:
Quando nossas planilhas recebem dados de outras bases (fontes), seja através de ODBC, Macros ou mesmo informações da Internet, não raro aparecem melhares de linhas em branco. Caso ache útil deletá-las poderá implementar a solução abaixo.

Function EliminateThousandBlankLines(StarLine as Long)
' Author: André Luiz Bernardes.
'    Date: 05.02.2009

    Let nRow = StartLine

    Do While ActiveSheet.Cells(nRow, 1) <> ""
        If ActiveSheet.Cells(nRow, 1).Value <> strUserName Then
            ActiveSheet.Rows(nRow).EntireRow.Delete
        Else
            Let nRow = nRow + 1
        End If
    Loop
End Function

Nesta missão de suma importância, onde a deleção de linhas e colunas desnecessárias mostram-se tão preementes, deixo-vos códigos utilíssimos:
Function LastRow (nColumn As String, InitLine As Single) As Single
    ' Author:                     Date:               Contact:
    ' André Bernardes             16/09/2008 14:20    bernardess@gmail.com
    ' Retorna o número de ocorrências.

    Dim nLine As Single
    Dim nStart As Single
    Dim nFinito As Single
    Dim Cabessalho As Single
    Dim nCeo As String

    Application.Volatile

    Let nStart = InitLine + 1
    Let nFinito = 65000
    Let Cabessalho = InitLine

    Do While nStart < nFinito
        Let nCeo = nColumn & Trim(Str(nStart))

        If Application.ActiveSheet.Range(nCeo).Value = "" Then
            Exit Do
        End If

        'Let Application.StatusBar.Value = " Linha: " & nStart
        Let nStart = nStart + 1
    Loop

    Let LastRow = (nStart - 1) '- Cabeçalho
    'Let Application.StatusBar.Value = "  "
End Function


Function FindLastColumn() As Single
    Let FindLastColumn = Range("IV10").End(xlToLeft).Column
    
    'ActiveSheet.UsedRange.Columns.Count

    'Dim LastCol As Integer
    
    'Let LastCol = ActiveSheet.Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
    'Let FindLastColumn = LastCol
End Function

Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean)

NomePlanilha = ActiveSheet.Name
NomePasta = ActiveWorkbook.Name

Endereco = ActiveWorkbook.Path

UsuarioExcel = Application.UserName
UsuarioEstacao = Environ("USERNAME")

UltimaLinhaNumero = ActiveCell.SpecialCells(xlCellTypeLastCell).Row

UltimaColunaNumero = ActiveCell.SpecialCells(xlCellTypeLastCell).Column

UltimaCelulaRange = ActiveCell.SpecialCells(xlCellTypeLastCell).Address & " ou " & ActiveCell.SpecialCells(xlCellTypeLastCell).Address(RowAbsolute:=False) & " ou " & ActiveCell.SpecialCells(xlCellTypeLastCell).Address(ReferenceStyle:=xlR1C1)

CelulaAtualLinhaNumero = ActiveCell.Row
CelulaAtualColunaNumero = ActiveCell.Column
CelulaAtualRange = ActiveCell.Address & " ou " & ActiveCell.Address(RowAbsolute:=False) & " ou " & ActiveCell.Address(ReferenceStyle:=xlR1C1)

CelulaAtualRelativo = ActiveCell.Address(ReferenceStyle:=xlR1C1, RowAbsolute:=False, ColumnAbsolute:=False, RelativeTo:=Worksheets(NomePlanilha).Cells(1, 1))


MsgBox "Planilha Atual" & vbCrLf & vbCrLf & _
       vbTab & "Nome" & vbTab & vbTab & ": " & NomePlanilha & vbCrLf & _
       vbTab & "Última Linha" & vbTab & ": " & UltimaLinhaNumero & vbCrLf & _
       vbTab & "Última Coluna" & vbTab & ": " & UltimaColunaNumero & vbCrLf & _
       vbTab & "Última Célula" & vbTab & ": " & UltimaCelulaRange & vbCrLf & vbCrLf & vbCrLf & _
       "Célula Atual" & vbCrLf & vbCrLf & _
       vbTab & "Número da Linha" & vbTab & ": " & CelulaAtualLinhaNumero & vbCrLf & _
       vbTab & "Número da Coluna" & vbTab & ": " & CelulaAtualColunaNumero & vbCrLf & _
       vbTab & "Range" & vbTab & vbTab & ": " & CelulaAtualRange & vbCrLf & _
       vbTab & "Relativo a A1" & vbTab & ": " & CelulaAtualRelativo & vbCrLf & vbCrLf & vbCrLf & _
       "Outras Informações" & vbCrLf & vbCrLf & _
       "Nome da Pasta de Trabalho" & vbTab & vbTab & ": " & NomePasta & vbCrLf & _
       "Caminho da Pasta de Trabalho" & vbTab & ": " & Endereco & vbCrLf & _
       "Usuario (Excel)" & vbTab & vbTab & vbTab & ": " & UsuarioExcel & vbCrLf & _
       "Usuario (Estação)" & vbTab & vbTab & vbTab & ": " & UsuarioEstacao, vbInformation, "Informações"

End Sub

Referência: Canguru

Tags: Excel, delete, rows, lines, excel size, cell, cell info, worksheet, small workbook

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


VBA Access - Nome do usuário e computador na rede - Network and computer User Name


sustrain_header_training_com.jpg

Ao tornar as aplicações MS Access mais profissionais, e também ao passo que vamos desenvolvendo soluções sistêmicas, que se incorporam a outras soluções, a relevância e utilização destas requer alguns cuidados mais sofisticados.

Em alguns casos pode ser necessário que registremos os nomes dos usuários que estão acessando as nossas aplicações, ou talvez desejemos desenvolver um modo de Login que utilize esses nomes de usuários na rede.

Function NetUName() As String
On Error GoTo Err_Handler

Dim lngLen As Long 
Dim strUserName As String

Const lngcMaxFieldSize As Long = 64& 

' Inicia.
Let strUserName = String$ (254, vbNullChar)
Let lngLen = 255&

' Em caso de sucesso a API retornará um valor diferente de zero.
If apiGetUserName (strUserName, lngLen) <> 0 Then

Let lngLen = lngLen - 1& 

If lngLen > lngcMaxFieldSize Then 'Tamanho Máximo do campo.
Let lngLen = lngcMaxFieldSize
End If

Let NetworkUserName = Left$ (strUserName, lngLen)
End If

Exit_Handler:

Exit Function

Err_Handler:

Call LogError(Err.Number, Err.Description, conMod & ".NetworkUserName", , False)

Resume Exit_Handler
End Function

 Option Compare Database  
 ' This code was originally written by Dev Ashish.
 ' It is not to be altered or distributed,
 ' except as part of an application.
 ' You are free to use it in any application,
 ' provided the copyright notice is left unchanged.
 ' Code Courtesy of Dev Ashish 
 Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
 "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
 Function fOSUserName() As String
 ' Returns the network login name
     Dim lngLen As Long, lngX As Long
     Dim strUserName As String
     Let strUserName = String$(254, 0)
     Let lngLen = 255
     Let lngX = apiGetUserName(strUserName, lngLen)
     If lngX <> 0 Then
         Let fOSUserName = Left$(strUserName, lngLen - 1)
     Else
         Let fOSUserName = ""
     End If
 End Function
Vamos aproveitar e disponibilizar tambéma função que retorna o nome do computador utilizado no momento do log.
 Option Compare Database  
 ' This code was originally written by Dev Ashish.
 ' It is not to be altered or distributed,
 ' except as part of an application.
 ' You are free to use it in any application,
 ' provided the copyright notice is left unchanged.
 '
 ' Code Courtesy of Dev Ashish
 Private Declare Function apiGetComputerName Lib "kernel32" Alias _
 "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
 Function fOSMachineName() As String
 'Returns the computername
     Dim lngLen As Long, lngX As Long
     Dim strCompName As String
     lngLen = 16
     strCompName = String$(lngLen, 0)
     lngX = apiGetComputerName(strCompName, lngLen)
     If lngX <> 0 Then
         fOSMachineName = Left$(strCompName, lngLen)
     Else
         fOSMachineName = ""
     End If
 End Function

Tags: Access, log, API, DLL, user name, apiGetUserName, apiGetComputerName

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


diHITT - Notícias