CÓDIGO PARA REFERENCIAS RELATIVAS EN MACROS

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

CÓDIGO PARA REFERENCIAS RELATIVAS EN MACROS

Notapor emoreira » 06 Ene 2012 00:49

Buenas noches, el motivo de mi consulta es porque tengo una macro con variables a las que se les asigna los valores de determinadas celdas de una hoja de cálculo y necesito saber que codigo debo utilizar para que estás referencias se actualicen cada vez que se inserte o elimine filas y columnas de la hoja de cálculo, ya que al realizarce algún cambio de este tipo en la hoja de cálculo tengo que estar modificando la nueva ubicación que tiene la celda.
A continuación presento un ejemplo sencillo de como obtengo el valor de una celda de una hoja de cálculo:
Sub calcula()
Dim a As Integer
Dim b As Integer
a = Hoja1.Cells(3, 2)
b = Hoja1.Cells(3, 3)
Hoja1.Cells(4, 2) = a * b
End Sub

Agradecería mucho la ayuda prestada ya que soy nueva en el mundo de las macros y no sé como resolver esto.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
emoreira
Miembro Nuevo
Miembro Nuevo
 
Registrado: 06 Ene 2012 00:27

Re: CÓDIGO PARA REFERENCIAS RELATIVAS EN MACROS

Notapor jfmart » 17 Ene 2012 14:52

Hola.
Por favor, prueba el código adjunto.
Código: Seleccionar todo
Sub calcula()

  Dim a As Integer
  Dim b As Integer
 
  ' Selecciono la hoja Hoja1. A partir de ahora es la hoja activa.
  Sheets("Hoja1").Select
  ' Selecciono A1. A partir de ahora es la celda activa (ActiveCell).
  Range("A1").Select
 
  ' Partiendo de la celda activa (A1) guarda en la variable "a" el valor
  ' de la celda que está dos filas por debajo y una columna a la derecha.
  ' En este caso a = B3 siempre sin importar las filas y/o columnas
  ' que se inserten.
  a = ActiveCell.Offset(2, 1).Value
 
  ' Partiendo de la celda activa (que sigue siendo A1) guarda en la variable
  ' "b" el valor de la celda que está dos filas por debajo y dos columnas a
  ' la derecha.
  ' En este caso a = C3 siempre sin importar las filas y/o columnas
  ' que se inserten.
  b = ActiveCell.Offset(2, 2).Value
 
  ' Siempre B4 = a * b por las mismas razones anteriores.
  ActiveCell.Offset(3, 1).Value = a * b
 
End Sub

Saludos cordiales.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
jfmart
Miembro Frecuente
Miembro Frecuente
 
Registrado: 16 Ene 2012 09:28
Ubicación: Sevilla (España)


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot], jesu gomez y 7 invitados