1 votos

Reflejar un grupo de celdas en otra parte de la misma hoja

Estoy tratando de tener una tabla interactiva en varios lugares de mi hoja para evitar que mis usuarios tengan que desplazarse repetidamente a través de esta hoja masiva. cada vez que esta tabla se actualiza desde cualquiera de los lugares, me gustaría que todas las tablas se actualizaran. Tengo un comienzo (posiblemente inútil):

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r1 As Range, r2 As Range
    Set r1 = Range("M205:p205")
    Set r2 = Range("m207:p207")
    If Intersect(Target, r1) Is Nothing Then Exit Sub
    Application.EnableEvents = False
        r2.Value = r1.Value
    Application.EnableEvents = True
        r1.Value = r2.Value
End Sub

pero esto sólo "refleja" las células en una dirección. No tengo ni idea de cómo hacerlo bidireccional. Lo ideal sería tener 4 de estas tablas interactivas que se actualizaran unas a otras.

Gracias

0voto

Máté Juhász Puntos 2628

¡Su código es realmente un muy buen comienzo!

Lo he mejorado un poco para que funcione en tu escenario:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r1 As Range, r2 As Range, r3 as Range, r4 as Range
    Dim TempRng as Range
    Set r1 = Range("M205:p205")
    Set r2 = Range("m207:p207")
    set r3 = Range(<your_address3>)
    set r4 = Range(<your_address4>)
    If not Intersect(Target, r1) is Nothing then
        set TempRng = r1
    Else If not Intersect(Target, r2) is Nothing then
        set TempRng = r2
    Else If not Intersect(Target, r3) is Nothing then
        set TempRng = r3
    Else If not Intersect(Target, r4) is Nothing then
        set TempRng = r4
    Else 
        Exit Sub
    End If
    Application.Enableevents = False
    r1.Value = TempRng.Value 
    r2.Value = TempRng.Value 
    r3.Value = TempRng.Value 
    r4.Value = TempRng.Value 
    Application.Enableevents = True
End Sub

0voto

Mobus Puntos 160

No es necesario reflejar las celdas para que los usuarios vean constantemente las mismas celdas. Excel ofrece tres métodos nativos para gestionar la "vista" de la hoja de cálculo:

  1. Dividir ventanas (Ver > Dividir). Divide una hoja en dos secciones horizontales o dos verticales o en cuatro cuadrantes de la misma hoja (depende de si selecciona una fila, una columna o una sola celda antes de hacer clic en Dividir).

  2. Congelar paneles (Ver > Congelar paneles). Es similar a Dividir, pero las secciones superior/izquierda/superior izquierda se congelan en su lugar y no se pueden desplazar.

  3. Nueva ventana (Ver > Nueva ventana, seguido de Ver > Organizar todo). Esta opción crea dos "vistas de hoja de trabajo" abiertas del mismo archivo. Es muy útil para ver simultáneamente hojas separadas del mismo archivo. Fíjese en los números ":1" y ":2" que aparecen junto al nombre del archivo en la parte superior central. Esto indica qué ventana de vista está activa en ese momento.

Todas estas opciones de vista avanzada se guardarán con el archivo y se restaurarán si guarda, cierra y vuelve a abrir el archivo.

Espero que te sirva de ayuda. Si necesitas más información sobre cualquiera de estos métodos, sólo tienes que buscar, por ejemplo, "cómo utilizar paneles de congelación en Excel" en google o en youtube.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: