Buscar libro con solo parte del nombre

04/03/2006 - 03:18 por klomkbock | Informe spam
Hola a todos

Quisiera saber como puedo buscar un libro mediante codigo, dando solo las
dos o tres primeras letras del nombre del libro y (si es util) las tres
ultimas(Ej. "AC ... inv") asi como seleccionar entre los que
aparezcan el ultimo creado, para copiarlo en un nuevo libro. Se trata de
actualizar el ultimo inventario(sufijo "inv" en todos) de un proveedor
concreto("AC" en el ej.) sin modificarlo, o sea creando uno nuevo, desde
un formulario. En la ayuda de VBA no acabo de aclararme.

Gracias en cualquier caso.
Un saludo y hasta pronto.
Ivan
 

Leer las respuestas

#1 klomkbock
05/03/2006 - 03:59 | Informe spam
Hola Hector Miguel, gracias de nuevo.
Es lo que estaba buscando. Lo he adaptado para usarlo con un formulario y
funciona perfectamente excepto si solo introduzco una letra, que me suele
buscar un archivo equivocado (¿Puede ser porque halla archivos que
comienzen por la misma letra?) que en ocasiones ni siquiera comienza con
la letra introducida en el textBox. Sin embargo si introduzco un espacio
detras de la letra si parece hacer bien su trabajo. ¿Podrias decirme a que
se debe?.

Por otro lado me interesaria que me pidiera permiso antes de guardar el
archivo, pero a ser posible poder trabajar con el (la idea es llamarlo en
la primera pagina de un control multipagina para aplicarle determinado
tratamiento en las paginas restantes, y guardarlo solo al apretar el
cmbAceptar general del formulario. Supongo que se podra hacer con un
condicional y un msgBox o similar.

Y ¿como puedo guardarlo en otro lado? ¿añadiendo la ruta en el nuevo
nombre?

Creo que ya he vuelto a pasarme con mis dudas.
En cualquier caso muchas gracias.
Un saludo y hasta pronto
Ivan

PD: adjunto el codigo tal y como ha quedado (el formulario en el que esta
no es el de el multipagina, esta hecho exprofeso para probar el codigo).


Private Sub cmbBuscar_Click()
' Sub Buscar_Reciente()
Dim Directorio As String, Patron As String, Sig As Byte, Reciente As Byte
Directorio = _
"C:\Documents and Settings\Ivan\Mis documentos\Pruebas Formulario
Inventario" _
' "c:uta y sub\carpetas\donde buscar"
Patron = txtCprBuscar & "*inv.xls" '"ac*inv.xls"
With Application.FileSearch
.NewSearch
.LookIn = Directorio
.SearchSubFolders = False
.Filename = Patron
If Not .Execute() > 0 Then MsgBox _
"No existen archivos " & Patron & " en:" _
& vbCr & Directorio: Exit Sub
Reciente = 1
For Sig = 1 To .FoundFiles.Count
If CDbl(FileDateTime(.FoundFiles(Sig))) > _
CDbl(FileDateTime(.FoundFiles(Reciente))) _
Then Reciente = Sig
Next
lblUltimoInv = .FoundFiles(Reciente)
Workbooks.Open .FoundFiles(Reciente)
End With
' ActiveWorkbook.SaveAs "pon aqui el nuevo nombre", xlWorkbookNormal
ActiveWorkbook.SaveAs txtCprBuscar & " " & _
txtFechaNuevoInv & "-inv.xls", xlWorkbookNormal
' End Sub
lblNuevoNombre = ActiveWorkbook.Name
End Sub

Preguntas similares