Ejecutar macro según valor celda

He realizado la siguiente macro (copiada de un caso similar en este mismo sitio) y me funciona perfectamente, solo que al borrar un rango de celdas (en cualquier posición de la hoja, me da código de error. También si elimino una filo o una columna. ¿Cómo lo soluciono?

La idea es que coloque automáticamente la fecha de hoy, al llenar cualquier celda en la columna "$d".

Private Sub Worksheet_Change(ByVal Target As Range)
fechar = Range("d65536").End(xlUp).Row
If Target.Address = fechar Then
If UCase(Target.Value) = 0 Then End
ElseIf UCase(Target.Value) <> 0 Then fechar_hoy
End If
End Sub

1 respuesta

Respuesta
1

·

·

¡Hola Dol54!

No puedo reproducir el caso, me dice que falta fechar_hoy

¿Podrías mandar el conjunto completo de macros o la hoja a mi correo?

[email protected]

Saludos.

:

:

Ahora me da error en estas dos líneas

Range("b" & N) = Date  (día)
Range("c" & N) = Date  (mes)

Lo mejor sería que me mandaras la hoja excel completa, así tendría todo como lo tienes tú.

Saludos.

:

:

Prueba cambiando la macro primera por esta:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rango, celda As Range
Set rango = Intersect(Target, Range("D1:D65536"))
If rango Is Nothing Then Exit Sub
For Each celda In rango
    If UCase(celda.Value) <> 0 Then fechar_hoy
Next celda
End Sub

·

Y eso es todo, espero que te funcione.

Saludos.

:

:

Espera un poco, que no hace lo mismo que la que tenías, ahora la cambio.

Mejor pruébala y me dices si funciona como quieres o no. Que la que tú tenías no alcanzo a comprenderla del todo, me parece que tiene partes que no hacen falta.

La que yo tenía, en realidad la copié de algo parecido y le cambié los rangos y variables. Puede que no sea la mas adecuada. Como estoy aprendiendo tomo partes que me sirven y las modifico.

He probado la que enviaste primero y anduvo muy bien. Ahora probaré la "nueva".

Muchas gracias nuevamente.

Daniel

No, no hay nueva, si te funciona esa ya vale. Es que no se exactamente lo que quieres hacer y todos los casos que se pueden dar. Si algo no va como quieres me lo dices.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas