Rango variable en las celdas con hipervínculo
Private Sub BtnAceptar_Click() Dim n As Integer, nFila As Integer, nUltimaFila As Integer Dim nFilaXLS As Integer, nFilaComienzoTabla As Integer Dim sNombreMaterial As String Dim hiper As Variant Dim nombre As Variant Dim exten As Variant Dim buscador As Variant Dim celda As Range Dim i As Long On Error Resume Next 'La fila donde comienza la tabla en la hoja excel nFilaComienzoTabla = 7 sNombreMaterial = TextBox1.Text '1. Comprobamos que se ha escrito el nombre del material If Trim(sNombreMaterial) = "" Then MsgBox "Escribe el nombre del material a ingresar", vbInformation Exit Sub End If '2. Comprobamos que se ha seleccionado una fila de la lista If LIS.ListIndex = 0 Then MsgBox "Selecciona donde quieres ingresar", vbInformation Exit Sub End If '3. Comprobamos que se haya seleccionado un elemento de la lista If Not ElementosSeleccionados() Then MsgBox "Debes seleccionar algún elemento de la lista", vbInformation Exit Sub End If '4 Comprobamos que el material no este en la lista nUltimaFila = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row For nFila = nFilaComienzoTabla To nUltimaFila If LCase(Cells(nFila, 2).Text) = LCase(sNombreMaterial) Then 'es igual a lo ingresado MsgBox "El material ya existe", vbInformation Exit Sub End If Next 'Creamos el hipervinculo buscador = "Archivo Word (*.docx),*.docx , Archivo PDF (*.pdf),*.pdf , Archivo word (*.doc),*.doc," hiper = Application.GetOpenFilename(buscador, , "Seleccione Archivo ") If hiper = "" Or hiper = False Then MsgBox "Selección erronea", vbCritical, "ERROR" Exit Sub End If With CreateObject("Scripting.FileSystemObject") nombre = .getfile(hiper).Name exten = .GetExtensionName(hiper) i = Len(exten) + 1 exten = nombre nombre = Left(nombre, Len(nombre) - i) End With Set celda = Range("d11") If celda Is Nothing Then MsgBox "Selección erronea", vbCritical, "ERROR" Exit Sub End If With celda .Value = nombre ActiveSheet.Hyperlinks.Add Anchor:=celda, Address:=hiper, ScreenTip:="Abrir " & exten, TextToDisplay:=nombre End With Set celda = Nothing MsgBox "Hipervinculo creado satisfactoriamente", vbInformation, "" '5. Obtenemos la fila de la hoja excel que queremos ingresar nFilaXLS = nFilaComienzoTabla + LIS.ListIndex '7. Escribimos el nuevo material Cells(nFilaXLS, 2) = sNombreMaterial '8. Recargamos la lista de materiales CargarLista End Sub
hola a todos:
como podrán ver en este código, mi idea es poder ingresar datos y que estos contengan un hipervínculo hacia otro documento, pero lo que no e podido lograr es que el rango de la celdas sea variable como podrán ver en esta parte del código "Set celda = Range("d11")" solo puedo ingresar datos en esa celda y no ingresar en la celda que yo selecciono, ahora solo me ingresa el item pero sin el hipervínculo ...
no se si se entiende la idea ,,, ojala me puedan ayudar
desde ya muchas gracias
1 Respuesta
Respuesta de Dante Amor
1