Buenos días,
tengo que realizar una macro que me genere un archivo plano txt, encontré un código que me genera el archivo separado por coma, tal y cual lo necesito, el problema radica en que si el archivotiene mas de 14 filas me saca error de desbordamiento, para 14 o menos filas lo hace muy bien, pero a mi no me sirve, porque hay veces q la información puede tener mas de 20 filas, voy a dejar el código a ver si alguien me puede ayudar con él
Código vb:
Ver originalPrivate Sub CommandButton1_Click()
Dim strSpc As String '<== la nueva variable propuesta
Dim HojaPol As Worksheet
Dim intFich As Integer, lngNumReg As Long, strCad As String, strCar As String * 1
Dim lngContL As Long, intContC As Integer, N As Long
Set HojaPol = Worksheets("Detalles") 'hoja donde estan los datos
intFich = FreeFile(0)
lngContL = 3 'se empezara a exportar en la fila 2 (se entiende que la 1ª es de títulos)
intContC = 11 'se exportaran las columnas 1 a 6
If Dir("C:\BRQ.txt") <> "" Then Kill ("C:\BRQ.txt") 'si ya existe C:\Fichero.txt, lo borra.
Open "C:\BRQ.txt" For Random As intFich Len = 1
While Not IsEmpty(HojaPol.Cells(lngContL, 1))
For N = 1 To intContC
If intContC = 2 Then '<== el If 'interceptor' de la columna 2
strSpc = String(10 - Len(HojaPol.Cells(lngContL, N + 1)), " ") '<== 'habra' 10 espacios MENOS los que ocupe la col. 3
Else: strSpc = "," '<== para todos los demas casos, las columnas se separan por solo un espacio
End If
strCad = strCad & Format(HojaPol.Cells(lngContL, N), HojaPol.Cells(lngContL, N).NumberFormat) & strSpc '<== los 'necesarios'
Next N
strCad = Left(strCad, Len(strCad) - 1) & vbNewLine 'para quitar el ultimo delimitador por la derecha y añadir el salto de linea
For N = 1 To Len(strCad)
strCar = Mid(strCad, N, 1)
lngNumReg = lngNumReg + 1
Put intFich, lngNumReg, strCar
Next N
lngContL = lngContL + 1
strCad = ""
Wend
Close intFich
Set HojaPol = Nothing
End Sub