Series alfanuméricas en factura

Hola,

Estoy adaptando un libro de excel que descargué para llevar la gestión de impuestos y facturas de un autónomo.

En este libro hay dos hojas, una llamada ingresos y otra llamada factura que funcionan de la siguiente manera.

La hoja factura, como es lógico, es para crear facturas. En ella hay un botón con un código VBA asociado para "grabar" esa factura en la hoja ingresos. Y otro botón para asignar un número a la factura. El código de ese botón lo que hace es buscar el número de la última factura en la hoja ingresos y le suma uno, ya que como sabéis las facturas deben ser correlativas.

El problema que tengo es que yo en mi facturación tengo dos series para según a quién/qué facture, y esas series son números y letras, por lo que el código que tengo lo necesito modificar.

Una serie sería JUR00001, JUR00002, JUR00003,...y la otra 14a00001, 14a00002, 14a00003,...

El código del botón que asigna número a la factura es el siguiente:

Sub Factura_asignar_numero()
'Si estamos viendo el botón "asignar número factura" es que estamos en alguno de los modelos de factura
HojaInicio = ActiveSheet.Name
CeldaInicio = ActiveCell.Address()
Application.ScreenUpdating = False
Sheets("Ingresos").Select
Range("E1").Select
'Buscamos el primer valor vacío de la columna
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
'Si hay valores en la tabla hay que subir una fila arriba para colocarse en el último valor: último número de factura.
'Pero si la tabla está vacía debemos evitar subir a la fila de títulos, porque al intentar sumar "1" a un texto obtendríamos error.
If ActiveCell.Row > 2 Then
ActiveCell.Offset(-1, 0).Select
End If
UltimoNumeroFta = ActiveCell.Value
NuevoNumeroFta = UltimoNumeroFta + 1
Sheets("Factura").Select
Range("G1").Select
ActiveCell.Value = NuevoNumeroFta
Application.ScreenUpdating = True
End Sub

Y el código que graba la factura en la hoja ingresos es este:

Sub Factura_grabar_en_libro_ingresos()
Application.ScreenUpdating = False
Sheets("Ingresos").Select
'Buscamos la primera fila vacía mediante la fórmula de Excel CONTAR.BLANCO (que en Visual Basic equivale a COUNTBLANK).
'Si la fila está vacía las 6 columnas entre la A y la F estarán vacías. El resultado de CountBlank será 6
Range("A2").Select
Do Until Application.WorksheetFunction.CountBlank(Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 6))) = 6
ActiveCell.Offset(1, 0).Select
Loop
'Nos quedamos con el número de fila en la que grabaremos los datos de la factura
fila = ActiveCell.Row
'Escribimos dato en columna A: "Fecha registro": igual que la fecha de la factura
If Sheets("Factura").Range("G6").Value <> "" Then
Cells(fila, 1) = Sheets("FACTURA").Range("G6").Value
'Escribimos igual fecha en columna B: "Fecha factura"
Cells(fila, 2) = Sheets("FACTURA").Range("G6").Value
Else: MsgBox "Falta Fecha de Factura en celda G6."
End If
'Escribimos en columna C: "Número de Factura"
If Sheets("Factura").Range("G4").Value <> "" Then
Cells(fila, 3) = Sheets("Factura").Range("G4").Value
Else: MsgBox "Falta número de Factura en celda G4."
End If
'Escribimos CIF/NIF en columna D
If Sheets("FACTURA").Range("B12").Value <> "" Then
Cells(fila, 4) = Sheets("FACTURA").Range("B12").Value
Else: MsgBox "Falta NIF en celda B12."
End If
'Escribimos en columna E: "Nombre o Razón Social"
If Sheets("FACTURA").Range("B10").Value <> "" Then
Cells(fila, 5) = Sheets("FACTURA").Range("B10").Value
Else: MsgBox "Falta Nombre o Razón Social en celda B10."
End If
'Escribimos en columna F: "BASE IMPONIBLE"
If Sheets("FACTURA").Range("H42").Value <> "" Then
Cells(fila, 6) = Sheets("FACTURA").Range("H42").Value
Else: MsgBox "Falta Base Imponible en celda H42."
End If
'Escribimos en columna G: Tipo de IVA
If Sheets("FACTURA").Range("G44").Value <> "" Then
Cells(fila, 7) = Sheets("FACTURA").Range("G44").Value
 'Comprobamos que no se introduzca un valor erróneo (menor que 1 se habría introducido en formato porcentaje, o mayor que cien si se multiplica un valor que no estaba en formato porcentaje)
 If Cells(fila, 7) >= 100 Then
 MsgBox "Valor erróneo en la celda " & Cells(fila, 7) & ". El tipo no puede ser tan elevado."
 End If
 If Cells(fila, 7) <= 1 Then
 MsgBox "Valor erróneo en la celda " & Cells(fila, 7) & ". El tipo se ha introducido como tanto por uno. Debe introducirse un valor mayor que uno."
 End If
Else: MsgBox "Esta factura está exenta de IVA ¿o has olvidado tipo IVA en celda G44?"
End If
'La cuota de IVA se calcula automáticamente en el libro de ingresos
'El "Total Factura" se calcula automáticamente en el libro de ingresos
'Escribimos en la columna K: "RETENCIÓN IRPF"
If Sheets("FACTURA").Range("H43").Value <> "" Then
Cells(fila, 11) = Sheets("FACTURA").Range("H43").Value
MsgBox "En Esta Factura se ha aplicado una retención de " & Worksheets("FACTURA").Range("H43").Value & " euros." & String(1, 13) & "Si no procede esta retención, borra el valor en la columna K de la hoja de Ingresos." & String(1, 13) & "En este caso, borra también la celda G43 en la Factura, para evitar el mismo error en próximas facturas."
Else: MsgBox "En esta Factura no se ha aplicado retención." & String(1, 13) & "Si debe llevar retención, escribe el tipo en la celda G43 (por ejemplo: 21)"
End If
Application.ScreenUpdating = True
End Sub

Alguna ayuda?

Gracias de antemano

Añade tu respuesta

Haz clic para o