Hacer referencia a un valor en una hoja distinta macro

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'rango hasta la celda 2000
If Not Intersect(Target, Range("H2:H2000")) Is Nothing Then
'columna H actualizando col G
Target.Offset(0, -1) = Target.Offset(0, -1).Value - Target.Value
'acumula los valores ingresados en H Y los muestra en I
Target.Offset(0, 1) = Target.Offset(0, 1).Value + Target.Value
End If
End Sub 

buenos días primero que todo buenas nochezpedirles ayuda con la siguiente macro

Esta macro lo que hace es que cuando ingreso un numero en H el me lo resta a col G necesito que col G quede en la hoja1 y col H se encuentra en la hoja2 y col I que es el que acumula los valores ingresado en H la columna I me quede en la hoja3 hacer referencia a diferentes hojas encontré este ejemplo pero no se como implementa

Sheets("hoja1"). Range(ubica).Offset(0, 1).Value = Sheets("hoja1"). Range(ubica).Offset(0, 1).Value 

espero ser lo bastante claro para poder resolver mi problemita

1 respuesta

Respuesta
1

La rutina está en la hoja donde se hace el cambio en col H (col H se encuentra en la hoja2)

Si col G quede en la hoja1 podes anteponer el nombre de la hoja SIEMPRE Y CUANDO el registro se encuentre en la misma ubicación de fila y col..., lo mismo con col I (columna I me quede en la hoja3 )

Entonces la instrucción para col G sería:

Sheets("Hoja1"). Cells(target. Row, target.column-1) = Sheets("Hoja1"). Cells(target. Row, target. Column-1)-target.value

Y para acumular en col I esta otra:

Sheets("Hoja3").cells(target.row,target.column+1)=Sheets("Hoja3").cells(target.row,target.column+1)+target.value

PD) Hay varias maneras de hacer ref a una celda, en este caso usé Cells(FILA, COL) haciendo referencia a la fila y col de la celda activa en col H.

Podés leer más sobre el tema en la sección Macros de mi sitio. También el manual Programación es una buena alternativa.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas