Visual Basic para Aplicaciones - Macro para quitar color de una celda

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 7 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Macro para quitar color de una celda

Publicado por Juan Carlos (2 intervenciones) el 01/08/2018 21:14:24
Buenas tardes, este es mi caso:

Tengo un archivo de excel donde se elaboran órdenes de producción y una de las funciones de este archivo es que cuando se le da click en el botón "Contabilizar", exporta la materia prima utilizada para x orden de producción y la guarda en otro archivo de excel para llevar un registro aparte.

Resulta que tengo 2 hojas, 1 se llama Orden de Producción Manual y la 2 se llama Orden de Producción Automática, ya que la 2da hoja se llena automáticamente si es un trabajo repetitivo que no lleva ningún cambio y en la primera (Orden de Producción Manual) como su nombre lo indica es cuando un trabajo es nuevo y requiere que el llenado sea paso por paso. Las 2 hojas tienen el botón "Contabilizar" y lo organicé de forma que cada vez que le doy click en "Contabilizar" me pinte una celda para saber que esa orden ya se contabilizó y no hacer doble registro, lo logré con el siguiente código:

Sub ContabilizarPapelManual()
'
' ContabilizarPapel Macro
'

'
Application.ScreenUpdating = False
Sheets("Otros Datos").Select
Range("K2:Z2").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\Users\Diseno1\Desktop\PEDIDOS EN PRODUCCIÓN\Gasto de papel.xlsx"
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
Sheets("Orden de Producción Manual").Select
MsgBox ("Papel Contabilizado, Orden ") & Range("G3")
Range("H3").Select
Range("H3").Interior.Color = RGB(169, 208, 142)


End Sub

La parte en negrilla es la encargada de pintar la celdad de un color verde. Hasta ahí todo bien.
Resulta que necesito que cuando actualice el No. de la orden, la celda pintada de verde, vuelva a quear sin relleno para hacer una nueva orden. Esto lo logré en la primera hoja con el siguiente código:

Private Sub Worksheet_Change(ByVal Target As Range)
Celda = "G3"
If Not Application.Intersect(Target, Range(Celda)) Is Nothing Then
Range("H3").Interior.Color = xlNone
End If
End Sub


Quiero hacer lo mismo en la segunda hoja pero resulta que la celda "G3" hace referencia a la celda G3 pero de la hoja 1 (='Orden de Producción Manual'!G3) entonces como la hoja no detecta ningún cambio en el valor de la celda G3 (porque aparece así: ='Orden de Producción Manual'!G3), no me funciona la fórmula.

Cómo tendría que referenciar la celda si en realidad la que lleva el cambio es la celda G3 pero de la hoja 1 y necesito que la celda se quede sin relleno pero en la hoja 2?
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: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Macro para quitar color de una celda

Publicado por Antoni Masana (498 intervenciones) el 02/08/2018 07:18:45
Que tal esta solución.

Cuando se modifique la Celda G3 de la hoja manual cambie el color en la celda H3 de las dos hojas.

1
2
3
4
5
6
7
8
9
Private Sub Worksheet_Change(ByVal Target As Range)
    Celda = "G3"
    If Not Application.Intersect(Target, Range(Celda)) Is Nothing Then
        Range("H3").Interior.Color = xlNone
        Sheets("Orden de Producción Automática").Select
        Range("H3").Interior.Color = xlNone
        Sheets("Orden de Producción Manual").Select
    End If
End Sub

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: 4
Ha aumentado su posición en 7 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Macro para quitar color de una celda

Publicado por Juan Carlos (2 intervenciones) el 03/08/2018 22:08:31
Buenas tardes, efectivamente me ha servido la solución. Muchas 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