Ejecutar una macro

He cerrado ya la pregunta:
¿Pero tengo otra duda me podrías explicar los pasos para hacerla?
Gracias

1 Respuesta

Respuesta
1
Claro que te ayudo, pero ¿Me puedes recordar cuál era tu pregunta? Lo siento, soy mucha gente, tu nick me suena pero no lo sitúo.
Ok! Mira tengo una base de datos de conductores: con fechas del seguro obligatorio;itv; carnet de conducir etc.. entonces quería hacer que cuando una de estas fechas caducara me saltara una avisador o algo que me diga que esa fecha esta caducada. Me distes el código de la macro, pero es que no tengo ni idea de como llegar hacer, es decir que si me podrías explicar paso a paso para hacerla.
Muchas Gracias y un saludo,
Si, ya te recuerdo: bueno, en la respuesta te daba más o menos los pasos para hacerlo, pero te lo explicaré más detalladamente:
Abre el libro donde vas a poner la macro. Luego, debes pinchar la tecla Alt, y sin soltarla, haz click sobre F11
Si todo ha ido bien, ahora debes estar en el editor de visual basic, es decir, que debes ver una pantalla donde pone arriba "Microsoft Visual Basic" y el nombre del libro. Ahora pincha la tecla Control, y sin soltar, pincha sobre la letra r. Si todo sigue bien, en la parte izquierda de la pantalla te aparecerá una ventana, debes buscar donde pone VBAProyect(nombre de tu libro). Si ves un signo + al lado, pincha sobre él. Entonces, te aparecerá debajo "Microsoft Excel Objetos". Si al lado te aparece otro signo +, pincha sobre él para que se expanda. Entonces verás debajo los nombres de todas las hojas del libro, y al final verás que pone "Thisworkbook". Pincha 2 veces sobre esas palabras, y si todo está bien, la parte derecha de la pantalla (2 tercios de la pantalla) serán blancos. Entonces, copia el código que te dí. Ese código era el siguiente:
Private Sub Workbook_Open()
Sheets("Hoja1"). Activate
Range("B2"). Activate
'baja mientras la celda contenga datos
While IsEmpty(ActiveCell.Value) = False
If ActiveCell.Value <= Date Then
Dim aviso As String
aviso = MsgBox("Atención: el seguro de la fila " & ActiveCell.Row & " ha caducado", vbExclamation, "Ha caducado un seguro")
End If
'baja una celda
ActiveCell.Offset(1, 0). Activate
Wend
Selecciona todo este código, cuando lo tengas, pincha Control + C (Con ésto habrás copiado el código). Ve al editor de visul basic (donde nos habíamos quedado), y pincha Control + V (ésto hace que vuelques lo copiado). Cierra el editor de visul basic. La próxima vez que habrás el libro se ejecutará la macro, pero ojo, aún queda un paso: una vez que estés en Excel (ojo, no en visual basic, sino en el propio Excel), ve a Herramientas- Macro-Seguridad. Asegúrate de que tienes marcada la segunda opción (Nivel de seguridad medio). Cierra el libro, y cuando lo vuelvas a abrir, te aparecerá un mensaje advirtiéndote que el libro contiene macros, y te dará dos opciones: deshabilitar macros (predeterminada), y habilitar macro. Bien, pues deberás pulsar sobre esta última, pues sino tus macros NO funcionarán. En fin, he tratado de ser lo más clara posible. No obstante, si no te sale, puedes escribirme a jherranzvillasol arroba hotmail.com, me adjuntas el archivo, y te copio yo el código.
Ojo! Me he dado cuenta después de cerrar la pregunta de que al código le faltaba la última línea (End Sub). El código completo es:
Private Sub Workbook_Open()
Sheets("Hoja1"). Activate
Range("B2"). Activate
'baja mientras la celda contenga datos
While IsEmpty(ActiveCell.Value) = False
If ActiveCell.Value <= Date Then
Dim aviso As String
aviso = MsgBox("Atención: el seguro de la fila " & ActiveCell.Row & " ha caducado", vbExclamation, "Ha caducado un seguro")
End If
'baja una celda
ActiveCell.Offset(1, 0). Activate
Wend
End Sub
Hola Buenas tardes:
Se me dio bastante bien hasta un punto pero primero quería hacerte una pregunta .para hacer esto ¿Ya tengo que tener la hoja de cálculo con las fechas? O las puedo introducir luego.
Es para si no me sale enviártelo por correo pero claro ya con las fechas puestas .
Muchas gracias de antemano
Ok yo te la finalizo, te importa que te lo envíe es que me he quedado atascado en un punto y no se como seguir. Gracias
No es necesario tener las fechas escritas de antemano.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas