** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Macro que genere un número consecutivo
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Macro que genere un número consecutivo

 Responder Responder
Autor
Mensaje
Ester Ortiz Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 03/Julio/2017
Localización: Guatemala
Estado: Sin conexión
Puntos: 13
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Ester Ortiz Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Macro que genere un número consecutivo
    Enviado: 03/Julio/2017 a las 18:44
Hola a todos

Necesito trabajar una macro que me genere un número consecutivo cuando agrego una hoja nueva. Tengo un archivo y sus hojas estan enumeradas con el siguiente nombre OC (988), con una macro pude hacer que al momento de agregar una hoja nueva el nombre de la hoja cambie automaticamente de OC (988) pasa a ser OC (989).

Ahora lo que necesito es: que la celda F8 (es una celda combinada F8 y G8) cambie el correltaivo de la factura según la hoja activa, es decir... si la hoja es OC (989) el correlativo de esa celda debería ser: No. C-989-2017

Si agrego una hoja nueva OC (990) el correlativo de la celda deberia cambiar a No. C-990-2017

Podrian ayudarme! Muchas gracias... Smile
Ester Ortiz
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4913
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita AnSanVal Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 03/Julio/2017 a las 21:41
«... con una macro pude hacer que al momento de agregar una hoja nueva el nombre de la hoja cambie automáticamente de OC (988) pasa a ser OC (989)

Muestra el código de esa macro, y será más sencillo decirte como modificar para que (además) te escriba el «consecutivo» en [F8].


«Ahora lo que necesito es: que la celda F8 (es una celda combinada F8 y G8) cambie el correlativo de la factura según la hoja activa, es decir... si la hoja es OC (989) el correlativo de esa celda debería ser: No. C-989-2017»

¿El correlativo en [F8] es siempre la misma celda en una hoja fija siempre la misma hoja?, ¿O es la celda [F8] de cada hoja agregada?


Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
Ester Ortiz Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 03/Julio/2017
Localización: Guatemala
Estado: Sin conexión
Puntos: 13
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Ester Ortiz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 03/Julio/2017 a las 22:13
Sub correlativo_hoja()
Sheets.Add
Nombre_actual = ActiveSheet.Name
concecutivo = Sheets("Hoja_Fija").Range("celda_fija").Value
ActiveSheet.Name = concecutivo
Sheets("Hoja_Fija").Range("a1").Value = concecutivo + 1
End Sub

Esta es la macro que utilice y me funciona bien al momento de agregar una hoja nueva...
Ester Ortiz
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4913
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita AnSanVal Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 03/Julio/2017 a las 23:51
Hola Ester.

No respondiste a mi preguntas de la última fila, por tanto el código de [F8] lo pondré en [Hoja_fija], si no es así cámbialo.



Respecto a tu código; en una línea tienes...


   ActiveSheet.Name = consecutivo


... por tanto consecutivo contiene el texto  OC (989), y en una linea posterior tienes...


   Sheets("Hoja_Fija").Range("a1").Value = concecutivo + 1


...  y no se puede sumar  1  a un texto.



Suponiendo que  en [Hoja_fija!A1] tienes  989  (o similar), sería algo así:


Sub correlativo_hoja()

Dim Nombre_actual$, concecutivo$

Sheets.Add

concecutivo = Sheets("Hoja_Fija").Range("celda_fija").Value

ActiveSheet.Name = concecutivo

Sheets("Hoja_Fija").Range("F8").Value = "No. C-" & Sheets("Hoja_Fija").Range("A1").Value & Format(Date, """-""yyyy")

Sheets("Hoja_Fija").Range("a1").Value =Sheets("Hoja_Fija").Range("a1").Value + 1

End Sub



Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
Ester Ortiz Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 03/Julio/2017
Localización: Guatemala
Estado: Sin conexión
Puntos: 13
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Ester Ortiz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 03/Julio/2017 a las 23:52
Hola... perdon, el texto No. C-989-2017 siempre va en la misma celda de cada hoja que se agrega... lo que necesito que cambie son los 3 numeros que estan seguidos de la letra C-
Ester Ortiz
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4913
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita AnSanVal Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 03/Julio/2017 a las 23:59
Cambia la primera fila azul por:

ActiveSheet.Range("F8:G8").Merge
ActiveSheet.Range("F8").Value = "No. C-" & Sheets("Hoja_Fija").Range("A1").Value & Format(Date, """-""yyyy")

Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
Ester Ortiz Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 03/Julio/2017
Localización: Guatemala
Estado: Sin conexión
Puntos: 13
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Ester Ortiz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 04/Julio/2017 a las 00:02
Olvide mencionar, que la ceda F8 esta combinada con la celda G8... probe utilizar el codigo que me diste en un archivo nuevo de excel, si me cambia el nombre de la hoja, pero no me cambia el correlativo de la celda
Ester Ortiz
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4913
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita AnSanVal Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 04/Julio/2017 a las 02:49
¿Mis supuestos se cumplen?

Yo lo he probado y me cambia el correlativo de F8:G8.
Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4913
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita AnSanVal Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 04/Julio/2017 a las 10:44


Otro intento, cambiando el origen del número (te comento el código -verde-).



«... pero no me cambia el correlativo de la celda »


Supongo que con la celda te refieres a [F8:G8].  ¿?




«... si la hoja es OC (989) el correlativo de esa celda (¿F8:G8?) debería ser: No. C-989-2017»


Para mis pruebas: en la hoja Hoja_fija, he dado nombre a una celda (Celda_fija) y en ella escribí la fórmula  ="OC (" & A1 & ")"   y en Hoja_fija!A1 tengo el número de la última hoja + 1.



Con esos ajustes, ejecuto el siguiente código y me hace lo que pides:


Sub correlativo_hoja()

Dim concecutivo$

'Añade una hoja despues de la última.

Sheets.Add After:=Sheets(Sheets.Count)

'Nombre para la nueva hoja.

concecutivo = Sheets("Hoja_Fija").Range("celda_fija").Value

'Aplica el nombre a la hoja.

ActiveSheet.Name = concecutivo

'Combina las celdas F8:G8.

ActiveSheet.Range("F8:G8").Merge

'Escribe el correlativo en F8:G8.

ActiveSheet.Range("F8").Value = "No. C-" & Mid(concecutivo, 5, Len(concecutivo) - 5) & Format(Date, """-""yyyy")

'Incrementa el número de Hoja_fija!A1.

Sheets("Hoja_Fija").Range("a1").Value = Sheets("Hoja_Fija").Range("a1").Value + 1

End Sub





EDITADO para cambiar el tamaño del texto.



Editado por AnSanVal - 04/Julio/2017 a las 10:50
Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
Ester Ortiz Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 03/Julio/2017
Localización: Guatemala
Estado: Sin conexión
Puntos: 13
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Ester Ortiz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 04/Julio/2017 a las 16:15
Seguramente no me deja por la macro que habia trabajado anteriormente, he intendado borrarla, pero no me aparece.

Voy a intentarlo nuevamente... 


Ester Ortiz
Arriba
Ester Ortiz Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 03/Julio/2017
Localización: Guatemala
Estado: Sin conexión
Puntos: 13
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Ester Ortiz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 04/Julio/2017 a las 16:15
Gracias por el apoyo! Smile
Ester Ortiz
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4913
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita AnSanVal Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 04/Julio/2017 a las 20:52
¿Eso quiere decir resuelto?
Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
Ester Ortiz Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 03/Julio/2017
Localización: Guatemala
Estado: Sin conexión
Puntos: 13
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Ester Ortiz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 04/Julio/2017 a las 21:00
No... aún no lo he resuelto, supongo que el querer trabajar desde mi oficina, por motivos de seguridad tienen muchas cosas bloqueadas... voy a intentarlo desde casa hoy en la noche... Smile
Ester Ortiz
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4913
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita AnSanVal Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 04/Julio/2017 a las 21:17

Pues prueba este otro, que no necesita apoyarse en ninguna celda ni nada ajeno a la macro.


Sub CorrelativoHoja()

Dim numSig As Double

'Numero para la nueva hoja.

numSig = Mid(Sheets(Sheets.Count).Name, 5, Len(Sheets(Sheets.Count).Name) - 5) + 1

'Añade una hoja despues de la última.

Sheets.Add After:=Sheets(Sheets.Count)

'Aplica el nombre a la hoja.

ActiveSheet.Name = Format(numSig, """OC (""#0"")""")

'Combina las celdas F8:G8.

Range("F8:G8").Merge

'Escribe el correlativo en F8:G8.

Range("F8").Value = "No. C-" & numSig & "-" & Year(Date)

End Sub 'CorrelativoHoja



Si resuelves, te agradeceré que avises (para cerrar el hilo). Gracias.


Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable