Numerador automático con números separados por punto o barra

¿Es posible hacer un numerador automático con números separados por coma o barra?

Ejemplo : 1.1 o 1/1 , y que cuando cambie al siguiente, cambie el numero de la derecha o sea el siguiente 1/2... 1/3 , y así sucesivamente hasta llegar a 1/20 después cambiar al siguiente numero con 2/1 así hasta 2/20 , etc.

Lo he intentado sin macros y no he podido conseguirlo.

2 respuestas

Respuesta
1

Te propongo las siguientes opciones con fórmulas:

Opción 1.

En la Celda A1 escribe el valor inicial "1/1" (revisa que la celda tenga formato texto, para que el número no sea considerado como "1 de enero")

En la celda A2 escribe la siguiente fórmula:

=SI(EXTRAE(A1;ENCONTRAR("/";A1)+1;2)="20";IZQUIERDA(A1;ENCONTRAR("/";A1)-1)+1&"/"&1;IZQUIERDA(A1;ENCONTRAR("/";A1)-1)&"/"&EXTRAE(A1;ENCONTRAR("/";A1)+1;2)+1)

Arrastra o copia la fórmula hacia abajo hasta el número de consecutivo que desees.


Con la siguiente opción puedes emplear 3 columnas, de esta forma las fórmulas son más claras.

En la celda A1 escribe el valor inicial 1

En la celda B1, escribe el valor inicial 1

En la celda C1, pon la siguiente fórmula

=A1&"/"&B1

En la celda A2, pon la siguiente fórmula

=SI(B1=20;A1+1;A1)

En la celda B2:

=SI(B1=20;1;B1+1)

En la celda C2:

=A2&"/"&B2

Ahora, arrastra o copia las 3 fórmulas de las celas A2, B2 y C2, hacia abajo, hasta el número que desees.


Por último te anexo la opción 3 con una macro.

Pon la siguiente macro en un módulo.

Sub consecutivo()
'Por.Dante Amor
    If Cells(1, "A") = "" Then
        Cells(1, "A") = "'1/1"
    Else
        u = Range("A" & Rows.Count).End(xlUp).Row
        nums = Split(Cells(u, "A"), "/")
        If nums(1) = 20 Then
            Cells(u + 1, "A") = "'" & nums(0) + 1 & "/1"
        Else
            Cells(u + 1, "A") = "'" & nums(0) & "/" & nums(1) + 1
        End If
    End If
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: consecutivo
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Cada presiones el botón en la columna A, se incrementará el consecutivo.


Te anexo mi archivo con las 3 opciones.

https://www.dropbox.com/s/2ozx6ocnjfw4p6h/numerar%201%201.xlsm?dl=0 


Saludos.Dante Amor M. (Dam)

Buenas tardes DAm,gracias como siempre por tu pronta respuesta ,de las tres soluciones enviadas la que mas me gusta es la de la macro ,pero algo ha fallado al darte la explicación de lo que quería,efectivamente es lo que quiero pero que el resultado lo haga siempre en la misma celda.

Espero no importunarte mucho ,recibe un saludo cordial

Segusuario (Juan)

No hay problema.

Te anexo la macro para poner el consecutivo en la celda A5, cambia en la macro "A5" por la celda en la que necesites el consecutivo.

Sub consecutivo()
'Por.Dante Amor
    celda = "A5"
    If Range(celda) = "" Then
        Range(celda) = "'1/1"
    Else
        nums = Split(Range(celda), "/")
        If nums(1) = 20 Then
            Range(celda) = "'" & nums(0) + 1 & "/1"
        Else
            Range(celda) = "'" & nums(0) & "/" & nums(1) + 1
        End If
    End If
End Sub

Saludos.Dante Amor M. (Dam)

Respuesta
1

Asocia esta macro a un botón para ver su uso. En vez de "/" o "." utiliza "\" para que no tengas problemas en que se confunda con una fecha.

Private Sub CommandButton21_Click()
con1 = Val(Mid([a1], 1, InStr(1, [a1], "\") - 1))
con2 = Val(Mid([a1], InStr(1, [a1], "\") + 1, 2)) + 1
If con2 > 20 Then
    con2 = 1: con1 = con1 + 1
    cad = CStr(con1) & "\" & CStr(con2)
   Else
    cad = CStr(con1) & "\" & CStr(con2)
End If
[a1] = cad
End Sub

Si te ha valido la respuesta.

Me sobraba algo de código, sorry:

Private Sub CommandButton21_Click()
con1 = Val(Mid([a1], 1, InStr(1, [a1], "\") - 1))
con2 = Val(Mid([a1], InStr(1, [a1], "\") + 1, 2)) + 1
If con2 > 20 Then
    con2 = 1
    con1 = con1 + 1
End If
[a1] = CStr(con1) & "\" & CStr(con2)
End Sub

Gracias por tu contestación probé la macro y me da un error 5

El día 2 de Febrero le comente que probé la macro y daba un error 5

Ya que fue usted tan amable de contestar a mi solicitud me gustaría ver como funciona la macro ,a no ser que yo haga algo mal.

un saludo 

Segusuario (Juan)

La macro a mi me funciona, me puedes enviar el libro a

[email protected] y lo miro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas