Foros del Web » Soporte técnico » Ofimática »

Problemas con códkigo para generar archivo plano txt

Estas en el tema de Problemas con códkigo para generar archivo plano txt en el foro de Ofimática en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 22/03/2013, 09:46
 
Fecha de Ingreso: agosto-2006
Mensajes: 56
Antigüedad: 17 años, 7 meses
Puntos: 0
Información Problemas con códkigo para generar archivo plano txt

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 original
  1. Private Sub CommandButton1_Click()
  2. Dim strSpc As String '<== la nueva variable propuesta
  3. Dim HojaPol As Worksheet
  4. Dim intFich As Integer, lngNumReg As Long, strCad As String, strCar As String * 1
  5. Dim lngContL As Long, intContC As Integer, N As Long
  6. Set HojaPol = Worksheets("Detalles") 'hoja donde estan los datos
  7. intFich = FreeFile(0)
  8. lngContL = 3 'se empezara a exportar en la fila 2 (se entiende que la 1ª es de títulos)
  9. intContC = 11 'se exportaran las columnas 1 a 6
  10. If Dir("C:\BRQ.txt") <> "" Then Kill ("C:\BRQ.txt") 'si ya existe C:\Fichero.txt, lo borra.
  11. Open "C:\BRQ.txt" For Random As intFich Len = 1
  12. While Not IsEmpty(HojaPol.Cells(lngContL, 1))
  13. For N = 1 To intContC
  14. If intContC = 2 Then '<== el If 'interceptor' de la columna 2
  15. strSpc = String(10 - Len(HojaPol.Cells(lngContL, N + 1)), " ") '<== 'habra' 10 espacios MENOS los que ocupe la col. 3
  16. Else: strSpc = "," '<== para todos los demas casos, las columnas se separan por solo un espacio
  17. End If
  18. strCad = strCad & Format(HojaPol.Cells(lngContL, N), HojaPol.Cells(lngContL, N).NumberFormat) & strSpc '<== los 'necesarios'
  19. Next N
  20. strCad = Left(strCad, Len(strCad) - 1) & vbNewLine 'para quitar el ultimo delimitador por la derecha y añadir el salto de linea
  21. For N = 1 To Len(strCad)
  22. strCar = Mid(strCad, N, 1)
  23. lngNumReg = lngNumReg + 1
  24. Put intFich, lngNumReg, strCar
  25. Next N
  26. lngContL = lngContL + 1
  27. strCad = ""
  28. Wend
  29. Close intFich
  30. Set HojaPol = Nothing
  31. End Sub

Etiquetas: hoja, macro, plano, todo, txt
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:11.