Excel - Evento BeforeSave no funciona (VBA)

 
Vista:
sin imagen de perfil
Val: 35
Ha aumentado 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Evento BeforeSave no funciona (VBA)

Publicado por josete (18 intervenciones) el 27/02/2020 11:36:29
Hola, estoy en el mismo ejercicio de una factura de preguntas anteriores, me gustaría comentar el propósito , y en efecto el contexto.

Debo agregar a una macro el objetivo de que si determinadas celdas están en blanco, salte una ventana mencionando un mensaje personalizado que diga "No puedes guardar hasta que rellenes dichas celdas"

Busqué, y en la página oficial de Microsoft encontré el siguiente código.

1
2
3
4
5
6
7
8
9
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
   'If the six specified cells do not contain data, then display a message box with an error
   'and cancel the attempt to save.
   If WorksheetFunction.CountA(Worksheets("Sheet1").Range("D5,D7,D9,D11,D13,D15")) < 6 Then
      MsgBox "Workbook will not be saved unless" & vbCrLf & _
      "All required fields have been filled in!"
      Cancel = True
   End If
End Sub

Lo agregué a una macro que ya tenía, el cual se separaba mediante una linea, de la anterior. Cambié las celdas del ejemplo que había por las que yo necesitaba, al igual que el mensaje personalizado que edité.

Al guardar no me da ningún fallo, tampoco al ejecutar la macro, pero no sucede nada si se deja dicha casilla vacía, por que la primera parte de la macro guarda unos datos copiando estos en otra hoja del mismo libro. No, el fallo no viene de el libro por que están habilitadas las macros.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Evento BeforeSave no funciona (VBA)

Publicado por Antoni Masana (2477 intervenciones) el 27/02/2020 15:11:25
Esta macro debe estar en el ThisWorkbook para que no deje guardar si faltan datos.

Otro detalle es como llamas a la hoja, el nombre de las hoja por defecto depende del idioma en el que este Excel.
En tu caso debe estar en ingles y esto Worksheets("Sheet1") te funciona pero si lo pruebo en el mio que esta en español tendría que poner Worksheets("Hoja1"), si es una hoja defacturas[/b] la llamas Bills (Traductor de Google) y funciona en cualquier Excel en cualquier idioma.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 35
Ha aumentado 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Evento BeforeSave no funciona (VBA)

Publicado por josete (18 intervenciones) el 29/04/2020 20:31:45
Lo he resuelto, gracias. Es tarde, pero nunca es peor jaja. Está feo dejar sin responnder a las soluciones
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar