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 original
Private 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