Excel - Juntar o unir 2 macros con el mismo Private Sub....

 
Vista:
sin imagen de perfil

Juntar o unir 2 macros con el mismo Private Sub....

Publicado por luishao hiroshi (9 intervenciones) el 18/04/2015 01:16:43
Hola tengo un archivo que no me funciona con el mismo: Private Sub Workbook_BeforeSave.....


Resulta que estas 2 marcos deben estar si o si en: ThisWorkbook

Hay alguna forma de hacer que las 2 trabajen?

Se encuentra en: ThisWorkbook y esta de color verde como comentario...

Les mando mi archivo para que lo vean:

https://mega.co.nz/#!ehUU3aTK!aQ07FEGhg3PE9tWp7pcnkUvUPoKgwP-9o9R_rN7If1U


Gracias....
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
sin imagen de perfil

Juntar o unir 2 macros con el mismo Private Sub....

Publicado por Khristtian (77 intervenciones) el 20/04/2015 14:25:31
Te faltó poner lo mas importante: EL ERROR que se produce.

"Se ha detectado un nombre ambiguo" !!! O sea... tienes repetido el nombre de un procedimiento o una función en un mismo módulo.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then Cancel = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
CeldaAnterior.Interior.Color = ColorAnterior
End Sub

-------------------------------------------------------------------------

Vi que en dos partes necesitas hacer esto: CeldaAnterior.Interior.Color = ColorAnterior

1.- Borra el sub Workbook_BeforeSave que tienes comentado.

2.- En un módulo crea un procedimiento publico:

Public Sub defColor()
CeldaAnterior.Interior.Color = ColorAnterior
End Sub

3.- Las dos llamadas en que hacías: CeldaAnterior.Interior.Color = ColorAnterior
Déjalas así:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then Cancel = True
defColor
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
defColor
End Sub


Quizá también te sirva esto para el primer sub (Dependiendo de la lógica en que necesites hacer la llamada):

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then
Cancel = True
Else
defColor
End If
End Sub

--------------------------

Ahora... todo esto que te dije está demás si solo vas a hacer ejecutar una sola instrucción.
Puedes dejarlo perfectamente así:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then Cancel = True
CeldaAnterior.Interior.Color = ColorAnterior
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
CeldaAnterior.Interior.Color = ColorAnterior
End Sub


o también:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then
Cancel = True
Else
CeldaAnterior.Interior.Color = ColorAnterior
End If
End Sub



--------------------------
Cuéntame si te sirve.
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
sin imagen de perfil

Juntar o unir 2 macros con el mismo Private Sub....

Publicado por luishao hiroshi (9 intervenciones) el 21/04/2015 17:12:58
Hola Khristtian, gracias por responder, pero el error me siguui saliento en: CeldaAnterior.Interior.Color = ColorAnterior hize todo lo que me dijiste y nada.

Te paso el archivo al final de m cmentario para que lo veas.

Gracias...
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
sin imagen de perfil

Juntar o unir 2 macros con el mismo Private Sub....

Publicado por Khristtian (77 intervenciones) el 21/04/2015 18:33:54
Esa linea de código no está en el proyecto que me mandaste.

Podrías poner una captura cuando se produce el error.
Señalar bajo que acción o evento se produce ese error.
Señalar cual es el fin de la funcionalidad que necesitas.

Saludos
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
sin imagen de perfil

Juntar o unir 2 macros con el mismo Private Sub....

Publicado por luishao hiroshi (9 intervenciones) el 21/04/2015 20:13:27
Hola bro, descargate el archivo que te subi y veras que los codigos que me pasate me tira el mimo error como los que tenia anteriormente...

zmgxok

Gracias...
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
sin imagen de perfil

Juntar o unir 2 macros con el mismo Private Sub....

Publicado por Khristtian (77 intervenciones) el 22/04/2015 04:46:43
Insisto... el proyecto que subiste no tiene las lineas de código que muestras en la captura. Tienes solo esto: 'If SaveAsUI Then Cancel = True

Podrías poner una captura cuando se produce el error. NO DE UN PUNTO DE INTERRUPCIÓN. Quiero leer el mensaje de error.

Señala bajo que acción o evento se produce ese error. Pueden suceder diversos eventos en la interacción, no puedo probar todas las posibilidades. Dime.. cuando ingreso este valor en tal celda... pasa el error (O algo así)

Señalar cual es el fin de la funcionalidad que necesitas. Quieres colorear una celda, según su valor, su formato, según una condición... etc.

Y sube la versión correcta del proyecto.

Saludos
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
sin imagen de perfil

Juntar o unir 2 macros con el mismo Private Sub....

Publicado por luishao hiroshi (9 intervenciones) el 22/04/2015 18:43:00
No entiendo si el archivo que te subi es el mismo que me da el error, no tiene algun face o forma de chatear de forma directa....
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