Buenas noches:
Adjunto mi archivo que hace lo siguiente:
Tengo 3 hojas de cálculo, 1° "NC" , 2° "NCE" y 3° "NCV", en NC registro mi nota de débito la cual tengo la macro ya desarrollada para copiar todo el contenido a la hoja NCE ( inserta filas para bajar las otras notas y recién copia la nueva es por eso que va en descenso) y en la hoja NCV solo un resumen del N° de nota , Nombre del cliente, Monto Bs, Monto Usd y la fecha de impresión (la cual copia en forma ascendente) que es la prácticamente la información que necesito para hacer seguimiento a mis notas, solo que para no ir cambiando de hoja en hoja, será que se puede hacer mediante una macro referenciar mediante un hipervínculo haciendo referencia al número de nota que se copia en la hoja NCV y que vaya a la hoja NCE al mismo número de nota de débito? o sea de la hoja NCV están los números de notas de débito en la columna A por ejemplo la nota 4088 la cual está en la Celda A2 dentro la hoja NCV vaya a la hoja NCE a la celda M31 la nota 4089 que está en la hoja NCV celda M3 vaya a la hoja NCE M17 y así sucesivamente, recalco que cuando doy la orden de imprimir en la hoja NC donde tengo el botón IMPRIMIR lo que hace es primero ir a la hoja NCE se sitúa en la celda a3 y aumenta 30 filas, después vuelve a la hoja NC y selecciona de la celda A1 a la M25 y copia todo a la hoja NCE , después elimina las filas en blanco, es por eso que no tiene la misma forma las notas de débito que están las copias en la hoja NCE de la misma manera en la hoja NCV copia los datos mencionados N° de nota, cliente, monto bs, monto usd y la fecha de impresión, todo eso lo hago mediante una macro, y bueno quiero hacer un hipervínculo de seleccionar la nota que necesito en la hoja NCV e ir a la nota detallada que está en la hoja NCE.
Gracias por su atención, saludos cordiales
Jesús Martínez
Adjunto | Tamaño |
---|---|
hipervinculos.xlsx | 374.58 KB |
Lo puedes hacer con una macro y lo puedes hacer con la función HIPERVINCULO de Excel
El problema está en saber a qué celda de la hoja NCE tiene que apuntar el hipervínculo.
En primer lugar necesitarás saber dónde está la celda correspondiente al número de nota que estás buscando. En tu hoja NCE tienes los números de nota en la columna M, así que para conocer donde está lo que buscas, puedes utilizar la función COINCIDIR de Excel. algo así (para encontrar en qué fila está la nota de la celda A2:
=COINCIDIR(A2;NCE!$M:$M;0)
Podrías por ejemplo hacer que tu vínculo apuntase a la celda de la primera columna en la fila donde se encuentre el número de nota. Para esto te puede servir la función DIRECCION, con la que le puedes definir la fila, la columna, y el nombre de la hoja, en este caso a la hoja NCE.
=DIRECCION(COINCIDIR(A2;NCE!$M:$M;0);1;1;1;"NCE")
por último, para que el hipervínculo lo interprete como interno, es decir, dentro del mismo archivo, añade una almohadilla # antes de la referencia a la celda. con lo que el hipervínculo completo podría ser algo así:
=HIPERVINCULO("#" & DIRECCION(COINCIDIR(A2;NCE!$M:$M;0);1;1;1;"NCE"); "ver nota")
Teniendo esto, la puedes incorporar a tu macro en la que vas añadiendo datos a este listado. Hacer el hipervínculo con la función Hipervinculo de Excel tiene la ventaja de que los vínculos se actualizarán cuando añadas nuevas filas a la hoja NCE para añadir más datos.
------
Ya sé Excel, pero necesito más.
Muchas muchas gracias, si es lo que estaba necesitando, pero mi consulta es de como seria ingresarlo mediante macro?
Este es el codigo que utilizo para hacer con mi macro:
Sub Copiar_NC() 'modulo5
IMPRIMIR
Respuesta = MsgBox("Seguro de guardar la nota de débito? ", vbYesNo, "Aviso a " & Application.UserName)
If Respuesta = vbYes Then
Application.ScreenUpdating = False
Sheets("NCE").Visible = True
Sheets("NCE").Select
ActiveSheet.Unprotect Password:="jmp"
Cells(3, 1).Select
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
INSERTAR
Sheets("NC").Select
ActiveSheet.Unprotect Password:="jmp"
Range("A1:M25").Copy
Sheets("NCE").Select
Range("A3").PasteSpecial xlPasteAll
Application.CutCopyMode = False
'eliminamos filas vacias
Range("A3").Select
For i = 1 To 50
If ActiveCell = "" Or IsNull(ActiveCell) Then
Celda = ActiveCell.Address
Selection.End(xlToRight).Select
If ActiveCell = "" Or IsNull(ActiveCell) Then
Selection.End(xlToLeft).Select
If ActiveCell = "" Or IsNull(ActiveCell) Then
Selection.EntireRow.Delete
If ActiveCell.Row <> 1 Then Range(Celda).Offset(-1, 0).Select
End If
End If
End If
ActiveCell.Offset(1, 0).Select
Next
MsgBox "Datos copiados", vbInformation, "Aviso a " & Application.UserName
alturand
Sheets("NCE").Protect Password:="jmp"
Sheets("NCE").Visible = False
Sheets("NC").Select
'registramos a ncv
a = Range("M1").Value 'nd
b = Range("C7").Value 'clt
c = Range("L22").Value 'mbs
d = Range("M22").Value 'musd
e = Range("L4").Value 'fec
Sheets("NCV").Visible = True
Sheets("NCV").Unprotect Password:="jmp"
K = Range("A" & Cells.Rows.Count).End(xlUp).Row + 1
Range("A" & K).Value = a
Range("B" & K).Value = b
Range("C" & K).Value = c
Range("D" & K).Value = d
Range("E" & K).Value = e
Sheets("NCV").Protect Password:="jmp"
Sheets("NCV").Visible = False
' Borrar datos
Sheets("NC").Select
' Range("C7:J7") = ""
Range("D11") = ""
Range("J11") = ""
Range("B12:M21") = ""
'Range("L8:M8") = ""
'ComboBox1 = Empty
'Range("C7:J7").Select
Range("L8:M8").Select
INCREMENTAR
GRABAR
Sheets("NC").Protect Password:="jmp"
Else
Application.CutCopyMode = False
MsgBox "Acción Cancelada." & vbNewLine & vbNewLine & "No se ha copiado ningún dato."
End If
Application.ScreenUpdating = True
End Sub
Y como ingresaria el codigo para ingresar mediante macro tu formula??? gracias mil por todo
Saludos
Jesús
Jesus Martinez Plantarosa