Hipervínculos con macros

Hola
Quisiera ayuda con el siguiente macro que grabe
Yo cree un formato en el cual contiene varias hojas, ¿estas hojas tiene totales de fórmulas en determinados filas lo que quiero realizar es que a través de un macro me cree los hipervínculos a la hoja principal pero de todas las hojas que vaya creando que no me toque manualmente crear los vínculos como puedo hacer esto?
Grabe este macro como ejemplo de lo que quiero pero solo me sirve para una sola hoja quiero que el macro sea estándar es decir que sirva con todas las hojas que haya en el archivo
Gracias
' Macro1 Macro
' Macro grabada el 21/02/2010 por Angelical V5
'
' Acceso directo: Ctrl+Mayús+J
'
    Range("E46").Select
    ActiveCell.FormulaR1C1 = "=Laperla!R[-34]C[2]"
    Range("F46").Select
    ActiveCell.FormulaR1C1 = "=Laperla!R[-34]C[4]"
    Range("G46").Select
    ActiveCell.FormulaR1C1 = "=Laperla!R[-28]C[3]"
    Range("H46").Select
    ActiveCell.FormulaR1C1 = ""
    Range("I46").Select
    ActiveCell.FormulaR1C1 = "=Laperla!R[-1]C[2]"
    Range("J46").Select
    ActiveCell.FormulaR1C1 = "=Laperla!R[-9]C[1]"
    Range("K46").Select
    ActiveCell.FormulaR1C1 = "=Laperla!R[-23]C[-4]"
    Range("L46").Select
    ActiveCell.FormulaR1C1 = "=Laperla!R[-23]C[-3]"
    Range("M46").Select
    ActiveCell.FormulaR1C1 = "=Laperla!R[-23]C[-2]"
    Range("M47").Select
End Sub

1 respuesta

Respuesta
1
Tratando de comprender tu pregunta, me imagino que Laperla es la hoja principal y todas las hojas hacen referencia a esa hoja.
Si es así, cabe preguntarse si todas las hojas (excluyendo Laperla) tienen el mismo formato, osea, si en todas las hojas debes agregar las referencias en el rango E46:M46.
Si se cumplen las condiciones anteriores, entonces si puedes hacer que la macro sirva para todas las hojas de la siguiente manera.
Sub Macro1()
    ' Macro1 Macro
    ' Macro grabada el 21/02/2010 por Angelical V5
    '
    ' Acceso directo: Ctrl+Mayús+J
    '
    For i = 1 To Sheets.Count
        If Sheets(i).Name <> "Laperla" Then
            Sheets(i).Select
            ActiveSheet.Range("E46").Select
            ActiveCell.FormulaR1C1 = "=Laperla!R[-34]C[2]"
            ActiveSheet.Range("F46").Select
            ActiveCell.FormulaR1C1 = "=Laperla!R[-34]C[4]"
            ActiveSheet.Range("G46").Select
            ActiveCell.FormulaR1C1 = "=Laperla!R[-28]C[3]"
            ActiveSheet.Range("H46").Select
            ActiveCell.FormulaR1C1 = ""
            ActiveSheet.Range("I46").Select
            ActiveCell.FormulaR1C1 = "=Laperla!R[-1]C[2]"
            ActiveSheet.Range("J46").Select
            ActiveCell.FormulaR1C1 = "=Laperla!R[-9]C[1]"
            ActiveSheet.Range("K46").Select
            ActiveCell.FormulaR1C1 = "=Laperla!R[-23]C[-4]"
            ActiveSheet.Range("L46").Select
            ActiveCell.FormulaR1C1 = "=Laperla!R[-23]C[-3]"
            ActiveSheet.Range("M46").Select
            ActiveCell.FormulaR1C1 = "=Laperla!R[-23]C[-2]"
        End If
    Next
    ActiveSheet.Range("M47").Select
End Sub
Hola
Te agradezco la prontitud de tu respuesta de cuenta un poco mi hoja principal se llama hoja 1(list_empresas) y la hoja la perla es el nombre de uno de las hojas de este libro que quiero que este vinculado a la hoja 1, todas las hojas que quiero vincular si tiene el mismo formato. Lo que quiero con este macro es que al ejecutarlo me cree los diversos hipervínculos ya que tengo 200 hojas y realizar manualmente es un tarea tediosa.
Lo que puede variar son las filas porque algunas empresas tienen más información.
Espero que me puedas ayudar con esto
Un abrazo
1. Tomando tu ejemplo, ignoro la hoja en la que estás, lo único que puedo inferir es que estás tomando datos de la hoja "Laperla" y los estás poniendo en la hoja actual en el rango E46:M46.
2. Si me dices que "Laperla" es una de las hojas de tu libro, entonces debo asumir que la hoja activa es "list_empresas" y por tanto estás llevando datos de la hoja "Laperla" a "list_empresas".
3. Por lo que puedo inferir, en la fila 46 estás poniendo los datos de una empresa determinada, por tanto, los datos de la siguiente empresa deberían quedar en la fila 47.
4. Me dices que cada hoja tiene el mismo formato (lo que es bueno). Asumo que esto significa que todas las hojas se relacionan de la siguiente forma con la principal:
Col hoja1.......|__E__|__F__|__G__|__H__|__I__|__J__|__K__|__L__|__M
Demás hojas.
|_G12_|_J12_|_J18_|_____|_K45_|_K35_|_G23_|_I23_|_K23
5. Pero que hay empresas que tienen más información que otras.
--------------------------
Si estoy en lo correcto con todo lo anterior, para poder hacer la macro completa debes grabar una macro para la empresa que más información tiene, de tal macro se puede crear una genérica. Con la información actual, sólo podría crear una macro que llene desde la columna E a la M.
Hola disculpa la demora pero estaba de viaje te envío el macro lo que quiero es que con oprimir el botón de la macro me haga esto que yo hago de manera manual para 300 fichas de empresas (hojas del libro de excel) me lo pase a la hoja principal que se denomina listado de empresas
Cualquier cosita me avisas
Gracias
Sub Macro1()
'
' Macro1 Macro
' Macro grabada el 01/03/2010 por Angelical V5
'
' Acceso directo: CTRL+j
'
    Range("C10").Select
    ActiveCell.FormulaR1C1 = "='1 (3)'!R[3]C[4]"
    Range("D10").Select
    ActiveCell.FormulaR1C1 = "='1 (3)'!R[2]C[3]"
    Range("E10").Select
    ActiveCell.FormulaR1C1 = "='1 (3)'!R[4]C[2]"
    Range("F10").Select
    ActiveCell.FormulaR1C1 = "='1 (3)'!R[6]C[1]"
    Range("G10").Select
    ActiveCell.FormulaR1C1 = "='1 (3)'!R[10]C[3]:R[10]C[4]"
    Range("I10").Select
    ActiveCell.FormulaR1C1 = "='1 (3)'!R[55]C[2]"
    Range("J10").Select
    ActiveCell.FormulaR1C1 = "='1 (3)'!R[45]C[1]"
    Range("K10").Select
    ActiveCell.FormulaR1C1 = "='1 (3)'!R[15]C[-4]"
    Range("L10").Select
    ActiveCell.FormulaR1C1 = "='1 (3)'!R[15]C[-3]"
    Range("M10").Select
    ActiveCell.FormulaR1C1 = "='1 (3)'!R[15]C[-2]"
    Range("N10").Select
    ActiveCell.FormulaR1C1 = "='1 (3)'!R[15]C[-3]"
    Range("P10").Select
    ActiveCell.FormulaR1C1 = "='1 (3)'!R[7]C[-9]"
    Range("C11").Select
    ActiveCell.FormulaR1C1 = "='1 (4)'!R[2]C[4]"
    Range("D11").Select
    ActiveCell.FormulaR1C1 = "='1 (4)'!R[1]C[3]"
    Range("E11").Select
    ActiveCell.FormulaR1C1 = "='1 (4)'!R[3]C[2]"
    Range("F11").Select
    ActiveCell.FormulaR1C1 = "='1 (5)'!R[5]C[1]"
    Range("G11").Select
    ActiveCell.FormulaR1C1 = "='1 (5)'!R[9]C[3]:R[9]C[4]"
    Range("I11").Select
    ActiveCell.FormulaR1C1 = "='1 (5)'!K65ç"
    ActiveCell.FormulaR1C1 = "='1 (4)'!R[54]C[2]"
    Range("J11").Select
    ActiveCell.FormulaR1C1 = "='1 (5)'!R[44]C[1]"
    Range("K11").Select
    ActiveCell.FormulaR1C1 = "='1 (5)'!R[14]C[-4]"
    Range("L11").Select
    ActiveCell.FormulaR1C1 = "='1 (5)'!R[14]C[-3]"
    Range("M11").Select
    ActiveCell.FormulaR1C1 = "='1 (4)'!R[14]C[-2]"
    Range("N11").Select
    ActiveCell.FormulaR1C1 = "='1 (4)'!R[14]C[-3]"
    Range("P11").Select
    ActiveCell.FormulaR1C1 = "='1 (5)'!R[6]C[-9]"
    Range("P12").Select
End Sub
¿Lo qué me envías es una macro para una empresa solamente?
Porque en la hoja destino abarca dos filas, situación totalmente distinta a la macro inicial que me enviaste.
Por otra parte tiene como origen tres hojas distintas.
¿Los datos de cada empresa provienen de tres hojas distintas?
Nota: Para generar la macro, copia celda a celda, no copies rangos como lo hiciste para G10 y G11.
Espero la nueva macro (no la grabes a la rápida).
Hola disculpa la demora pero estaba arreglando el archivo. Te comento te envío el archivo con macro. ¿Qué es lo que quiero? En el archivo list_empresa contiene la información resumida de la gestión de las empresas que manejo, la información de las empresas se almacena en las fichas técnicas que para el archivo es la hoja 1 cual es el problema que para tener el resumen de la información tengo que realizar los hipervínculos manualmente pero este mensualmente se manejan 1000 empresas. Por eso quiero que la macro me cree los hiperviculos tan pronto cree la ficha (2) y así sucesivamente te agradezco la colaboración
http://rapidshare.com/files/364167219/ejemplo_archivo.xls.html
La siguiente macro recorre todas las hojas, partiendo desde la 3 hata la última, toma los datos que solicitas y los agrega a la hoja list_empresas.
Espero te sirva o la puedas acomodar para tus necesidades.
Saludos.
--------------------------------------------
Sub Macro4()
'
' Macro4 Macro
' Macro grabada el 16/03/2010 por Angelical V5
'
' Acceso directo: Ctrl+Mayús+J
'
Dim i As Double
Dim dblFila As Double
dblFila = 8 'Fila anterior a la inicial inicial
    For i = 3 To Sheets.Count
        'dblFila = Range("C65536").End(xlUp).Row 'Última fila ocupada
        dblFila = dblFila + 1
        Range("C" & dblFila).Select
        ActiveCell.Formula = "='" & Sheets(i).Name & "'!G13"
        Range("D" & dblFila).Select
        ActiveCell.Formula = "='" & Sheets(i).Name & "'!G12"
        Range("F" & dblFila).Select
        ActiveCell.Formula = "='" & Sheets(i).Name & "'!K61"
        Range("G" & dblFila).Select
        ActiveCell.Formula = "='" & Sheets(i).Name & "'!K50"
        Range("H" & dblFila).Select
        ActiveCell.Formula = "='" & Sheets(i).Name & "'!G20"
        Range("I" & dblFila).Select
        ActiveCell.Formula = "='" & Sheets(i).Name & "'!I20"
        Range("J" & dblFila).Select
        ActiveCell.Formula = "='" & Sheets(i).Name & "'!K20"
        Range("K" & dblFila).Select
        ActiveCell.Formula = "='" & Sheets(i).Name & "'!G14"
        Range("C" & dblFila).Select
    Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas