Actualizar la Referencia de Rango de Celda en el Código VBA

Tengo un código en vba macros que hace referencia a Range("B5"), quiero saber si al cambiar la posición de la hoja en la hoja de Excel (por ejemplo si inserto una fila o columna), esta se pueda actualizar en el código vba (si inserto una columna el Range ("B5"), debería ser Range("C5").

2 respuestas

Respuesta
2

Lamentablemente eso no es posible. Tendrás que pensar en alguna relación con otros datos.

Por ej, si buscas el total del cliente 'BB' lo encontrarás en la celda E3.

Pero al insertar otro mes se correrá a F. Entonces para obtener ese mismo dato debes buscar el 'texto' TOTAL y eso te dará la col.

En otros casos solo queda modificar el código.

En ese caso como seria el código, le agradecería que me apoye en ese sentido.

Las opciones son múltiples, depende de lo que busques.

Dejo el ejemplo para el caso de la imagen si se desea obtener el valor de la fila 3.

Sub buscaCol()
'x Elsamatilde
dato = "TOTAL"    'colocar el texto o valor a buscar
'se busca en fila 1
Set busco = ActiveSheet.Rows("1:1").Find(dato, LookIn:=xlValues, lookat:=xlWhole)
'si encuentra el dato guardo su columna
If Not busco Is Nothing Then
    colx = busco.Column     'este dato servirá para otros macros si se declara pública la variable
    'muestra el valor de la fila 3
    MsgBox Cells(3, colx)
End If
End Sub

Sdos y no olvides valorar la respuesta.

Respuesta
1

H o l a:

Otra opción es nombrar la celda en el Cuadro de Nombres, selecciona la celda B5 y en el cuadro de nombres escribe la palabra "dato":

En la macro haz referencia al nombre "dato":

Sub ejemplo()
'
    Range("dato") = 100
End Sub

Entonces, no importa hacia donde se mueva la celda, siempre que hagas referencia a "dato" la puedes ubicar:

Sub ejemplo2()
'
    Range("dato").Select
End Sub

S a l u d o s

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas