Excel - VBA Dinámico

 
Vista:
Imágen de perfil de Patrick
Val: 43
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

VBA Dinámico

Publicado por Patrick (66 intervenciones) el 02/04/2022 17:10:48
Buenas tardes,

Tengo una pregunta que puede parecer inútil pero, ¿el código de una macro puede ser dinámico?

Me explico: supongamos que tengo en mi código VBA de cualquier macro la un Range=(“B7”) para cualquier acción a realizar. Poco importa el qué. Pero la acción se base en B7. Resulta que si añado una columna entra A y B, el contenido de B7 pasa a C7 con lo cual mi código queda obsoleto y tengo que modificarlo a Range = (“C7).

¿Hay alguna manera que cuando se muevan filas o columnas también las cambie en el código VBA? O siempre hay que volver a modificar el código de la macro a mano si se cambian las filas o columnas?

Gracias.
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 Patrick
Val: 43
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

VBA Dinámico

Publicado por Patrick (66 intervenciones) el 03/04/2022 01:00:57
Hola Abraham, no, no sé cómo hacer eso.
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
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

VBA Dinámico

Publicado por Antoni Masana (2478 intervenciones) el 03/04/2022 21:48:50
Yo he llamado a la celda "CONTROL".

CON EL COMANDO ASIGNAR NOMBRE
Selecciona la celda o rango que quieras nombrar. Ingresa a la ficha Fórmulas y ubica el grupo Nombres definidos. Haz clic en el comando Asignar nombre. Completa la información de la ventana Nombre nuevo y acepta.

Y con esta macro me hace la acción cuando entro en la celda:

1
2
3
4
5
6
7
8
9
Option Explicit
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo Fin
    If Target.Name.Name = "CONTROL" Then
       MsgBox Target.Address
    End If
Fin:
End Sub

Seguro que se puede hacer sin el On Error pero no tengo ganas de mirarlo. Adjunto libro.

Saludos.
\\//_
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