Contenido
KONTROLID coloca a disposición de los clientes para su reuso unas macros desarrolladas en VBA para Excel con el fin de facilitar la depuración de tablas de datos en Excel que sirven de insumo para archivos .csv que luego se suben a Recursos Compartidos en el servidor web de KontrolID.
El archivo Excel que contiene la macro (extensión .xlsm) se llama BDProductos.xlsm y cuando lo edita en Excel, deberá habilitar las macros, ya que por seguridad Excel las deshabilita:

Las macros corren sobre la hoja que esté activa. El archivo contiene una sóla hoja llamada BDProductos y es la que debería reemplazar por la hoja que contenga sus datos. Esto simplemente lo hace mediante la opción de Excel de copiar hoja. Después, aunque no es requisito, puede Eliminar la hoja BDProducto y renombrar su archivo Excel.
Se recomienda mantener el archivo nuevo en una carpeta independiente, toda vez que durante la ejecución de la macro, se guardan el archivo Nombre.csv, una copia de la versión anterior si existe NombreOLD.csv y un archivo intermedio NombreANSI.csv



Para ver el contenido de las macros, haga click en menú Vista:

Hay 3 macros principales que están listas para usar sin ningún cambio adicional o si lo prefiere, puede hacer algunos cambios para personalizar mejor su experiencia

En el siguiente video usted podrá ver el uso de este archivo:
BorrarDatos
Esta macro simplemente borra todos los datos excepto la primera fila de campos (cabecera o encabezado). Esta se usa cuando los datos son todos introducidos manualmente y la reusa frecuentemente. Para ejecutar simplemente en el menú de Macro hag click en Ejecutar y listo. Recuerde que puede ver el contenido de la macro haciendo clic en Modificar.


DepurarDatos
Esta macro provee una rutinas de verificación de la tabla de datos con el fin de asegurar su compatibilidad para ser convertida en archivo csv y prevenir errores comunes potenciales.

Revisa 4 errores que se pueden presentar:
1- Filas en Blanco

Los archivos CSV no deberían contener filas en blanco.
2- Espacios innecesarios entre palabras.
Nombre Apellido vs. Nombre Apellido
Esto no es necesariamente un error pero se puede presentar confusión a la hora de hacer búsquedas en las tablas. Revisa las palabras y deja sólo un espacio entre las mismas.
3- Caracteres inválidos en nombre de campos o cabeceras.
Los nombres de los campos, títulos de las columnas, cabeceras, encabezados o como los llame y que corresponden a la primera fila de la tabla no pueden contener caracteres especiales tipo %$ o latinos, tildes ni espacios entre los mismos. Sólo están permitidos letras, números y raya al piso.
Esta macro identifica y señala en fondo rojo la cabecera que tiene tal situación:


4- Validar Columnas sin encabezado.
No puedes existir datos en columnas que no contengan cabeceras. Se verifica el número de columnas de cada fila vs. la primera fila de encabezados.
Cuando el número de columnas es menor, se despliega una advertencia donde hay faltante de datos, aunque esto no es un error.
Cuando el número de columnas es mayor, se despliega una mensaje de Error y se señala en rojo el dato que aparece sin cabecera



Puede ver el detalle de cada procedimiento y subrutinas relacionadas haciendo click en modificar.
Para facilitar la organización, todo el código está en el módulo DepuracionHojaExcel:

EnviarAKontroliD
Esta macro contiene los procedimientos para convertir la tabla en archivo csv codificado utf-8 y luego lo carga directamente a KONTROLID a través de la API. Para tal fin se requiere el usuario y contraseña del administrador de la organización para acceder a Recursos Compartidos de KontrolID.

De manera opcional esta macro contiene un procedimiento que envía una notificación a un correo electrónico del estado del proceso.
Esta macro ejecuta inicialmente la macro DepurarDatos referida arriba, y luego pregunta las credenciales de acceso y correo electrónico de envío de esta notificación.

Al final hay un mensaje de respuesta de la carga y después se cierra el archivo.

Si ha incluido un correo le llegará una notificación.

El código completo se encuentra en el módulo EnvioAKontroliD:

Para enviar el correo electrónico, la macro hace uso de una función para validar el formato del correo electrónico. Aunque esto no detiene el proceso de cargue, se usa para validación del envío de correo.

Que puede modificar de la Macro
El código completo si quiere. Puede incluir si necesita su propio código para descargar sus datos desde una fuente externa antes de hacer la depuración.
Para simplificar el proceso y evitar tener que colocar cada vez su usuario y password de acceso a la API, puede incluir directamente estos valores en el código. Busque el procedimiento pvPostFile en el módulo EnvioAKontrolID, las variables resaltadas User y Password colocando allí los valores entre comillas dobles:

Ejemplo:

Para incluir de forma permanente el correo electrónico de la notificación debe ir al procedimiento EnviarEmail en el mismo módulo
EnvioAKontrolID. Cambie por un texto entre comillas dobles la parte resaltada correspondiente a .To

Ejemplo:

Si hace esos cambios, ya no es necesario la visualización de la ventana de autenticación, la cual puede ocultar en el procedimiento EnviarAKontrolID en la línea resaltada cambiando CredencialesKontroliD.Show por CredencialesKontroliD.Hide o eliminando la instrucción.

Así:

Seguridad de la Macro
El código no tiene ninguna protección de contraseña. Se recomienda que una vez que haya personalizado su solución agregue una contraseña para que el código no sea visible sin ésta. Vaya a Herramienta Propiedades de APICargaDatos, pestaña Protección y allí colocar la contraseña.


Si marca Bloquear Proyecto para Visualización deberá desbloquear primero para ver la pestaña del código o hacer una modificación.

Si no se marca, se puede acceder pero deberá ingresar la contraseña para editar.

Propiedad y garantía de la Macro
El código es de libre uso, y se suministra sin ninguna garantía ni soporte a modificaciones realizadas por el usuario. El usuario y contraseña suministrados son de ejemplo. La organización que haga uso de este API debe tener una habilitación para tal fin. El servicio de correo a través del SMTP de KontrolID está sujeto a una política de uso justo y bajo ninguna circunstancia se puede dar uso distinto a notificaciones relacionadas con esta macro. En otras palabras no esta permitido el uso de este SMTP para aplicaciones propias, aún para pruebas.
