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: 16 años
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: 16 años, 3 meses
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: 16 años
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 StringFmtoName As StringAnexo 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 LonglRows As Longcampo 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 0 To datoscols 1
    
If Trim(Cells(11).Value) = "" Then Exit For
    
Next k
    
If 0 Then GoTo ErrorHandler
    datoscols 
k


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


For 4 To datosrows
    
If Trim(Cells(i1).Value) = "" Then Exit For
    For 
2 To datoscols
            campo 
Cells(3j).Value
            espaciosalf 
String((campo Len(Trim(Cells(ij).Value))), " ")
            
espacios String((campo Len(Trim(Cells(ij).Value))), "0")
           If (
Cells(2j).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 11:22.