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

Excel Tips - Como comprimir arquivos XLSX para arquivos ainda menores - How to Compress xlsx Files to the Smallest Possible Size



Hello folks!

Há muitos posts atrás indiquei como era possível compactarmos o conteúdo de planilhas por simplesmente:

- Exportar o conteúdo delas para planilhas novas
- Manter o mesmo tipo de fonte em toda a planilha
- Inserir um código que ao fechar excluísse todas as linhas em branco não utilizadas

Muitos implementaram essas maluquices e tiveram bons resultados.

Agora a dica é boa, e é prá valer.

Suponhamos que você tenha um arquivo xlsx com 20 MB de tamanho. Precisando reduzir o arquivo para um tamanho mais aceitável.



081811_0644_HowtoCompre1.png

Normalmente, eu o converteria num arquivo xls, o que o tornaria muito menor. Mas esse arquivo em particular tem demasiadas linhas para serem convertidas para um xls.

Então a primeira coisa que eu tento fazer é 'zipá-lo' com o WinZip. Mas, como você pode perceber, ele é comprimido para apenas 17 MB, o que realmente não é muito menor. Por quê? Isso porque os arquivos xlsx já são tecnicamente compactados. E todos nós sabemos que quando você tenta 'zipar' um arquivo 'zipado', não obterá um bom encolhimento neste.
081811_0644_HowtoCompre2.png
 
Bem, vamos ao truque. Pego o meu arquivo original e mudo a extensão dele para .zip
 


081811_0644_HowtoCompre3.png

Depois disso, eu extraio o conteúdo do arquivo .zip.
081811_0644_HowtoCompre4.png
 

Uma vez que os conteúdos são extraídos, eu os 'zipo' de volta usando um programa de compressão,como o WinZip mesmo.

081811_0644_HowtoCompre5.png
 


Isto nos deixa com um arquivo compactado contendo todo o meu conteúdo, como o
tamanho comprimido de 14 MB. Agora
posso mudar a extensão de volta para xlsx.
 
081811_0644_HowtoCompre6.png

Quando o arquivo for alterado novamente para xlsx, ele funciona apenas como um arquivo Excel normal. 6 MB menor que o original.

081811_0644_HowtoCompre7.png

Então você pode estar se perguntando: Ei! O que houve aqui? Aparentemente a tecnologia de compressão que o MS Excel utiliza para criar arquivos xlsx é inferior ao algoritmo utilizado no Winzip. Agora tente compactar com o Winrar para ver.

Ahh, só de brincadeira, que tal criar um aplicativo que automatize toda a compressão? E não deixe de enviá-lo para que eu possa dar o crédito. Té +, e boa diversão.


Tags: VBA, Excel, small, size, xls, xlsx, dica, trick, tip, truque, zip, compact, winzip

Excel Tips - Excluindo linhas em branco ao abrir a Planilha - Removing Blank Rows Automatically



Olá pessoal!

Alguns perguntaram como fazer para deletar as linhas que estão em branco na planilha, logo que a esta for aberta.

Segue um código, simples, honesto, rápido e limpinho.

Private Sub Worksheet_Change (ByVal Target As Range)
'Deleta todas as linhas que estiverem em branco que existirem.  
'Previne loops infinitos  Let Application.EnableEvents = False   
'Caso haja mais de uma célula selecionada. 
If Target.Cells.Count > 1 Then
GoTo SelectionCode  
If WorksheetFunction.CountA(Target.EntireRow) = 0 Then 
Target.EntireRow.Delete 
End If  
Let Application.EnableEvents = True  
Exit Sub  

SelectionCode: 
If WorksheetFunction.CountA(Selection.EntireRow) = 0 Then 
Selection.EntireRow.Delete 
End If  
Let Application.EnableEvents = True
End Sub


Tags: VBA, Excel, deletar, apagar, excluir, row, lines, linha, range, rows, blank, removing, EntireRow, automatically, delete

VBA Tips - Arquivos de Log - Log Files



Então, os arquivos de logs são úteis para os mais diversos propósitos.

  • Como posso registrar todos usuários que acessam as minhas planilhas, guardando o nome e horário em um arquivo texto num servidor?
Function LogInfo (LogMessage As String)
    Const LogFileName As String = "
C:\Bernardes\wbLog.log"
    Dim FileNum As Integer
   
    Let FileNum = FreeFile                                      ' Próximo número do Arquivo.
   
    Open LogFileName For Append As #FileNum    ' Cria o arquivo se ele não existir.

    Print #FileNum, LogMessage                              ' Se o arquivo existir grava a informação do final deste.

    Close #FileNum                                                  ' Fecha o arquivo.
End Function

Podemos efetuar chamadas a essa função assim que abrirmos a planilha.

Private Sub Workbook_Open()
    Call LogInfo (ThisWorkbook.Name & " opened by " & Application.UserName & " " & Format(Date, "yyyy-mm-dd hh:mm"))
End Sub

Arquivos criados como Log podem ser lidos por quaisquer aplicativos capacitados para ler arquivos texto. Por exemplo: Notepad, TextPad, Write, Word e Excel.

Também é possível lermos o conteúdo dos arquivos de log com o VBA, abaixo segue um exemplo:

Function DisplayLastLogInfo()
    Const LogFileName As String = "C:\Bernardes\wbLog.log"

    Dim FileNum As Integer, tLine As String

    Let FileNum = FreeFile
    
    Open LogFileName For Input Access Read Shared As #f ' Abre o arquivo para leitura.
    
    Do While Not EOF(FileNum)
        Line Input #FileNum, tLine ' Lê a linha do arquivo.
    Loop 
    
    Close #FileNum
    
    MsgBox tLine, vbInformation, "Última informação do Log:"
End Function

Sub DelLogF (FullFileName As String)
    On Error Resume Next ' ignora possíveis erros
    
     Kill FullFileName 
    
     On Error Goto 0 
End Sub

DelLogF "C:\Bernardes\wbLog.log"



Tags: VBA, Excel, log, auditory, txt, Notepad, TextPad, Write, Word

eBooks VBA na AMAZOM.com.br

LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...

Vitrine