Autonumerar facturas

24/11/2007 - 00:34 por Carmelo J. Morales Muñoz | Informe spam
¡Hola!

Me han hecho una pregunta que no se como responder..Paso a comentar:

Me ha dicho un amigo que en excell hace sus facturas, pero que tiene que
cambiar a mano la numeración de las facturas él mismo. Me ha preguntado si
existe algún modo de que sea excell quien lleve el control del número de
factura agregando un contador +1 a cada nueva factura.

He estado mirando las funciones que hay, pero no veo por donde cogerlo.

¿Creen que es posible?.

gracias!

Preguntas similare

Leer las respuestas

#1 Ivan
24/11/2007 - 01:07 | Informe spam
hola Carmelo

Me ha dicho un amigo que en excell hace sus facturas, pero que tiene que
cambiar a mano la numeración de las facturas él mismo. Me ha preguntado si
existe algún modo de que sea excell quien lleve el control del número de
factura agregando un contador +1 a cada nueva factura.
¿Creen que es posible?.



[creo que] si, y de muhas maneras, pero creo que en el planteamiento
de 'tu amigo' faltan algunos datos

excel como tal dificilmente puede hacer nada sino es a traves de las
herramientas que pone a nuestra disposicion (empezando por los Libros,
Hojas y Rangos/Celdas) y en base a la informacion que le facilitemos y
la solucion que [y cuando/como] le requiramos

un poco mas en serio, el primer problema en tu exposicion es la falta
de detalles. Pej:

a) supongo que con "en excell hace sus facturas" te refieres a que
tiene un libro (¿plantilla?) que utiliza para generar sus facturas

b) supongo que en este libro tiene una hoja 'modelo' de la factura en
la que introduce los datos, y una de cuyas celdas esta destinada al nº
de factura

c) supongo que tiene algun mecanismo para indicarle a excel en que
momento da por aceptada/valida la factura (se supone que una factura
es algo serio y que una vez emitida normalmente no tiene vuelta a
atras, con lo cual ha de estar seguro del momento de la emision)

una vez tirado este rollo, creo que si lo que hace se parece un poco a
esto que he comentado, le bastaria pej. con conservar en una celda
(podria ser en una hoja oculta) el nº de la ultima factura, o aun
mejor un listado de facturas emitidas ordenadas y romar el ultimo del
campo nº e incrementarle 1, por supuesto actualizando la lista (o la
celda en el 1er caso) al confirmar la emision de la factura.

para hacerlo volvemos a lo mismo, fundamentalmente dependera de como
sea el archivo, como y cuando quiera realizar las actualizaciones,
etc,..

y se podria hacer [creo] tanto por formulas como con codigo, pero ya
sabes, con algun detalle que otro mas

pero bueno, contestando a tu pregunta: poderse se puede

un saludo
Ivan

PD: y si te animas a ampliar datos y necesidades seguro que alguien se
anima
Respuesta Responder a este mensaje
#2 Carmelo J. Morales Muñoz
24/11/2007 - 13:13 | Informe spam
Muchas gracias!

Has acertado en casi todo, pero creo que no tiene bien organizada excel para
el trabajo que está haciendo. Ya que en una hoja lleva todas las facturas de
un cliente, es decir, tiene un cliente en cada hoja, y en cada hoja tiene
un ramgo de celdas que repite para cada factura.

No se muy bien que decirle, sobre todo talvez le plantee otra forma de
hacerlo pero para ello necesitaría saber como poder tener en una celda de
una hoja aparte, un contador (valor número) y como poner aumentarlo por
fórmulas .

No llego a este nivel que necesito. A ver si dispones de unos minutos y me
das alguna pista mas o si alguien me sugiere algunas funciones que puedan
estar relacionadas o la lógica a utilizar

desde ya un saludo!
Respuesta Responder a este mensaje
#3 Ivan
24/11/2007 - 22:52 | Informe spam
"Carmelo J. Morales Muñoz" escribió en el mensaje
news:
Muchas gracias!

Has acertado en casi todo, pero creo que no tiene bien organizada excel para el trabajo que está haciendo. Ya que en
una hoja lleva todas las facturas de un cliente, es decir, tiene un cliente en cada hoja, y en cada hoja tiene un
ramgo de celdas que repite para cada factura.

No se muy bien que decirle, sobre todo talvez le plantee otra forma de hacerlo pero para ello necesitaría saber como
poder tener en una celda de una hoja aparte, un contador (valor número) y como poner aumentarlo por fórmulas .

No llego a este nivel que necesito. A ver si dispones de unos minutos y me das alguna pista mas o si alguien me
sugiere algunas funciones que puedan estar relacionadas o la lógica a utilizar

desde ya un saludo!
Respuesta Responder a este mensaje
#4 Ivan
25/11/2007 - 01:21 | Informe spam
hola Carmelo,

en una hoja lleva todas las facturas de




un cliente, es decir, tiene un cliente en cada hoja, y en cada hoja tiene
un ramgo de celdas que repite para cada factura.



aunque para gustos no hay nada escrito, te comento lo que yo le sugeriria [que no tiene por que ser lo mejor en
absoluto, solo como yo creo que lo haria]

a) tendria una sola hoja con el modelo de factura. Intentaria bloquear los campos 'fijos' [enunciados] y la celda donde
vaya el nº de factura

b) tendria una sola hoja con un listado de todas las facturas (si su facturacion es muy alta, para no cargar el libro,
podria 'archivarlas' por trimestre [o por mes, o..] en otro libro (o directamente tenerlas en otro libro ) de todos los
clientes

c) opcionalmente una 3ª hoja para busquedas por cliente. Es decir, si quiere ver solo las facturas de determinado
cliente filtrar, o buscar en esta hoaj solo los registros correspondientes a el.

como poder tener en una celda de




una hoja aparte, un contador (valor número) y como poner aumentarlo por
fórmulas .



la verdad es que con formulas no controlo gran cosa, y aunque estoy convencido que se podra (el actualizar el numero de
la hoja oculta sin crear una referencia circular), dejo esa parte por si alguien un poco mas ducho se anima a dar ideas

se me oacurren al menos estas dos ideas:

.-opcion 1) si siguiera el planteamiento anterior y optara por mantener un lista unica con las facturas emitidas

a) en la celda donde piense introducir el nº de factura podria poner una formula parecida a esta=>

=MAX(Lista_Facturas!A:A)+1 donde Lista_Facturas es el nombre de la hoja con la idem y A:A la columna en que
se guarda el nº (la A en este ej.)

b) pondria una macro parecida a esta en un modulo normal =>

Sub PruebaFactura()
Dim ultF As Integer
With Worksheets("Factura")
If MsgBox("¿Confirmas la emision de la factura Nº " & _
.Range("b1").Value, vbQuestion + vbYesNo) = vbYes Then
ultF = Worksheets("Lista_Facturas").[a65536].End(xlUp).Row + 1
Worksheets("Lista_Facturas").Range("a" & ultF & ":d" & ultF).Value = _
Array(.[b1].Value, .[b2], .[e1], .[e27].Value)
End If
End With
End Sub

en la que hay que tener en cuenta (a la hora de adaptarla) que los campos (pej: nº factura, cliente, fecha y total) de
la factura que se van a cargar en la lista de facturas estan en las celdas: [b1], [b2], [e1], y [e27] de la hoja llamada
Factura y son los que vamos a cargar mediante la funcion de vba 'array' en la 1º fila libre de la lista fact. En el ej.
el nuevo registro abarcaria de la columna A a la D, pero puedes poner los que quieras siempre y cuando los hagas
corresponder tanto en orden como en nº con las celdas de origen (correspondientes a la hoja Factura) pasadas en la
funcion array.

c) pondria un boton en una barra de herramientas (click derecho sobre una barra => personalizar =comandos=> en
categorias : 'macros'=>arrastrar el 0sonriente' solecillo <puedes poner otro> a la barra en que quieras ponerlo => una
vez ubicado => modificr seleccion => asignar macro => del cuadro de dialogo seleccionas 'Prueba_Factura'

d) pulsaria el boton cuando hubiera rellenado la fatura

.- opcion 2) si prefiere mantener las hojas por cliente (llamadas como cada cliente), pero una hoja Factura para todos
los clientes

a) en lugar de una celda de otra hoja usaria una de la propia hoja Factura, en una zona alejada del area de
vision habitual (podria ocultarse la columna) pej: AA1

b) en la celda donde piense introducir el nº de factura podria poner una formula parecida a esta=>

=$AA$1+1

c) en este caso la macro seria algo parecido a esto:

Sub PruebaFactura_2()
Dim ultF As Integer
With Worksheets("Factura")
If MsgBox("¿Confirmas la emision de la factura Nº " & _
.Range("b1").Value, vbQuestion + vbYesNo) = vbYes Then
ultF = Worksheets(.[b2]).[a65536].End(xlUp).Row + 1
Worksheets(.[b2]).Range("a" & ultF & ":d" & ultF).Value = _
Array(.[b1].Value, .[b2], .[e1], .[e27].Value)
.[aa1] = .[aa1] + 1
End If
End With
End Sub

los comentarios son +/- igual al otro caso, con la salvedad de introducir correctamente el nombre del cliente (y por
tanto de la hoja donde guardar el resumen de la factura) en este caso en la celda B2 de la factura

d) lo mismo que el boton del caso anterior pero asignandole la macro 'Prueba_Factura_2'

bueno, disculpa el rollo y espero que se haya entendido algo. De todas formas si te interesa el tema intenta (a parte
por supuesto del recurso a estos foros y ala web en general) tirar lo mas posible de F1 (ayuda). En el caso de VBa, por
ej. estando en el editor, situa el cursor sobre los terminos sobre los que tengas dudas y pulsa F1, normalmente te
devolvera la ayuda referida a dicho termino, y aunque al principio cueste comprenderla, poco a poco se hace
indispensable

bueno, lo dicho, espero te ayude en algo y si quieres comentas (ojo: no me hagas caso 100x100 pues no soy ningun
experto)

un saludo
Ivan


NOTA: los codigos no llevan prevencion de errores (pej. si no se han rellenado campos obligatorios) pero esa creo que es
otra historia
Respuesta Responder a este mensaje
#5 Carmelo J. Morales Muñoz
25/11/2007 - 14:52 | Informe spam
muchas gracias Ivan, me doy cuenta que excel sobrepasa muuuUUUucho lo que
pensaba quye se podia hacer con él.

A ver si consigo aprender un poco de programación excel, pero no se por
donde empezar, si pudieras indicarme algun manual que conozcas que sea bueno
para principiante en excel.

un saludo!
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida