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.

.: Vitrine

Carregando artigos...

Views

Mostrando postagens com marcador fill. Mostrar todas as postagens
Mostrando postagens com marcador fill. Mostrar todas as postagens

VBA Tips - Preenchendo com ESPAÇOS ou ZEROS - A Direita ou a Esquerda

Inline image 1

Ao lidarmos com a geração de arquivos texto a partir de um sistema legado, ou quando estamos exportando dados para outra base, facilmente nos depararemos com a necessidade de exportar dados em arquivos texto de grandes bases de dados.

Como posso automatizar o tamanho de um campo e automaticamente preenchê-lo com espaços ou zeros ao lado esquerdo ou direito?

Certamente demoraria algum tempo reunir todas essas características em uma só funcionalidade, mas para a sua alegria reuni-as em 2 funções. Espero que goste e possa utilizá-la de modo a ganhar bastante tempo no seu desenvolvimento.

A primeira função, FillSpace ([String], [Quantos dígitos a inserir],[boolean]) é capaz de retornar um valor com o número de espaços que desejarmos. E ainda podemos escolher se estes estarão à direita ou à esquerda.

Parametrizado assim: FillSpace ("André Bernardes",20,True)
Retornará isso: "     André Bernardes"

Parametrizado assim: FillSpace ("André Bernardes",20,False)
Retornará isso: "André Bernardes     "

A função FillSpace é assim:

Function FillSpace (nPar As Variant, nOccurs As Integer, L_R As Boolean) _ 
             As String
    ' Author:                     Date:               Contact:
    ' André Bernardes             20/06/2012 11:50    bernardess@gmail.com     https://sites.google.com/site/bernardescvcurriculumvitae/
    ' Preenche com espaços.

    Dim nSize As Integer
    Dim nParticle As String
    
    Let nSize = Len(Trim(nPar))
    
    ' Informa se será preenchido na frente (LEFT) ou atrás (RIGHT).
    If L_R Then
        Let nParticle = Space(nOccurs - nSize) & Trim(nPar)
    Else
        Let nParticle = Trim(nPar) & Space(nOccurs - nSize)
    End If

    Let FillSpace = nParticle
End Function


A primeira função, FillZeros ([String], [Quantos dígitos a inserir],[boolean]) é capaz de retornar um valor com o número de zeros que desejarmos. E ainda podemos escolher se estes estarão à direita ou à esquerda.

Parametrizado assim:  FillZeros ("2500",10,False)
Retornará isso: 2500000000

Parametrizado assim:  FillZeros ("25000",10,true)
Retornará isso: 0000025000

A função FillZeros é assim:

Function FillZeros (nPar As Variant, nOccurs As Integer, L_R As Boolean) As String
    ' Author:                     Date:               Contact:
    ' André Bernardes             20/06/2012 12:50    bernardess@gmail.com     https://sites.google.com/site/bernardescvcurriculumvitae/
    ' Preenche com zeros.
    
    Let FillZeros = Replace(FillSpace(nPar, nOccurs, L_R), " ", "0")
End Function

Espero que possa usar bastante essas funções nas suas aplicações. Se desejarem, deixem comentários e novas sugestões de códigos.


Reference:

Tags:   VBA, Tips, espaço, zero, preenchendo, fill, Zed, Zeros, Space, preencher, completar 

VBA Access - Preenchendo uma caixa de listagem.

Inline image 1

Descreverei uma técnica antiga para preencher uma caixa de listagem através de uma função de retorno.

A partir do MS Access 2000, existe uma nova técnica mais eficiente e flexível.


Para utilizar a função de retorno:



Crie um novo módulo, clicando na aba Módulos da janela Banco de Dados e clicando em Novo.



Cole o código abaixo.

Verifique se o código é aceito, escolhendo Compilar no menu Debug.



Salve o módulo com um nome como Módulo1.



Defina a propriedade Row Source Type da caixa de lista para apenas:

DirListBox



Não use o sinal de igualdade entre parênteses ou função, e deixe a linha da propriedade Source em branco.



Function DirListBox (fld As Control, ID, row, col, code)

    Dim StrFileName As String

    Static StrFiles(0 To 511) As String ' Array to hold File Names
    Static IntCount As Integer          ' Number of Files in list

    Select Case code
        Case 0                          ' Initialize
            Let DirListBox = True
        Case 1                          ' Open: load file names into array
            Let DirListBox = Timer
            Let StrFileName = Dir$("C:\")   ' Read filespec from a form here???

            Do While Len(StrFileName) > 0
                Let StrFiles(IntCount) = StrFileName
                Let StrFileName = Dir
                Let IntCount = IntCount + 1
            Loop
        Case 3                          ' Rows
            Let DirListBox = IntCount
        Case 4                          ' Columns
            Let DirListBox = 1
        Case 5                          ' Column width in twips
            Let DirListBox = 1440
        Case 6                          ' Supply data
            Let DirListBox = StrFiles(row)
    End Select
End Function


Tags: VBA, Access, listbox, fill, caixa de listagem, 


VBA Excel - Preenchendo lacunas vazias dos ranges com dados.

Quem está constantemente desenvolvendo soluções através do MS Excel, regularmente depara-se com a seguinte situação:

Primeiro copia-se um determinado Range, recém atualizado, que reflete o resultado de um filtro específico de uma Pivot Table (Tabela Dinâmica).

Segundo, ao colar o Range recém copiados da PT (Pivot Table), percebe que algumas lacunas ficaram vazias, pois a PT em cada coluna, não repete uma série de dados, apenas demonstra a primeira ocorrência desta.


Como fazer para que todo o Range copiado fique com os dados completos, mesmo que repetidos, preparando-os para serem exportados para uma tabela do MS Access por exemplo?


Assim que o Range estiver selecionado, aplique-lhe a seguinte série de códigos:

' Prepara os dados para serem enviados a uma tabela no MS Access.
Selection.SpecialCells(xlCellTypeBlanks).Select

Let Application.CutCopyMode = False
Let Selection.FormulaR1C1 = "=R[-1]C"

Tags: Bernardes, VBA, Office, Excel, Range, select, copy, Pivot Table, PT, Tabela Dinâmica, fill, data, lacuna, preenchendo

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



diHITT - Notícias