Visual Basic - Formato txt de excel usando VB con ceros a la izquierda

Life is soft - evento anual de software empresarial
 
Vista:

Formato txt de excel usando VB con ceros a la izquierda

Publicado por FERNANDO ALFONZO (1 intervención) el 25/09/2017 17:31:11
Buenos días.....

Me gustaría ver quien me puede ayudar......

Tengo un archivo en Excel de 6 columnas con el cual quiero hacer un archivo txt para pago de Nómina y para ello cree una formula en VB, pero necesito agregar ceros a la izquierda pero solo en las columnas 3, 4 y 5... En la columna 3, solo tengo que agregar 1 cero, en la columna 4 la cantidad de caracteres de la columna es 15 incluyendo decimales (Monto a pagar) sin que tenga separaciones de coma o puntos, la columna 5 igual son 15 caracteres (cédulas de identidad).......

La formula creada es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Sub CrearTXT()
 
    Dim NombreArchivo, RutaArchivo As String
    Dim obj As FileSystemObject
    Dim tx As Scripting.TextStream
    Dim Ht As Worksheet
    Dim i, j, nFilas, nColumnas As Integer
 
    NombreArchivo = "Banco TXT"
    RutaArchivo = ActiveWorkbook.Path & "\" & NombreArchivo & ".txt"
 
    Set Ht = Worksheets("BANCO TXT")
    Set obj = New FileSystemObject
    Set tx = obj.CreateTextFile(RutaArchivo)
 
    nColumnas = Ht.Range("A1", Ht.Range("A1").End(xlToRight)).Cells.Count
    nFilas = Ht.Range("A2", Ht.Range("A2").End(xlDown)).Cells.Count
 
    For i = 1 To nFilas
 
        For j = 1 To nColumnas
 
                tx.Write Ht.Cells(i + 1, j).Value
                If j < nColumnas Then tx.Write ""
 
            Next j
 
            tx.WriteLine
 
    Next i
 
End Sub

Usando esta formula cuando coloco entre las comillas del.... If j < nColumnas Then tx.Write ""..... "0" un cero me modifica las columnas 2,3,4,5 y 6

Que debo modificarle a esta formula para que solo me modifique las columnas deseadas con las cantidades de ceros a la izquierda que necesito y que me tome los numeros decimales sin separaciones en la columna 4

Muchas gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Formato txt de excel usando VB con ceros a la izquierda

Publicado por Andres Leonardo (1798 intervenciones) el 25/09/2017 18:34:14
creo que te estas complicando...
En las celdas puedes hacer una concatenacion

=Texto(Valor,Formato)

=Texto(3500,000000000000000) esto es "000000000003500"

Si estas segurisimo que nunca va a pasar la longitud limite podrias usar algo asi

=concatenar (repetir("0",15 - Largo(Celdaq tiene el valor )), celdaquetienevalor)

En visual podrias usar format

=format(valor,formato) y va lo mismo ...

Para mi puedes en las celdas concatenar y formatear y con BVA solo crear los registros ...De hecho ya lo hice alguna vez.

Slaudos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar