¿Cómo hacer un macro en excel?

¿Cómo le puedo hacer para que al hacer un macro me de el consecutivo con letras y números por ejemplo L2018001 L2018002 así sucesivamente en excel?

2 Respuestas

Respuesta
1

La letra siempre es "L" ¿o en algún momento cambia? Y los números ¿el 2018 es por el año? Más detalles ayudarían a ayudarte

Abraham Valencia

Hola!

La letra siempre sera L y si el 2018 es por el año, de ahí seguiría el consecutivo 001, 002.

Suponiendo que en "A1" dice: L2018001, algo así te ayudaría:

Sub Incrementar()
Dim Valor As Integer
Let Valor = Right(Range("A1"), 3) + 1
Range("A1") = "L" & Year(Date) & Format(Valor, "000")
End Sub

Comentas

Abraham Valencia

Respuesta
1

Prueba con lo siguiente, en la macro cambia "F2" por la celda donde quieras poner el consecutivo, cada que ejecutes la macro se incrementará en uno el consecutivo

Sub Aumentar_Consecutivo()
'Por. Dante Amor
    celda = "F2"
    Set c = Range(celda)
    If c.Value = "" Then
        c.Value = "L" & Year(Date) & "001"
    Else
        If Len(c.Value) <> 8 Then
            MsgBox "El consecutivo actual no tiene la estructura"
            Exit Sub
        End If
        lit = Mid(c.Value, 1, 1)
        año = Mid(c.Value, 2, 4)
        num = Right(c.Value, 3)
        If IsNumeric(num) Then num = Val(num) + 1
        c.Value = lit & año & Format(num, "000")
    End If
End Sub

avísame cualquier duda

Buen día si me sirvió el dato, muvhas gracias, como le puedo hacer para que el macro se ejecute automáticamente al abrir el archivo y se actualice el consecutivo, puse esto yo y no se pudo Sub Aumentar_Consecutivo() ' ejecutar al abrir documento

En tal caso tienes que poner lo siguiente en los eventos de tu libro:

Private Sub Workbook_Open()
'Por. Dante Amor
    celda = "F2"
    Set c = Sheets("Hoja4").Range(celda)
    If c.Value = "" Then
        c.Value = "L" & Year(Date) & "001"
    Else
        If Len(c.Value) <> 8 Then
            MsgBox "El consecutivo actual no tiene la estructura"
            Exit Sub
        End If
        lit = Mid(c.Value, 1, 1)
        año = Mid(c.Value, 2, 4)
        num = Right(c.Value, 3)
        If IsNumeric(num) Then num = Val(num) + 1
        c.Value = lit & año & Format(num, "000")
    End If
End Sub

Agregué a la macro "hoja4", cambia "Hoja4" por la hoja donde tienes el consecutivo, porque puede ser que el libro se abra en otra hoja.

Instrucciones para poner la macro en los eventos ThisWorkbook

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
  4. En el panel del lado derecho copia la macro

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas