Realizar macro que busque una condición y si la encuentra muestre el mensaje y si no ejecute otra macro
Buenos días
Me llamo Antonio y no se de VBA, pero buscando y con lo poco que se he conseguido elaborar estos dos códigos, que hacen lo que indico adelante
Un código que me dice las celdas que hay combinadas en una hoja, mediante un msgbox, el problema es que cuando no hay celdas combinadas el mensaje te sale en blanco
Si le añado el else para que haga una u otra cosa el código no funciona con las celdas combinadas
Necesito
Una macro que:
Si hay celdas combinadas me las indique y se pare el proceso y si no hay celdas combinadas active una macro que ya tengo y que ordena la hoja
He encontrado un código al que yo he intentado sin éxito añadir la segunda condición
Te adjunto códigos ( este primero funciona pero muestra mensaje en blanco sin celdas combinadas, necesito que en ese caso no muestre mensaje y ejecute una macro)
Sub IdentificaCeldasCombinadas1()
'inhabilitamos el refresco de pantalla
Application.ScreenUpdating = False
'controlamos un posible error, pasando al siguiente registro
On Error Resume Next
'recorremos cada celda del rango utilizado en la hoja de cálculo activa.
For Each celda In ActiveSheet.UsedRange
'verificamoss si dicha celda corresponde a una Celda combinada
If celda.MergeCells = True Then
'aglutinamos la dirección de la celda
'para mostrala posteriormente en un MsgBox
mensaje = mensaje & celda.Address & Chr(10)
End If
Next
'Mostramos el mensaje final,
'con todas las referencias de las celdas combinadas (individualmente)
MsgBox mensaje
'activamos el refresco de pantalla
Application.ScreenUpdating = True
End Sub
Este otro código con el else ( este código ignora la primera parte y ejecuta la acción después del else, pero no muestra las celdas combinadas)
Sub IdentificaCeldasCombinadas2()
'inhabilitamos el refresco de pantalla
Application.ScreenUpdating = False
'controlamos un posible error, pasando al siguiente registro
On Error Resume Next
'recorremos cada celda del rango utilizado en la hoja de cálculo activa.
For Each celda In ActiveSheet.UsedRange
'verificamoss si dicha celda corresponde a una Celda combinada
If celda.MergeCells = True Then
'aglutinamos la dirección de la celda
'para mostrala posteriormente en un MsgBox
mensaje = mensaje & celda.Address & Chr(10)
'Mostramos el mensaje final,
'con todas las referencias de las celdas combinadas (individualmente)
MsgBox mensaje
Application.ScreenUpdating = True
''paramos el proceso
End
'en el caso de no existir celdas combinadas
Else
'Mostramos el mensaje final,
MsgBox "sin combinadas"
'ejecutamos la macro
ordenar
''paramos el proceso para que no se repita
End
End If
Next
'activamos el refresco de pantalla
Application.ScreenUpdating = True
End Sub
Un saludo y muchas gracias