Tengo un planilla excel con nombres de maquinas y otra columna con la fecha en la cual hay que calibrar esas maquinas, yo necesito que el sistema me arroje una ventana de alerta o aviso cuando se cumpla el plazo o un poco antes que diga que "hay que calibrar "x"maquina" por ejemplo. Espero me puedas ayudar se que con vba se puede pero no se como.
Mi opinión es que la ventana de aviso te la ponga cuando abras el libro Bien para hacerlo con una macro debes de pulsar ALT+F11 y en la ventana de explorador de proyectos meterse en ThisWorkbook. Una vez dentro pega este código: Private Sub Workbook_Open() Dim N As Integer 'creamos N que va ha ser un entero Dim Texto As String ' creamos Texto que va ha ser una cadena de texto On Error GoTo Siguiente ' Si hay un error vete a la etiqueta Siguiente For N = 2 To 11 'N va ha valer desde 2 hasta 11 tu ponlo desde el inicio de la filas hasta el fin de las filas de las maquinas If Cells(N, 2) - Now < 15 Then Texto = Texto & Cells(N, 1) & Chr(13) ' Si la celda(fila N, columna 2)-la fecha de ahora es menor que 15 entonces coge el nombre de la maquina que se encuentra en la celda(N,1) Siguiente: ' Etiqueta donde tiene que ir si se produce un error, Ejemnplo si hay escrito texto en vez de fechas Next N If Texto <> "" Then ' si texto tiene algo, osea si hay alguna máquina que hay que revisar en menos de 15 días Texto = "Hay que calibrar las siguientes maquinas: " & Chr(13) & Texto ' escribe este mensaje + el valor de Texto MsgBox Texto, vbCritical ' manda el mensaje critico con el valor de Texto End If End Sub Te he puesto en cada línea lo que hace para que lo tengas más claro, de todas formas yo he supuesto que las máquinas las tienes desde la fila 2 hasta la fila 11 (For N=2 to 11), que en la columna B, osea la 2, tienes las fechas de calibración (Cells(N, 2)) y que quieres que te avise cuando queden menos de 15 días (Cells(N, 2)-now < 15. Tu debes de personalizartelo con los rangos, filas, columnas y días que quieras. De todas formas para lo del aviso antes de POR días también podrías ponértelo en una celda y hacer referencia a esa celda. Ejemplo en la celda D1 poner 15 y entonces te quedaría así If cells(N,2)-now<range("D1") then De esta forma si más adelante quieres que te avise con más tiempo o menos, no tendrías que tocar el código, podrías cambiarlo directamente en la celda D1. También sería interesante poner un formato condicional para que te avise con colores al que le queda poco tiempo o incluso se ha pasado de fecha. En rojo, Amarillo... Bueno si necesitas más ayuda pégame un toque, de todas formas cuéntame como te ha ido.
Según lo que me enviaste así lo traspase pero me lanza un ventana de error de compilación "no se ha definido etiqueta" y me marca la fila que esta subrayada, espero que me puedas ayudar tal vez algo me falto. Bueno en la columno nº 5 tengo las fechas de calibraciones y según esas fechas necesito que las compare con hoy y si se cumplió el plazo me arroje un mensaje que "calibrar por maquina" eso... no se si con esto me lo hará. O si es posible generarlo sin tener que abrir el documento sino ayudame con la redacción de los comandos por que no entiendo nada de vba. Por favor Gracias Private Sub Workbook_Open() Dim N As Integer Dim Texto As String On Error GoTo Siguiente For N = 2 To 25 If Cells(N, 5) - Now < 5 Then Texto = Texto & Cells(N, 1) & Chr(13) Next N If Texto <> "" Then Texto = "Hay que calibrar las siguientes maquinas: " & Chr(13) & Texto MsgBox Texto, vbCritical End If End Sub
Cierto perdona con las prisas de ayer se me pasó, antes de Next N tienes que insertar lo siguiente: Siguiente: Así tal cual, con esto si hay algún error de fechas se irá a esa etiqueta con lo cual pasa a la siguiente fila, pasando de ese error. Pruébalo y me cuentas
1 comentario
Hola buena tarde, lo que sucede es que deseo crear una macro que me avise 5 días antes de cumplirsen mis obligaciones, los nombres de la obligaciones lo ubicare en la columna "A" y las fechas en la columba "B", quiero que una vez falten 5 días al abrir el documento en una ventana emergente me muestre las obligaciones que les falten 4 días para que se cumplan, algo similar a lo que están haciendo en este post, agradecería su ayuda. Gracias =) - Emanuel Durango