lista desplegable en cada hoja con hipervinculos y coincidencias con 9 digitos

6 envíos / 0 nuevos
Último envío
excel1977
Imagen de excel1977
Offline
última acción: Hace 3 años 8 meses
Nivel 1 - 200 puntos
alta: 19/11/2014 - 10:00
Puntos: 450
lista desplegable en cada hoja con hipervinculos y coincidencias con 9 digitos

-Buenas a todos,

intento explicar lo que quiero hacer y no se.

Tengo una lista desplegable la cual listo de una carpeta una vez conozco su ruta ( son archivos excel ). estos archivos pdf o cualquier otro formato pero en su mayoría pdf tienen una parte común  a mis hojas de excel y lo que quisiera hacer es que al abrir la lista desplegable y seleccionar un objeto de esa lista, me buscque la coincidencia de los primeros 9 dígios de mis hojas excel y habra la hoja. ( intento poner un ejemplo )

Supongamos que tengo una lista desplegable con los siguientes nombres de archivos.

PC19-2015 maleta roja

PC19-2016 maleta verde

PC19-0025 maleta azul

PC19-2541-1 maleta azul

Y en mis hojas de excel lo que tengo sería;

PC19-2015 

PC19-2016 

PC19-0025 

PC19-2541-1 ertc.....

 

Pues lo que tendría que hacer es que al seleccionar en la lista desplegable PC19-2016 maleta verde, el libro ecel se vaya a la hoja PC19-2016

Si selecciono en la lista PC19-2541-1 maleta azul, se abriría la hoja, PC19-2541-1

 

O sea es una busqueda  en una lista desplegable pero con una coincidencia no de todo el título, sino de los primeros 9 dígitos que es la parte común.

Gracias.-

 

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 20 horas 47 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Así que parece qeu tienes que

Así que parece qeu tienes que extraer texto desde el principio hasta el primer espacio que encuentre

lo de los 9 caracteres ya en tu ejemplo no se cumple, porque PC19-2541-1 tiene 11 caracteres

para tomar x caracteres por la izquierda, tienes la función LEFT

para encontrar el primer espacio en la cadena tienes la función InStr

así que el texto que te interesa podría ser algo así 

elnombrequemeinteresa = Left(nombredelarchivo, InStr(nombredelarchivo, " ") - 1)

 

------
Ya sé Excel, pero necesito más.

excel1977
Imagen de excel1977
Offline
última acción: Hace 3 años 8 meses
Nivel 1 - 200 puntos
alta: 19/11/2014 - 10:00
Puntos: 450
lista desplegable

Buenas Pacomegia,

Aunque PC19-2541-1 tiene 11 dígitos, solo me interesan los 8 primeros PC19-2541.

No he podido aplicar la fórmula que me adjuntas en tu comentario, no se como hacer que funcione.

Te adjunto el archivo en cuestión donde puedes ver lo que tengo.

Com ves en C3 tengo una lissta desplegable, lo que me gustaría hacer es que al buscar un valr en esa lista( por ejemplo PC18-3039 Tubo PEAD Conducción Eléctrica - Tubos Perfilados.pdf ) se me habra la hoja PC18-3039 ( coincidencia con los primeros 8 dígitos ) es eso posible ¿¿¿

gracias de antemano.


AdjuntoTamaño
File para_borrar.xlsm5.79 MB
pacomegia
Imagen de pacomegia
Offline
última acción: Hace 20 horas 47 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
viendo tu ejemplo, veo que en

viendo tu ejemplo, veo que en la lista tienes por ejemplo "MBT19-0144 Placas Fotovoltaicas - TrinaSolar.pdf" y la hoja se llama "MBT19-0144-2" con lo que el nombre de la hoja no es exactamente igual a los primeros caracteres, porque puede ser más largo. También tienes nombres de archivos con espacios al principio, así que añado la función Trim para quitar los espacios al principio y al final

por ejemplo para MBT19-0293-1 los 8 primeros caracteres serían MBT19-02, y para este caso cumple la hoja MBT19-0293-1 ¿es así?

En este caso, deberás recorrer todas las hojas comprobando los nombres hasta que encuentres la hoja que te interesa.

Esta comprobación la deberías realizar cada vez que cambie el valor de tu celda C3, para lo que puedes emplear el evento Change de la hoja, y comprobar si la celda que cambia, que tendrás en el argumento Target, coincide con la C3

Por cierto, si sólo quieres 8 caracteres, entonces 

elnombrequemeinteresa = Left(nombredelarchivo, 8)

Resumiendo:

en el código de la hoja, en el evento Change compruebas si la celda que cambia es donde tienes tu desplegable, en este caso la celda C3. en caso de ser la celda que te interesa, puedes llamar a un procedimiento que busque la hoja y la active

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$C$3" Then

        ActivarHojaSegunNombreArchivo Target.Value

    End If

End Sub

Ese procedimiento que busca la hoja recorrerá todas las hojas del libro e irá comparando el nombre con los 8 primeros caracteres del nombre de tu archivo. cuando encuentre una coincidencia, activará esa hoja:

Sub ActivarHojaSegunNombreArchivo(nombredearchivo As String)

'activamos la hoja que se corresponde con el nombre del archivo seleccionado

Dim nombrequemeinteresa

Dim miHoja As Worksheet

    nombrequemeinteresa = Left(Trim(nombredearchivo), 8)

    For Each miHoja In ThisWorkbook.Worksheets

        If Trim(miHoja.Name) Like nombrequemeinteresa & "*" Then

            miHoja.Activate

            Exit Sub

        End If

    Next

End Sub

 

 

------
Ya sé Excel, pero necesito más.

excel1977
Imagen de excel1977
Offline
última acción: Hace 3 años 8 meses
Nivel 1 - 200 puntos
alta: 19/11/2014 - 10:00
Puntos: 450
lista desplegable ( tienenes razón )

Buenas de nuevo,

Pues tienes razón pacomejia, no me había dado cuenta que en los nombres " MBT19-0144 " o sea todos los que empiezan por MBT19 sería la coincidencia de los 10 primeros dígidos y que en los nombres " PC18-3036 " todos los que empiezan por PC serían los primeros 9 dígitos ( Contabilizando siempre tambien el guión - )

He intentado hacer funcionar la hoja con el VB que me has dejado y no consigo que me busque y abra las hojas de la lista desplegable entiendo que algo hago mal y ni idea de lo que puede ser.

excel1977
Imagen de excel1977
Offline
última acción: Hace 3 años 8 meses
Nivel 1 - 200 puntos
alta: 19/11/2014 - 10:00
Puntos: 450
help

Alguien que me pueda ayidr con esto por favor. No consiguo que funcione mi hoja.

 

gracias.-