VBA Excel - Previna o recalculo durante a execução do seu código (Preventing Calculation).

Algo que costuma deixar a execução de uma série de passos em nossas planilhas é o fato de o MS Excel recalcular tudo a cada passo alterado na nossa aplicação. Isso acaba por tornar lentíssima a execução das nossas aplicações. É lógico que podemos dar um jeito nisso. Como? Basta ampliar o exemplo abaixo na sua aplicação. Bons estudos!
Sub StopCalculation()
      Application.Calculation = xlCalculationManual

   ' Digite o seu código aqui.

   Application.Calculation = xlCalculationAutomatic
End Sub
André Luiz Bernardes A&A - WORK, DON´T PLAY! http://al-bernardes.sites.uol.com.br/ bernardess@gmail.com

Tornando a execução do seu código mais rápida por para a atualização da tela (Stop Screen Flickering)





Muitas vezes quando estamos manipulando inúmeras colunas, linhas e células, ficamos felizes por acompanhar os deslocamentos, agrupamentos e recálculos de tudo o que elaboramos. Isso acontece na primeira e segunda vez, depois torna-se extremamente irritantes visualizarmos a tela deslizando prá elá e prá cá na nossa frente enquanto a planilha demora infinitos minutos até finalizar a execução. Seus problemas acabaram. Basta que desligue a atualização da tela e sua planilha será atualiza somente uma vez, após ter processado tudo o que pediu que fosse processado. Divirta-se...

Sub StopFlickering()
   Application.ScreenUpdating=False

   ' Adicione o seu código.

   Application.ScreenUpdating=True
End Sub
André Luiz Bernardes A&A - WORK, DON´T PLAY! http://al-bernardes.sites.uol.com.br/ bernardess@gmail.com

VBA Excel: Modo Calculation

Modo Calculation

Normalmente o MS Excel recalculará uma Célula ou um Range quando estes forem alterados. Às vezes essa atualização trás certos transtornos, fazendo com que a performance caia. Podemos prevenir que o MS Excel recalcule o workbook por usarmos o statement:.

Neste exemplo abaixo forçamos o recálculo para o modo manual:

Let Application.Calculation = xlCalculationManual

Também temos a possibilidade de mudar esse statement no final do nosso código:

Let Application.Calculation = xlCalculationAutomatic

André Luiz Bernardes A&A - WORK, DON´T PLAY! http://al-bernardes.sites.uol.com.br/ bernardess@gmail.com

VBA Excel: Importe dados a partir do MS Access para o MS Excel (Via DAO)

Então, o crossover entre Access e Excel continuam a persistir...

Como posso importar os dados do Access para minhas planilhas Excel?

Implementem o código abaixo...

Sub DAOCopyFromRecordSet(DBFullName As String, TableName As String, FieldName As String, TargetRange As Range)
      ' Exemplo: DAOCopyFromRecordSet "C:\A&A_Folder\DataBase.mdb", "TableName", "FieldName", Range("C1")
 
    Dim db As Database, rs As Recordset
      Dim intColIndex As Integer

   Set TargetRange = TargetRange.Cells(1, 1)
   Set db = OpenDatabase(DBFullName)
   Set rs = db.OpenRecordset(TableName, dbOpenTable) ' Todos os registros.

   For intColIndex = 0 To rs.Fields.Count - 1
          Let TargetRange.Offset(0, intColIndex).Value = rs.Fields(intColIndex).Name
   Next

    ' Escreva no Recordset.
   TargetRange.Offset(1, 0).CopyFromRecordset rs

   Set rs = Nothing

      db.Close

   Set db = Nothing
End Sub
André Luiz Bernardes A&A - WORK, DON´T PLAY! http://al-bernardes.sites.uol.com.br/ bernardess@gmail.com

VBA Access: Função Format (com Datas)




No MS Office Access, a função Format faz o tratamento de um conteúdo, retornando-o na expressão que desejarmos. A syntaxe para a função Format é: Format ( expressão, [ format, [ firstdayofweek, [primeirasemanadoano] ] ] ) Expressão é o valor a ser "formatado". Format é opcional, existem valores defaults para este, como observado abaixo: Format Explanação General Date Mostra a data formatada segundo a configuração do seu sistema. Long Date Mostra a data formatada segundo a configuração do seu sistema para 'Data longa'. Medium Date Mostra a data formatada segundo a configuração do seu sistema para 'Data média'. Short Date Mostra a data formatada segundo a configuração do seu sistema para 'Data curta'. Long Time Mostra a data formatada segundo a configuração do seu sistema para 'hora longa'. Medium Time Mostra a data formatada segundo a configuração do seu sistema para 'hora média'. Short Time Mostra a data formatada segundo a configuração do seu sistema para 'hora curta'. firstdayofweek é opcional, existem valores defaults para este, como observado abaixo: Constant Valor Explanação vbUseSystem 0 Usa a configuração da API NLS. vbFirstJan1 1 A semana que contém Janeiro 1. vbFirstFourDays 2 A primeira semana que tem 4 dias no ano. vbFirstFullWeek 3 A primeira semana cheia do ano. Por exemplo: Format (#17/04/2009#, "Short Date") Retornará '17/04/2004' Format (#17/04/2009#, "Long Date") Retornará 'Abril 17, 2004' Format (#17/04/2009#, "yyyy/mm/dd") Retornará '2004/04/17' Código VBA: A função Format pode ser utilizada no VBA com código: Dim LValue As String Let LValue = Format (Date, "dd/mm/yy") No exemplo acima a variável chamada LValue contém a data de hoje formatada como dd/mm/yy. Utilização direta na query: O mesmo pode ser utilizado nas nossas querys. format001.png E o resultado será algo como o demonstrado abaixo: format002.png Podemos definir as nossas próprias formas de formatação:
André Luiz Bernardes A&A - WORK, DON´T PLAY! http://al-bernardes.sites.uol.com.br/ bernardess@gmail.com
diHITT - Notícias