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 

Nenhum comentário:

Postar um comentário

diHITT - Notícias