Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Visual Basic clásico (http://www.forosdelweb.com/f69/)
-   -   imprimir fichero de un listbox (http://www.forosdelweb.com/f69/imprimir-fichero-listbox-557104/)

guif 15/02/2008 02:37

imprimir fichero de un listbox
 
En un listBox con Visual Basic, muestro una ruta + fichero al estilo de:

C:\fichero1.xls
C:\fichero2.xls
C:\fichero3.xls

Haciendo un click en un elemento del listbox (list1.listindex) podria sacar dicho fichero por la impresora?

gracias!

Avellaneda 15/02/2008 03:12

Re: imprimir fichero de un listbox
 
Sí lo puedes hacer, pero debes indicar la hoja que quieres imprimir


Código:

Dim miXLS As String
    Dim oExcel As Object, oWorkbook As Object

  miXLS = List1.Text
    Set oExcel = CreateObject("Excel.Application")
    Set oWorkbook = oExcel.Workbooks.Open(miXLS)
    oExcel.Sheets("Hoja1").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
    oExcel.Quit
    Set oWorkbook = Nothing
    Set oExcel = Nothing


guif 15/02/2008 03:54

Re: imprimir fichero de un listbox
 
mediante un botón, muestro los ficheros que hay en una carpeta:

Código:

Private Sub Command1_Click()
path = "C:\Documents and Settings\Administrador\Escritorio\01 enero\"
ffname = Dir(path, vbArchive)
Dir (path)
While ffname <> ""
If (GetAttr(path & ffname) And vbArchive) = vbArchive Then
Debug.Print path & ffname
List1.AddItem (path & ffname)
totfolders = totfolders + 1
End If
ffname = Dir()
Wend

entonces, si aplico el codigo que me has pasado me encuentro con una duda:

Donde pongo
Código:

oExcel.Sheets("????").Select
Puedo poner donde los ???? el ffname que utilizon en el boton??? (las hojas de excel se llaman como el nombre del fichero.

guif 15/02/2008 04:25

Re: imprimir fichero de un listbox
 
perfecto!
lo he conseguido poniendo:

Código:

oExcel.ActiveSheet.Select
Me ocurre tambien que al abrir el EXCEL y cerrarlo me pide Guardar el documento... esto se puede evitar?

Edito la solucion!

Código:

oExcel.ActiveWorkbook.Save
gracias por tu ayuda!

Avellaneda 15/02/2008 05:36

Re: imprimir fichero de un listbox
 
Veo que estás trabajando con Excel como referencia y el ejemplo que yo puse era creando el Objeto.

Con este código no sale el mensaje de guardar los cambio, unicamente el mensaje de Imprimiendo.

Código:

Dim oExcel As Excel.Application
Set oExcel = New Excel.Application
With oExcel
    .Workbooks.Open List1.Text
    .Sheets("NombreHoja").Activate
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
End With
Set oExcel = Nothing


guif 15/02/2008 07:26

Re: imprimir fichero de un listbox
 
si. tienes razon, pero me ha ayudado mucho.
He activado la referencia de scripting, pero al final he agregado el componente de Microsoft Excel y he terminado poniendo:

excel.Workbooks.Open List1.List(List1.ListIndex)
excel.ActiveWindow.SelectedSheets.PrintOut Copies:=1
excel.ActiveWorkbook.Save
excel.Workbooks.Close


Gracias igualmente.

guif 15/02/2008 09:43

Re: imprimir fichero de un listbox
 
me ha surgido otra duda.
He puesto un DriveList, DirList y un FileList.
Entonces, teniendo mi codigo, puedo pasar la ruta completa (ej: C:\carpeta01\fichero01.xls) hacia el List1????

Actualmente, en el Filelist veo el fichero. Solo faltaria insertar la ruta completa en el List1.

gracias!

Avellaneda 15/02/2008 12:30

Re: imprimir fichero de un listbox
 
La propiedad Path del DirList dá la ruta seleccionada:

Dir1.Path retornará (en tu caso) "c:\carpeta01"

La propiedad FileName del FileList dá el nombre del archivo seleccionado

File1.FileName retornará "fichero01.xls"

por lo tanto, concatenando ambos consigues la ruta completa y el archivo seleccionado:

RutaCompleta = Dir1.Path & "\" & File1.FileName
Resultado: "c:\carpeta01\fichero01.xls"

guif 19/02/2008 09:34

Re: imprimir fichero de un listbox
 
si pongo esto en el LOAD:

List1.AddItem (DirList.Path & "\" & FileList.FileName)

no me devuelve la cadena completa. No me muestra el fichero.

Avellaneda 19/02/2008 10:07

Re: imprimir fichero de un listbox
 
Normal, en el evento Load no tienes seleccionado ningún archivo (a no ser que, previamente hayas seleccionado un índice con la propiedad ListIndex), lo tienes que poner en un CommandButton (después de seleccionar el archivo) o en el evento Click del FileListBox


La zona horaria es GMT -6. Ahora son las 10:05.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.