Función de validación de campo para impresión en archivo TXT.
Publicado por Cristian (5 intervenciones) el 09/06/2017 23:19:54
Buenas tardes,
Me encuentro diseñando una macro que una de las funciones es generar una archivo plano en txt separado por “;” de una base de datos de Excel, Esta base de datos se encuentra formulada porque se alimenta de otra base de datos (en donde se valida que si se encuentra diligenciado ingrese una información pero si está vacío déjemelo vacío).
El problema es que tengo el siguiente código para generar el archivo txt.
El inconveniente es que la base de datos original tiene un total de 500 posibles registros pero cuando solo ingreso por ejemplo 2 me genera el txt perfecto para los 2 registros pero para los demás 498 registros como se encuentra formulado pero sin información me lo toma como vacío lo que genera que en el txt me muestra los 500 registros pero los que no están diligenciados me los muestra en una cadena de ; ; ; ; ; ; ; ; ;…… etc .
Adjunto el documento ejemplo de TXT.
Mi consulta es: ¿Qué condicional le puedo agregar a mi código? Para que solo me muestre los registros que estén diligenciados así esté formulada la celda.
Agradezco mucho su colaboración.
Me encuentro diseñando una macro que una de las funciones es generar una archivo plano en txt separado por “;” de una base de datos de Excel, Esta base de datos se encuentra formulada porque se alimenta de otra base de datos (en donde se valida que si se encuentra diligenciado ingrese una información pero si está vacío déjemelo vacío).
El problema es que tengo el siguiente código para generar el archivo txt.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub CommandButton3_Click()
Dim i As Integer, nFilas As Integer, _
j As Integer, nColum As Integer
With Worksheets("BD Qmatic Cliente")
nFilas = .Range("A2", .Range("A2").End(xlDown)).Cells.Count
nColum = .Range("A1", .Range("A1").End(xlToRight)).Cells.Count
Open Range("E7").Value & "\Archivo Plano Cliente.txt" For Output As #9
For i = 1 To nFilas
For j = 1 To nColum
Print #9, .Cells(i + 1, j);: If j < nColum Then Print #9, ";";
Next
Print #9, ""
Next
Close #9
End With
MsgBox "Se ha creado con éxito el archivo plano de Cliente, por favor verifique la ruta especificada.", vbInformation, "Generador de Archivo Plano"
El inconveniente es que la base de datos original tiene un total de 500 posibles registros pero cuando solo ingreso por ejemplo 2 me genera el txt perfecto para los 2 registros pero para los demás 498 registros como se encuentra formulado pero sin información me lo toma como vacío lo que genera que en el txt me muestra los 500 registros pero los que no están diligenciados me los muestra en una cadena de ; ; ; ; ; ; ; ; ;…… etc .
Adjunto el documento ejemplo de TXT.
Mi consulta es: ¿Qué condicional le puedo agregar a mi código? Para que solo me muestre los registros que estén diligenciados así esté formulada la celda.
Agradezco mucho su colaboración.
- Archivos-generados.rar(1.013,0 B)
Valora esta pregunta


0