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

pasar de excel a archivo Plano

Estas en el tema de pasar de excel a archivo Plano en el foro de Ofimática en Foros del Web. buenas tardes compañeros tengo el siguiente archivo https://www.dropbox.com/s/my8ugbeu42...2015.xlsb?dl=0 que contiene cierta informacion del cual requiero una macro que me genere el siguiente archivo plano https://www.dropbox.com/s/qy5qv5aldt...-XXXX.DIS?dl=0 ...
  #1 (permalink)  
Antiguo 01/07/2015, 15:43
 
Fecha de Ingreso: noviembre-2008
Mensajes: 80
Antigüedad: 17 años, 10 meses
Puntos: 1
pasar de excel a archivo Plano

buenas tardes compañeros tengo el siguiente archivo

https://www.dropbox.com/s/my8ugbeu42...2015.xlsb?dl=0

que contiene cierta informacion del cual requiero una macro que me genere el siguiente archivo plano

https://www.dropbox.com/s/qy5qv5aldt...-XXXX.DIS?dl=0

algunos de ustedes me podra orientar sobre que pasos o cual es la mejor forma para abordar mi requerimiento

de antemano gracias por la ayuda prestada
  #2 (permalink)  
Antiguo 02/07/2015, 00:40
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 18 años, 1 mes
Puntos: 2237
Respuesta: pasar de excel a archivo Plano

A ver si este ejemplo te sirve: http://www.excel-easy.com/vba/exampl...text-file.html
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 02/07/2015, 09:07
 
Fecha de Ingreso: noviembre-2008
Mensajes: 80
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: pasar de excel a archivo Plano

buen dia alguien me podria explicar este codigo de VBA

Código PHP:
Public Function GeneradorXml(FullPath As String, FmtoName As String, Anexo As String) As Boolean
Application
.ScreenUpdating = False
On Error GoTo ErrorHandler

Dim colIndex 
As Integer
Dim rwIndex 
As Integer
Dim asCols
() As String
Dim oWorkSheet 
As Worksheet
Dim Datosworksheet 
As Worksheet
Dim sName 
As String
Dim lCols 
As Long, lRows As Long, campo As Long
Dim iFileNum 
As Integer

Set oWorkSheet 
= ThisWorkbook.Worksheets(1)
sName = oWorkSheet.Name
lCols 
= oWorkSheet.Columns.Count
lRows 
= 2

ReDim asCols
(lCols) As String

iFileNum 
= FreeFile
Open FullPath 
For Output As #iFileNum

Worksheets(FmtoName).Activate
datosname 
= Worksheets(FmtoName).Name
datoscols 
= Worksheets(FmtoName).Columns.Count
datosrows 
= Worksheets(FmtoName).Rows.Count
campo 
= 0


For k = 0 To datoscols - 1
    
If Trim(Cells(1, k + 1).Value) = "" Then Exit For
    
Next k
    
If k = 0 Then GoTo ErrorHandler
    datoscols 
= k


For m = 0 To datosrows - 1
    
If Trim(Cells(m + 1, 1).Value) = "" Then Exit For
    
Next m
    
If m = 0 Then GoTo ErrorHandler
datosrows 
= m


For i = 4 To datosrows
    
If Trim(Cells(i, 1).Value) = "" Then Exit For
    For 
j = 2 To datoscols
            campo 
= Cells(3, j).Value
            espaciosalf 
= String((campo - Len(Trim(Cells(i, j).Value))), " ")
            
espacios = String((campo - Len(Trim(Cells(i, j).Value))), "0")
           If (
Cells(2, j).Value) = "Num" Then
           
Print #iFileNum, espacios & Trim(Cells(i, j).Value);
           
Else
           Print 
#iFileNum, Trim(Cells(i, j).Value) & espaciosalf;
           
End If
  
    
Next j
Print #iFileNum, vbLine
Next i


ExportToXml 
= True
MsgBox 
"Archivo Generado Correctamente en c:\" & FmtoName & ".DAT     ", vbInformation
oWorkSheet.Activate
End

ErrorHandler:
If iFileNum > 0 Then Close #iFileNum
MsgBox "
No se pudo generar el archivo " & FmtoName & ".TXT'  " & vbCrLf & vbCrLf & _
"1-. Verifique y corrija el siguiente campo que excedio el espacio asignado" & vbCrLf & vbCrLf & _
"HOJA         :  " & datosname & vbCrLf & "COLUMNA  :  " & Cells(1, j).Value & vbCrLf & "FILA           :  " _
& i & vbCrLf & vbCrLf & "Campo : '" & Cells(i, j) & "" & vbCrLf & "
Ancho Maximo del Campo : " & Cells(3, j).Value _
& vbCrLf & "
Ancho del Registro            : " & Len(Trim(Cells(i, j).Value)), vbCritical
oWorkSheet.Activate
Exit Function
End Function 

Etiquetas: excel
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 02:53.