[VBA execl] Añadir un botón de explorar
Resuelto
schont
Mensajes publicados
33
Estado
Miembro
-
Gab -
Gab -
¿Qué código debo usar para agregar un botón "Examinar" en un userform?
Me gustaría añadir un botón de comando que use la función examinar y cuando se seleccione el archivo deseado su ruta se muestre en un cuadro de texto que se encuentra en el mismo userform.
Es para enlazar una referencia a un archivo pdf.
Si alguien tiene alguna idea ...
Gracias
Me gustaría añadir un botón de comando que use la función examinar y cuando se seleccione el archivo deseado su ruta se muestre en un cuadro de texto que se encuentra en el mismo userform.
Es para enlazar una referencia a un archivo pdf.
Si alguien tiene alguna idea ...
Gracias
Configuración: Windows XP Internet Explorer 6.0 Excel 2003
4 respuestas
Hola,
La función .GetOpenFilename no parece ofrecer ese tipo de opción.
Creo que, no obstante, se puede simplificar un poco el código:
Dim nom_fichier As String
nom_fichier = Application.GetOpenFilename
nom_fichier = Mid(nom_fichier, InStrRev(nom_fichier, "\" ) + 1, InStrRev(nom_fichier, ".") - InStrRev(nom_fichier, "\" ) - 1)
Range("a1") = nom_fichier
Cordiales,
La función .GetOpenFilename no parece ofrecer ese tipo de opción.
Creo que, no obstante, se puede simplificar un poco el código:
Dim nom_fichier As String
nom_fichier = Application.GetOpenFilename
nom_fichier = Mid(nom_fichier, InStrRev(nom_fichier, "\" ) + 1, InStrRev(nom_fichier, ".") - InStrRev(nom_fichier, "\" ) - 1)
Range("a1") = nom_fichier
Cordiales,
Acabo de darme cuenta de que cuando haces clic en el botón Examinar y luego, en lugar de hacer clic en "Abrir", haces clic en "Cancelar", aparece un error "error de ejecución '5'" y se ofrece un depurador.
probé con
pero con eso incluso cuando haces clic en "Abrir" la caja de mensaje se abre y muestra el mensaje.
Gracias por ayudarme a resolver este problema
probé con
If FileToOpen = False Then MsgBox "Operation annulée", vbExclamation Exit Sub End If
pero con eso incluso cuando haces clic en "Abrir" la caja de mensaje se abre y muestra el mensaje.
Gracias por ayudarme a resolver este problema
Buenas noches schont,
No entiendo la causa de este error, pero una solución simple y rápida es añadir una línea de manejo del error al inicio del procedimiento;
¡Así queda solucionado!
Atentamente
No entiendo la causa de este error, pero una solución simple y rápida es añadir una línea de manejo del error al inicio del procedimiento;
Private Sub CommandButton1_Click() On Error Resume Next With Application.FileDialog(msoFileDialogOpen) .AllowMultiSelect = False .Show UserForm1.TextBox1.Text = .SelectedItems(1) End With End Sub
¡Así queda solucionado!
Atentamente
Hola, ¿es posible usar el botón examinar pero obtener solo el nombre del archivo sin la ruta completa ni la extensión .xlsx?
Es decir: "monfichier" en lugar de "C:\dossier\monfichier.xlsx"
Porque por ahora solo he podido hacer una maniobra complicada para aislar el nombre:
Dim fichier As String
Dim fichier1 As String
Dim fichier2 As String
Dim fichier3 As String
Dim nom As String
fichier1 = Range("a1").Value
For i = Len(fichier1) - 5 To 1 Step -1
fichier2 = Mid(fichier1, i, 1)
If fichier2 = "\" Then
GoTo nom_fichier
End If
Next i
nom_fichier: fichier3 = Mid(fichier1, i + 1)
fichier = Left(fichier3, Len(fichier3) - 5)
Range("a1") = fichier
Merci
Es decir: "monfichier" en lugar de "C:\dossier\monfichier.xlsx"
Porque por ahora solo he podido hacer una maniobra complicada para aislar el nombre:
Dim fichier As String
Dim fichier1 As String
Dim fichier2 As String
Dim fichier3 As String
Dim nom As String
fichier1 = Range("a1").Value
For i = Len(fichier1) - 5 To 1 Step -1
fichier2 = Mid(fichier1, i, 1)
If fichier2 = "\" Then
GoTo nom_fichier
End If
Next i
nom_fichier: fichier3 = Mid(fichier1, i + 1)
fichier = Left(fichier3, Len(fichier3) - 5)
Range("a1") = fichier
Merci
Private Sub CommandButton3_Click()
FileToOpen = Application _
.GetOpenFilename("Fichiers PDF (*.pdf), *.pdf", 1, "Rechercher...")
If FileToOpen = False Then
MsgBox "Operation annulée", vbExclamation
Exit Sub
End If
' falta algo?!
End Sub
Pequeña pregunta: ahora el camino del archivo se copia en mi TextBox11 y cuando hago clic en un botón "completar" la valor de mi TextBox se vuelve a copiar en una celda, el código es:
Sheets("Feuil1").Cells(Lg, "I").Value = UserForm1.TextBox11.Value
El camino del archivo se muestra bien pero no como enlace, lo cual es práctico para abrirlo con un solo clic.
¿Es una opción que hay que activar en Excel para que convierta una ruta en enlace (creo que Word lo hace solo cuando se escribe una dirección de Internet) o es VBA el que hay que usar?
En cualquier caso, ¡gracias y felicitaciones por la rapidez y la efectividad!
Puedes reemplazar Selection por una dirección de celda fija.
Atentamente