Macro para nombre archivo VBA

Hola!
Me gustaría me pudieseis ayudar... El caso es el siguiente:
Quiero hacer un programilla para numerar facturas.
Todas las facturas las solemos guardar en la carpeta 'FACTURAS' con el siguiente nombre: nº factura + nombre cliente. Pero metemos el nº de factura a mano, pudiendo llegar a confundirnos.
Quiero que al abrir una nueva factura automáticamente me lea la última factura dentro de la carpeta 'FACTURAS' y le dé el nº de factura correspondiente a la nueva.
Lo vemos más fácil con un ejemplo:
P.ejemplo:
FACTURAS >>>
        - 01 Pepito.xls
        - 02 Juanito.xls
Es decir, si yo guardo en range("a1"). Value="nº de factura" y meto en range("a2").value="nombre cliente" quiero que me ponga (en el caso del ejemplo) range("a1"). Value=03 para luego poder mandarlo guardar como:
ActiveWorkbook.SaveAs Filename:= range("a1").value + range("a2").value + ".xls"
Es decir: 03 Pedrito.xls
Seguro que alguien me puede ayudar, ya que seguramente será una tontería! (Espero haberme explicado correctamente...)
Gracias!

1 Respuesta

Respuesta
1
Según tu ejemplo, el momento para incrementar la celda será entonces al guardar:
range("A1") = range("A1")+1
ActiveWorkbook.SaveAs Filename:= range("a1").value + range("a2").value + ".xls"
Esto significa que si empezás con 0, la primer factura a guardar será 1.
Hola, lo primero gracias por molestarte en responder!
Entiendo la idea, y no me parece mala... ¿pero habría posibilidad de hacerlo leyendo los archivos existentes en la carpeta?
Gracias!
Lo que estás tratando de hacer no solo es complicado sino además te demorará el proceso de guardado.
Como los libros en una carpeta pueden estar ordenados por nbre, por fecha de actualización, etc, una rutina para encontrar el mayor nbre, debe recorrer cada libro, comparar su nbre y guardar el mayor, seguir buscando...
Con 2 o 3 libros no habrá problemas. Pero si por cada factura guardarás un libro, salvo que tu negocio vaya muy mal y solo realices 2 ventas al mes, notarás que será un proceso que llevará bastante tiempo innecesario.
Por lo tanto te sugiero replantear la idea. No siempre los usuarios evalúan con gusto respuestas así, calificando mal al experto, pero en el futuro te acordarás bien de mi.
La mejor opción es aprovechar la rutina para guardar como un historial de fact emitidas o guardadas. Puede ser en la misma hoja o en otra, con los campos de nro, fecha, cliente e importe por ejemplo. Muchos e interesantes informes pueden surgir de un historial así.
O sino tal como te mencioné al inicio. Una celda donde se vaya actualizando el nro.
¿Cómo no voy a aceptar tu respuesta? Me parece muy correcta, solo que quería saber si existía la posibilidad de hacerlo como a mi se me había ocurrido hacerlo en un principio, más que nada para aprender, y por si necesito para otras aplicaciones!
Muchas gracias de verdad!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas