Ejecutar una Macro si es que la celdas no estén vacías

Quiero ejecutar una macro pero si es que algunas celdas estén completadas

Pueden ser 3 o 6 celdas que se tenga que se tienen que completar, y luego ejecutar una Macro.

2 respuestas

Respuesta
2

. 05.12.16 #VBA Ejecuta según grupo de celdas

Buenas, Andrés

A falta de mejor información asumiremos que las todas las celdas que indiques deberán tener algún dato -cualquiera- para que se ejecute tu macro.

Para ello, te comparto la siguiente rutina que se ejecuta automáticamente cuando cambie algun dato en las celdas y evaluará que se cumpla esa condición.

Para que funcione, activa el editor de Visual Basic (presiona Alt+F11) y en el panel de la izquierda busca la hoja donde quieres que esto ocurra. Da doble click sobre ella. (Otra forma de llegar a este punto es hacer click derecho sobre la solapa de esta hoja y elegir la opción "Ver Código)

Allí pega el siguiente procedimiento de VBA:

Private Sub Worksheet_Change(ByVal Target As Range)
'---- Variables modificables ----
'=== ANDRES, modifica estos datos de acuerdo a tu proyecto:
    LasCeldas = Array("A1", "A4", "C8", "C9", "D11", "M1") 'Direcciones de celdas a evaluar
'---- fin Variables
'
'---- inicio de rutina:
'  
ejecuta = False
For test = 0 To UBound(LasCeldas)
    If LasCeldas(test) = Target.Address(False, False) Then
        For test2 = 0 To UBound(LasCeldas)
            If Len(Range(LasCeldas(test2))) = 0 Then Exit Sub
        Next
        ejecuta = True
    End If
Next
If ejecuta Then
 Call <Tu macro> 'coloca aquí el nombre de la macro que deseas que se ejecute.
End If
End Sub

Al principio verás una variable que es un conjunto de direcciones de celdas que quieres que estén llenas para que se ejecute la macro que indicarás al final de la rutina.

.

Respuesta
1

Cuando dices completa te refieres a

1 - que no estén vacías

2 - que debe tener un dato en especifico

3 - si he de numero que debe de estar al 100%

No importa si esta en numero o letras

E5 - E7 - E9 - E11 - E12 son las celdas que no se deben de quedar vacío

Al inciar tu macro

Con esto lo puede conseguir

if range("e5") = "" then

msgbox "hay una celda vacia"

range("e5").select

exit sub

end if

Este seria solo para la celda E5 para las demas celda solo copia, pega y cambia los valoras de la celda listo

Si te silve no olvides valorar para cerrar la pregunta

Te cuento como es,

Tengo un formulario que se tiene que completar, una vez completado todo tiene que pasar a la siguiente hoja y otras macros ejecutar (el de ejecutar otras macro no es problema), pero si hay alguna celda vacía E5 - E7 - E9 - E11 - E12 no me ejecute la macro, hasta que se haya completado las celdas vacías, yo ya me encargue de que si en una celda tiene que ser numero o letras, con Validacion de datos Alt+t+v

por eso no especifico si es numero o letras, porque varia segun los formularios que tengo en las hojas.

Ok con la intrusiones que te di puede lograr lo que quieres y más aun en ella tiene un mensaje de aviso que falta una celda por completar

Sino sale a camino este mi correo [email protected] para agregarle la macro

Me gusto mucho tu macro, pero quiero saber si no se puede poner todo ya en una misma macro, osea el de repetir lo que no quiero hacer porque ya me pierdo.

Si puedes solo colocala adelante para que verifique primero o mejor unela las dos

Has un macro llamando la a las dos y listo

No te entendí ahora

Que si puedes hacerlo solo tiene que agregar la macro de verificación primero osea la macro que verifique si están vacía y luego el procedimiento de copiar los datos a otra hoja

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas