Macro para borrar celda si otra esta vacía o se borra.

Espero puedan ayudarme

Cree una macro para que cuando se modifique una celda de la columna N en las celdas de la columna Q y R me detalle fecha de modificación y Usuario. Como la hoja esta protegida también le agregue que me la desproteja y la vuelva a proteger

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 14 Then
ActiveSheet.Unprotect "créditos"
Cells(Target.Row, 17).Value = Date
ActiveSheet.Protect "créditos"
End If
If Target.Column = 14 Then
ActiveSheet.Unprotect "créditos"
Cells(Target.Row, 18).Value = Application.UserName
ActiveSheet.Protect "créditos"

End If
End Sub

Lo que necesito es que cuando borre un valor de la columna N, también me borre los valores de la columna Q Y R.

1

1 Respuesta

5.855.450 pts. Me voy x tiempo. Necesito hacer otras cosas, descansar...

Mándame el fichero para poder probar y dejarlo bien

Mi correo es

[email protected]

Pon como asunto el título de la pregunta y como nombre del fichero algo alusivo como

MacroBorrarCelda.XLSM

(O XLS o la terminación que tenga)

Ya está, ahora mismo te paso el fichero. O no ahora mismo sino lo que me cueste subirlo.

El fichero está pesado no por las macros sino porque tiene reserva de datos para 20000 filas aunque solo uses 129, por eso ocupa tanto.

Volviendo a crear la hoja Ctas. Ctes. Y copiándole los datos pero no la hoja entera se aliviaría el tamaño.

Hemos añadido lo que pedías y corregido que la macro se ejecutaba también cuando el cambio se había hecho en otra hoja.

Por si no puedo mandarte el fichero, ya que a veces Google no me deja, te escribo aquí la macro nueva que sustituye a la que tienes.

Private Sub Worksheet_Change(ByVal Target As Range)
'By ValeroASM
If LCase(Target.Parent.Name) = "ctas. ctes." And Target.Column = 14 Then
   ActiveSheet.Unprotect "creditos"
   If Target <> "" Then
      Cells(Target.Row, 17).Value = Date  
      Cells(Target.Row, 18).Value = Application.UserName
   Else 
      Cells(Target.Row, 17).Value = ""
      Cells(Target.Row, 18).Value = ""
   End If
   ActiveSheet.Protect "creditos"
End If
End Sub

Y eso es todo, espero que te sirva. Si no entiendes algo pregúntamelo. Y si ya esta bien no olvides puntúar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas