Macro con numero consecutivo tipo factura

Buenas tardes, necesito ayuda, quiero necesito una macro que me genere un numero consecutivo y que se separe con el año, Por Ej. 001-2009, 002-2009 me explico, esto es para una factura.
Saludos,,,

1 respuesta

Respuesta
1
Excel tiene un problema con los ceros a la izquierda que las funciones de análisis de cadenas de texto no los reconoce y por ello te he tenido que hacer una macro un tanto complicada para resolver tu problema, esta macro insertará el formato que tu quieres hasta un numero 9999-2009 para más allá de este valor habría que añadir variables y continuar dando condiciones, espero que te sirva la pones en un modulo y la ejecutas cuando necesites:
Sub numero_consecutivo()
Dim numero As String
Dim pr, se, ter, total, mil, valor As Integer
Range("A1").Select
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Loop
numero = ActiveCell.Offset(-1, 0).Text
pr = Left(numero, 1)
se = Left(numero, 2)
ter = Left(numero, 3)
total = Len(numero)
valor = se & ter
ActiveCell.NumberFormat = "@"
If pr = "0" And se = "00" And ter <> "9" Then
ActiveCell.Value = "00" & valor + 1 & "-" & "2009"
GoTo final
End If
If pr <> "0" And total = "8" Then
ActiveCell.Value = ter + 1 & "-" & "2009"
GoTo final
End If
If pr <> "0" And total > "8" Then
mil = Left(numero, 4)
ActiveCell.Value = mil + 1 & "-" & "2009"
GoTo final
End If
If pr <> "0" And se <> "00" Then
ActiveCell.Value = valor + 1 & "-" & "2009"
GoTo final
End If
If pr = "0" And se = "00" And ter = "9" Then
ActiveCell.Value = "0" & valor + 1 & "-" & "2009"
GoTo final
End If
If pr = "0" And se <> "00" And ter <> "99" Then
ActiveCell.Value = "0" & ter + 1 & "-" & "2009"
GoTo final
End If
If pr = "0" And ter = "99" Then
ActiveCell.Value = ter + 1 & "-" & "2009"
End If
final:
End Sub
Si te ha servido puntúa y finaliza la consulta, un comentario siempre es bienvenido. Gracias.
>Un saludo
>Julio
Estimado Julio:
No logro realizar la operación, inserto una imagen y le cargo la macro que me enviaste y me dice error 1004, al momento que la quiero ejecutar. Me puedes ayudar con esto.
Muchas Gracias de ante mano.
Saludos,,,
Estimado Julio :
Después de mucho esfuerzo logre insertar la macro, pero tengo 2 problemitas, cuando la ejecuto cambia de celda y al llegar al 0010-2009, retrocede al 0001-2009. No quiero ni lo uno ni lo otro.
Yo tengo una hoja de excel que tiene 4 botones cada uno esta hipervinculado con otra hoja a través de una macro, los botones están de la siguiente manera:
1. Proformas
2. Ordenes de Compra
3. Solicitud de Trasferencia
4. Proyectos.
Dentro de cada botón tengos más botones, en el caso de proformas tengo 20 botones que corresponde a mis clientes, la macro que necesito es que yo al entrar a cualquiera de mis clientes se me coloque el numero consecutivo antes solicitado, de tal manera que exista una secuencia, es decir que si mi cliente POR me solicita una proforma se inserte un numero, y después mi cliente Y me solicita otra proforma se coloque un numero consecutivo a mi cliente X. Me explico.
Saludos,,
Esto no se parece en nada a tu consulta original. Según lo planteas es imposible saber como tengo que hacerlo desconozco las hojas de los clientes en que hoja llevaras tus números consecutivos, es que hay que ponerlos en alguna, porque los datos en la macro desapararecen al cerrar el libro si vuelves a abrirlo no sabemos en que numero nos hemos quedado para continuar. Tienes que poner una hoja auxiliar donde estén todos los números y que cada vez que haces una factura tome el numero de la lista y se quede activo el siguiente para que vuelva a tomarlo cuando lo necesites.
Mira a ver si te ha solucionado tu problema.
>Un saludo
>Julio
Estimado Julio:
Si me parece y acabas de aclararme la mente con este ultimo comentario tuyo, te agradezco por la macro que me enviaste ya la ejecute bien y esta funcionando.
Saludos,,,
Noe.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas