Duda sobre Target en excel VBA

Dante buenos días.

Necesito que me expliques algunos puntos no lo tengo claro como, limitaciones con target y otros

Target.addres(False, False) = "A1"
If Target.Row > 100 Then Exit Sub
 If Target.count > 1 Then Exit Sub

cual es la diferencia entre usar address o row en esta línea ?

 If Not b Is Nothing Then
        celda = b.Address
'
'
End If
 If Not b Is Nothing Then
        celda = b.row
'
'
End If

en que casos uso 

Application.EnableEvents = False

D a n te, estaré muy agradecido por tu tiempo saludos!

1 Respuesta

Respuesta
1

Vamos una por una

Target.addres(False, False) = "A1"

target.address te regres "$A$1", pero si le pones (false, false) te regresa "A1"

(False, true) te regresa "A$1"

(True, false) te regresa "$A1"


If Target.Row > 100 Then Exit Sub
 If Target.count > 1 Then Exit Sub

Si es mayor a 1, significa que modificaste más de una celda, por lo tanto, salir.

Pero si requieres revisar varias celdas, entonces pones >100, eso significa que puedes modificar hasta 100 celdas. Si modificas más de 100 celdas, entonces termina.

¿Por qué le pongo 100?, solamente por poner un número mayor a 1, pero tampoco le voy a poner 1,000, ya que si pones un número muy grande, excel entra en un loop. Sobre todo cuando insertas una fila o una columna, en esos casos estás modificando cientos de celdas.



 If Not b Is Nothing Then
        celda = b.Address
'
'
End If
 If Not b Is Nothing Then
        celda = b.row
'
'
End If

.Address tiene la dirección de la primer celda encontrada, .Row tiene la primer fila encontrada.

Utilizas .Address, porque puedes encontrar el dato en A2, en C2, en F2, es decir, puede estar el dato en diferente celda pero en la misma fila.

Utilizas .Row cuando solamente quieres encontrar un dato en la fila.


Cuando estás en el evento Change de la hoja y modificas la hoja, entonces excel entra en un loop, porque al modificar una celda dentro de la macro, vuelve activarse el evento change, entonces para eso utilizas

Application.EnableEvents = False

De esa forma apagas los eventos, modificas la celda y no vuelve a activarse el evento change. Al final de la macro vuelves a activar los eventos para que se activen cuando se modifique la hoja.

Uff, r ecuerda que es una petición por pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas