Sub Cambia_Año(Nuevo_anyo As String)
Dim o_Hoja As Worksheet, o_Pict As Shape, Texto As String, _
Lin As Integer, l_Objeto As Boolean
' ---&--- Valida que sean 4 digitos
If Len(Nuevo_anyo) <> 4 Then
MsgBox "Parámetro erroneo" & vbCrLf & vbCrLf & _
"Debe ser un número de 4 dígitos", vbCritical + vbOKOnly, _
"Proceso Cambio Año"
Exit Sub
End If
' ---&--- Valida que sean números
For Lin = 1 To 4
If Mid$(Nuevo_anyo, Lin, 1) < "0" Or Mid$(Nuevo_anyo, Lin, 1) > "9" Then
MsgBox "Parámetro erroneo" & vbCrLf & vbCrLf & _
"Debe ser carácteres númericos", vbCritical + vbOKOnly, _
"Proceso Cambio Año"
Exit Sub
End If
Next
On Error Resume Next
For Each o_Hoja In Worksheets
Sheets(o_Hoja.Name).Select
l_Objeto = False
' ---&--- Busca el objeto que tenga 4 caracteres
For Each o_Pict In ActiveSheet.Shapes
Texto = o_Pict.TextFrame.Characters.Text
If Len(Texto) = 4 Then
o_Pict.TextFrame.Characters.Text = Nuevo_anyo
l_Objeto = True
Exit For
End If
Next
' ---&--- Ni no hay objetop con el año busca el texto. Hojas: 2A, 3A, etc.
If Not l_Objeto Then
If Cells(7, 2) = "Ciclo Lectivo" Then Cells(7, 4) = Nuevo_anyo
If Cells(8, 2) = "Ciclo Lectivo" Then Cells(8, 4) = Nuevo_anyo
End If
Next
End Sub