Ejecutar una macro sin importar donde este el cursor, no ejecute si falta un dato
Recurro a su valiosa ayuda, dos cosas:
La primera, tengo una macro que para poder ejecutarla y funcione necesariamente tengo que ubicarme en la celda "H64", de lo contrario me sale error, quisiera que se pudiera ejecutar no importa donde este el cursor.
La segunda, es que tampoco me permita ejecutar si dejo un campo vacío en la celda "C62", que me salga un msgbox indicando que debo completar ese campo.
Adjunto mi código VBA para que me puedan dar una ayuda.
$$\begin{align}&Sub Resultados()\\&' Realizado por Juan Arenas\\&'\\&' Macro1 Macro\\&'\\&' Aporte de James Bond de contador de macro\\&\\&Range("l7") = Range("l7") + 1\\&MsgBox (Range("l7") & " veces ejecutada")\\&\\& Application.ScreenUpdating = False\\& Sheets("R-HSE-EMCS").Select\\& ActiveSheet.Unprotect Password:="1234"\\& \\& ActiveCell.FormulaR1C1 = "=RC[4]/RC[5]"\\& Range("H24").Select\\& ActiveCell.FormulaR1C1 = "=RC[4]/RC[5]"\\& Range("H36").Select\\& ActiveCell.FormulaR1C1 = "=RC[4]/RC[5]"\\& Range("H41").Select\\& ActiveCell.FormulaR1C1 = "=RC[4]/RC[5]"\\& Range("H48").Select\\& ActiveCell.FormulaR1C1 = "=RC[4]/RC[5]"\\& Range("H52").Select\\& ActiveCell.FormulaR1C1 = "=RC[4]/RC[5]"\\& Range("H64").Select\\& ActiveCell.FormulaR1C1 = "=RC[4]/RC[5]"\\& \\& Sheets("R-HSE-EMCS").Select\\& ActiveSheet.Protect Password:="1234"\\& Application.ScreenUpdating = True\\& \\& Application.ScreenUpdating = False\\& Sheets("RESUMEN").Select\\& ActiveSheet.Unprotect Password:="1234"\\& \\& Sheets("RESUMEN").Select\\& \\& Sheets("RESUMEN").Select\\& ActiveSheet.Protect Password:="1234"\\& Application.ScreenUpdating = True\\& \\& \\&\end Sub\\&\end{align}$$
Sub Resultados() ' Realizado por Juan Arenas ' ' Macro1 Macro ' ' Aporte de James Bond de contador de macro Range("l7") = Range("l7") + 1 MsgBox (Range("l7") & " veces ejecutada") Application.ScreenUpdating = False Sheets("R-HSE-EMCS").Select ActiveSheet.Unprotect Password:="1234" ActiveCell.FormulaR1C1 = "=RC[4]/RC[5]" Range("H24").Select ActiveCell.FormulaR1C1 = "=RC[4]/RC[5]" Range("H36").Select ActiveCell.FormulaR1C1 = "=RC[4]/RC[5]" Range("H41").Select ActiveCell.FormulaR1C1 = "=RC[4]/RC[5]" Range("H48").Select ActiveCell.FormulaR1C1 = "=RC[4]/RC[5]" Range("H52").Select ActiveCell.FormulaR1C1 = "=RC[4]/RC[5]" Range("H64").Select ActiveCell.FormulaR1C1 = "=RC[4]/RC[5]" Sheets("R-HSE-EMCS").Select ActiveSheet.Protect Password:="1234" Application.ScreenUpdating = True Application.ScreenUpdating = False Sheets("RESUMEN").Select ActiveSheet.Unprotect Password:="1234" Sheets("RESUMEN").Select Sheets("RESUMEN").Select ActiveSheet.Protect Password:="1234" Application.ScreenUpdating = True End Sub
Este mi archivo
Respuesta de Esteban RG
1
1 respuesta más de otro experto
Respuesta de Dante Amor
2