............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

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

Ver el tema anterior Ver el tema siguiente Ir abajo

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

Mensaje por 6luishao6 el Sáb Abr 18, 2015 8:48 am

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:
Archivo

mega.co.nz #!ehUU3aTK!aQ07FEGhg3PE9tWp7pcnkUvUPoKgwP-9o9R_rN7If1U


Gracias....

6luishao6

Masculino Cantidad de envíos : 11
Edad : 29
Ciudad - Pais : venezuela
Version de Excel : 2007 - 2010
Fecha de inscripción : 18/04/2015

Volver arriba Ir abajo

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

Mensaje por moises melgar el Sáb Abr 18, 2015 8:52 pm

copia y pega ambas macros


moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 512
Edad : 28
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

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

Mensaje por 6luishao6 el Sáb Abr 18, 2015 9:09 pm

Por que no me funciona les estoy pidiendo ayuda sale error

6luishao6

Masculino Cantidad de envíos : 11
Edad : 29
Ciudad - Pais : venezuela
Version de Excel : 2007 - 2010
Fecha de inscripción : 18/04/2015

Volver arriba Ir abajo

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

Mensaje por moises melgar el Sáb Abr 18, 2015 10:29 pm

vi el archivo que subiste en otro foro

el error se quita de la siguiente forma:

1.Pasamos las lineas de codigo
Public CeldaAnterior As Range
Public ColorAnterior As Long
a thisworkbook

2. Public CeldaAnterior As Range quitarle el "As Range"

3. eliminar cualquier otro Private Sub Workbook_Open y Private Sub Workbook_BeforeSave Solo necesitas uno en ThisWorkbook

4. muy importante
cambiar cualquier
set CeldaAnterior = ActiveCell '--->CeldaAnterior adquiere el valor de la celda no la direccion
por:
CeldaAnterior = ActiveCell.Address

ya que no se puede ponerle relleno a un valor.
si en cualquier procedimiento usa el CeldaAnterior = ActiveCell, en ese momento CeldaAnterior dejara de ser un rango para convertirse en el valor de la celda activa

para verificar que CeldaAnterior  siga siendo rango y ColorAnterior un numero en tus pruebas coloca:

MsgBox " El rango de CeldaAnterior es " & CeldaAnterior & " y el valor de ColorAnterior es " & ColorAnterior
asi notaras que CeldaAnterior tiene que ser un rango $F$7 por ejemplo y ColorAnterior un numero

5. el valor marca otro Error por que al intentar cambiar el color de la celda,
la hoja en cuestion esta protegida por lo que antes de cambiar el fondo hay que desproteger la hoja con

ActiveSheet.Unprotect  <-----se desprotege  para mod el relleno
codigo <----codigo que modifica relleno
ActiveSheet.Protect <----vuelvo a proteger la hoja

6.
como CeldaAnterior es un rango escrito en si
cambiar CeldaAnterior.Interior.Color = ColorAnterior
por:
 Range(CeldaAnterior).Interior.Color = ColorAnterior

le di una checada a los codigos pero no me doy cuenta del objetivo al que buscas


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then Cancel = True
'Sin los cambios antes descritos seguira marcando error
ActiveSheet.Unprotect
 Range(CeldaAnterior).Interior.Color = ColorAnterior
ActiveSheet.Protect

End Sub

moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 512
Edad : 28
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

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

Mensaje por 6luishao6 el Sáb Abr 18, 2015 10:45 pm

Hola moises melgar, respecto a copiar los datos de una celda sin el color de letra y relleno pille una macro que hace eso, lo malo que en ThisWorkbook se repite este valor:
                                                              ----------------------------------------------
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Application.DisplayAlerts = False
ActiveSheet.Delete
MsgBox "NO TIENES PERMITIDO INSERTAR UNA NUEVA HOJA DE CÁLCULO."
Application.DisplayAlerts = True
End Sub
----------------------------------------------

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

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

Private Sub Workbook_Open()
   ColorAnterior = ActiveCell.Interior.Color
   Set CeldaAnterior = ActiveCell
End Sub
----------------------------------------------
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
   On Error Resume Next
   CeldaAnterior.Interior.Color = ColorAnterior
   ColorAnterior = ActiveCell.Interior.Color
   ActiveCell.Interior.Color = RGB(153, 204, 0)
   Set CeldaAnterior = ActiveCell
End Sub
                                                              ----------------------------------------------
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
   CeldaAnterior.Interior.Color = ColorAnterior
End Sub


hay esta el codigo..

Gracias.

6luishao6

Masculino Cantidad de envíos : 11
Edad : 29
Ciudad - Pais : venezuela
Version de Excel : 2007 - 2010
Fecha de inscripción : 18/04/2015

Volver arriba Ir abajo

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

Mensaje por Contenido patrocinado Hoy a las 11:28 pm


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.