Hace poco me pidieron una ayuda para poder cargar la base de datos de empleados a la plataforma web del Ministerio del Trabajo (http://www.minpptrass.gob.ve). Recientemente el gobierno decretó que es obligatorio que todas las empresas se den de alta en el “Sistema de Registro Nacional de Empresas y Establecimientos“. Lo anterior es para que las empresas reporten los empleados que tienen y han tenido a fin de llevar un control. La ayuda que me pidieron fue para facilitar la carga de grandes cantidades de usuarios en forma sencilla: vía archivo TXT.

La plataforma de carga de empleados tiene a disposición de los usuarios la posibilidad de importar la información a través de un archivo TXT. Existe un instructivo, pero es algo confuso y tiene errores inclusive; siendo honestos, crear esos archivos “a mano” es cuando menos un dolor de cabeza.

Así que aproveché las bondades del Office Excel y me creé un libro de trabajo con macros habilitadas: en una hoja se van introduciendo los datos y en la otra hoja quedan con el formato listo para exportar, incluso con un botón que al apretar genera el archivo TXT con el formato requerido. Una vez creado este archivo, sólo es cosa de subirlo a la página del Ministerio del Trabajo y listo.

Adicionalmente, para el caso de la persona que me pidió la ayuda, pude vincularle su base de datos de trabajadores existentes con esta hoja para convertir a TXT. De esta forma, tan sólo tiene que tener al día su propia base de datos y se retroalimenta automáticamente a la hoja de conversión, por lo que es aun más simple llevar el control exigido por el Ministerio del Trabajo, simplificando horas de trabajo (además repetitivo) así como reduciendo la posibilidad de errores.

Considerando que estoy poniendo a disposición de todas las personas este archivo, lo hago bajo la licencia Creative Commons:

Licencia de Creative Commons
Conversor de formato a TXT – Minpptrass by Alberto Rodriguez is licensed under a Creative Commons Reconocimiento-CompartirIgual 3.0 Unported License.

Por lo anterior, doy permiso para que cualquiera lo descargue, copie, distribuya y cree contenidos basados en este siempre y cuando conserve la información de origen y el mismo tipo de licencia.

NOTA: ES IMPORTANTE indicar al programa de Excel que permita la ejecución de Macros para poder generar el archivo TXT.

Dejen el comentario que deseen respecto del funcionamiento de la hoja que con gusto lo responderé. Si requiriesen apoyo para integrarlo con su base existente, estoy a la orden para ayudar (incluye un costo dependiendo de la complejidad de la base de datos que tengan) y facilitarles el trabajo.

Aquí les dejo unas imágenes para que aprecien como funciona la hoja de excel:

Hoja de Carga de Datos

Hoja con el formato listo para Exportar

Detalle del botón para exportar al formato TXT

Captura de como queda el archivo TXT generado

Código de Visual Basic utilizado

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ExportToTextFile
' This exports a sheet or range to a text file, using a
' user-defined separator character.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Sub ExportToTextFile(FName As String, _
Sep As String, SelectionOnly As Boolean, _
AppendData As Boolean)

Dim WholeLine As String
Dim FNum As Integer
Dim RowNdx As Long
Dim ColNdx As Integer
Dim StartRow As Long
Dim EndRow As Long
Dim StartCol As Integer
Dim EndCol As Integer
Dim CellValue As String
Application.ScreenUpdating = False
On Error GoTo EndMacro:
FNum = FreeFile

If SelectionOnly = True Then
With Selection
StartRow = .Cells(1).Row
StartCol = .Cells(1).Column
EndRow = .Cells(.Cells.Count).Row
EndCol = .Cells(.Cells.Count).Column
End With
Else
With ActiveSheet.UsedRange
StartRow = .Cells(1).Row
StartCol = .Cells(1).Column
EndRow = .Cells(.Cells.Count).Row
EndCol = .Cells(.Cells.Count).Column
End With
End If

If AppendData = True Then
Open FName For Append Access Write As #FNum
Else
Open FName For Output Access Write As #FNum
End If

For RowNdx = StartRow To EndRow
WholeLine = ""
For ColNdx = StartCol To EndCol
CellValue = Cells(RowNdx, ColNdx).Value
WholeLine = WholeLine & CellValue & Sep
Next ColNdx
WholeLine = Left(WholeLine, Len(WholeLine) - Len(Sep))
Print #FNum, WholeLine
Next RowNdx

EndMacro:
On Error GoTo 0
Application.ScreenUpdating = True
Close #FNum

End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' END ExportTextFile
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' DoTheExport
' This prompts the user for the FileName and the separtor
' character and then calls the ExportToTextFile procedure.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub DoTheExport()
Dim FileName As Variant
Dim Sep As String
FileName = Application.GetSaveAsFilename(InitialFileName:=vbNullString, FileFilter:="Text Files (*.txt),*.txt")
If FileName = False Then
''''''''''''''''''''''''''
' user cancelled, get out
''''''''''''''''''''''''''
Exit Sub
End If

Debug.Print "FileName: " & FileName, "Separator: " & Sep
ExportToTextFile FName:=CStr(FileName), Sep:=";", _
SelectionOnly:=False, AppendData:=False
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' END DoTheExport
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Temas Similares

Comentarios

comentarios

Powered by Facebook Comments