[RESUELTO]Abrir distintas extens de archi con una sola Macro

Discute sobre las herramientas de la base de datos
Responder
antonsiete
Mensajes: 87
Registrado: Dom Jun 24, 2018 8:48 pm

[RESUELTO]Abrir distintas extens de archi con una sola Macro

Mensaje por antonsiete »

Hola,

posiblemente sea una pregunta tonta, pero el que no arriesga no gana:

Cuando empece con la idea de crear la Bd que ando haciendo anduve ojeando todos lo hilos para ver si de las respuestas que dais alguna me iba aclarando cosas y a la vez me iba dando ideas, en una de esas encontre este codigo:

Código: Seleccionar todo

'Inicio Macro para Abrir documentos PDF, que estan en una carpeta situada en el mismo directorio que la BD, 
'seleccionandolos de un listado que coje los datos de una TABLA
Sub BotonAbrirPdf(Evento)

   Dim oForm As Object
   Dim sDirectorioActual As String
   Dim sDirectorioArchivos As String
   Dim mTmp()
   Dim sRuta As String
   Dim txtArchivo As Object
   Dim sAbrir
   
   oForm = Evento.Source.Model.Parent
   sDirectorioArchivos = "PDFs" 'Carpeta donde estan los Archivos
   sDirectorioActual = ThisDatabaseDocument.getURL 'Carpeta donde esta la BD
   mTmp = Split( sDirectorioActual, "/" )
   mTmp(UBound(mTmp)) = ""
   sDirectorioActual = Join( mTmp, "/" )
   sDirectorioActual = sDirectorioActual & sDirectorioArchivos & "/"
   txtArchivo = oForm.getByName("CampoCombinadoPDF") 'El control donde esta el archivo
   sRuta = sDirectorioActual & txtArchivo.Text & ".pdf" 'Contruimos la ruta completa del archivo
  
   If FileExists(sRuta) Then 'Busca el archivo correspondiente
     
      sAbrir = CreateUnoService("com.sun.star.system.SystemShellExecute") 'abre el archivo si lo encuentra
      sAbrir.execute( sRuta, "", 0)
  
      Else
     
      MsgBox "no existe"
  
   End If
   
End Sub
'Fin Macro
En mis primeros intentos lo he tenido puesto en un Formulario y funciona bien.
Incluso le cambie

Código: Seleccionar todo

DirectorioArchivos = "PDFs" 'Carpeta donde estan los Archivos
por

Código: Seleccionar todo

DirectorioArchivos = "Listados" 'Carpeta donde estan los Archivos

y

Código: Seleccionar todo

 sRuta = sDirectorioActual & txtArchivo.Text & ".pdf" 'Contruimos la ruta completa del archivo
por

Código: Seleccionar todo

 sRuta = sDirectorioActual & txtArchivo.Text & ".ods" 'Contruimos la ruta completa del archivo
y lo use para abrir docomentos de Calc.

Ahora bien , la pregunta es:

Se puede poner en la linea

Código: Seleccionar todo

sRuta = sDirectorioActual & txtArchivo.Text & ".pdf" 'Contruimos la ruta completa del archivo
algo del estilo a

Código: Seleccionar todo

sRuta = sDirectorioActual & txtArchivo.Text & ".pdf" OR ".ods" OR ".odt" 'Contruimos la ruta completa del archivo
de forma que con una sola Macro se puedan abrir distintos tipos de archivo que esten en una misma carpeta?

No es para usarlo, pero me ha picado la curiosidad.

un saludo y gracias
Última edición por antonsiete el Jue Jul 05, 2018 7:42 pm, editado 1 vez en total.
Apache OpenOffice 4.1.5
OS X El Capitan 10.11.6
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Abrir distintas extensiones de archivo con una sola Macr

Mensaje por Longi »

Buenas!

Posiblemente, y digo posiblemente porque no lo he probado sería suficiente con lo siguiente:

Código: Seleccionar todo

sRuta = sDirectorioActual & txtArchivo.Text & ".*"
Si no me equivoco (cosa altamente probable), te serviría para abrir documentos de cualquier extensión.

Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Abrir distintas extensiones de archivo con una sola Macr

Mensaje por RMG »

Hola,

Otra posibilidad es que en el campo o sea el control txtArchivo, ademas del nombre del archivo ya definieses el punto y tipo de extensión.

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
antonsiete
Mensajes: 87
Registrado: Dom Jun 24, 2018 8:48 pm

Re: Abrir distintas extensiones de archivo con una sola Macr

Mensaje por antonsiete »

Gracias a los dos,

hare alguna prueba y os cuento

un saludo
Apache OpenOffice 4.1.5
OS X El Capitan 10.11.6
antonsiete
Mensajes: 87
Registrado: Dom Jun 24, 2018 8:48 pm

Re: Abrir distintas extensiones de archivo con una sola Macr

Mensaje por antonsiete »

Hola,

aqui os pongo lo que he hecho, a mi no me funciona ninguna de las dos formas, aunque es posible que haya metido alguna gamba,

el el metodo de Longi creo que no habia mucho lugar a errores pero nunca se sabe.

Código: Seleccionar todo

Sub BotonAbrirVariasExtensiones1(Evento)'Usando ".*" en la definicion de la ruta

   Dim oForm As Object
   Dim sDirectorioActual As String
   Dim sDirectorioArchivos As String
   Dim mTmp()
   Dim sRuta As String
   Dim txtArchivo As Object
   Dim sAbrir
   
   oForm = Evento.Source.Model.Parent
   sDirectorioArchivos = "VariasExtensiones" 'Carpeta donde estan la fichas
   sDirectorioActual = ThisDatabaseDocument.getURL 'Carpeta donde esta la BD
   mTmp = Split( sDirectorioActual, "/" )
   mTmp(UBound(mTmp)) = ""
   sDirectorioActual = Join( mTmp, "/" )
   sDirectorioActual = sDirectorioActual & sDirectorioArchivos & "/"
   txtArchivo = oForm.getByName("CampoCombinadoVariasExtensiones1") 'El control donde esta el archivo
   sRuta = sDirectorioActual & txtArchivo.Text & ".*" 'Contruimos la ruta completa del archivo
  
   If FileExists(sRuta) Then 'Busca el archivo correspondiente
     
      sAbrir = CreateUnoService("com.sun.star.system.SystemShellExecute") 'abre el archivo si lo encuentra
      sAbrir.execute( sRuta, "", 0)
  
      Else
     
      MsgBox "no existe"
  
   End If
   
End Sub
el el caso del metodo de RMG, he intentado un par de formas pero no pasa la macro de la linea del control txtArchivo, (puede ser por mi forma de poner codigo ahi)

Código: Seleccionar todo

 txtArchivo = oForm.getByName("CampoCombinadoVariasExtensiones2" & ".pdf" OR ".ods") 'El control donde esta el archivo
aun asi me ha surgido la duda de como deberia quedar la linea de definicion de la ruta donde antes ponia ".pdf" o ".ods"

Código: Seleccionar todo

sRuta = sDirectorioActual & txtArchivo.Text & ".*" 'Contruimos la ruta completa del archivo
os adjunto como lo he hecho ya que posiblemente tenga alguna cagada

https://mega.nz/#F!yYYkhYBQ!vj5rkhF9xsm27mDbCzjPvA


un saludo y gracias
Apache OpenOffice 4.1.5
OS X El Capitan 10.11.6
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Abrir distintas extensiones de archivo con una sola Macr

Mensaje por RMG »

Hola,

La macro te debe quedar así, si usas mi propuesta. En la tabla en el campo debes poner el punto y la extensión como te he dicho. Ejemplo : Ficha en blanco2.pdf

Código: Seleccionar todo

Sub BotonAbrirVariasExtensiones2(Evento)'Usando ".*" en la dfinicion de la ruta

   Dim oForm As Object
   Dim sDirectorioActual As String
   Dim sDirectorioArchivos As String
   Dim mTmp()
   Dim sRuta As String
   Dim txtArchivo As Object
   Dim sAbrir
   
   oForm = Evento.Source.Model.Parent
   sDirectorioArchivos = "VariasExtensiones" 'Carpeta donde estan la fichas
   sDirectorioActual = ThisDatabaseDocument.getURL 'Carpeta donde esta la BD
   mTmp = Split( sDirectorioActual, "/" )
   mTmp(UBound(mTmp)) = ""
   sDirectorioActual = Join( mTmp, "/" )
   sDirectorioActual = sDirectorioActual & sDirectorioArchivos & "/"
   txtArchivo = oForm.getByName("CampoCombinadoVariasExtensiones2") 'El control donde esta el archivo
   sRuta = sDirectorioActual & txtArchivo.Text 'Contruimos la ruta completa del archivo
   If FileExists(sRuta) Then 'Busca el archivo correspondiente
     
      sAbrir = CreateUnoService("com.sun.star.system.SystemShellExecute") 'abre el archivo si lo encuentra
      sAbrir.execute( sRuta, "", 0)
  
      Else
     
      MsgBox "no existe"
  
   End If
   
End Sub
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
antonsiete
Mensajes: 87
Registrado: Dom Jun 24, 2018 8:48 pm

Re: Abrir distintas extensiones de archivo con una sola Macr

Mensaje por antonsiete »

vale,

la verdad es que al ir probar tu metodo desde el principio he estado dudando de si solo habia que modificar en la macro, ahora creo que ya me lo has aclarado,

la macro queda algo modificada en la linea que define la ruta y las extensiones las "absorbe" de la propia tabla en la que esta la lista de los archivos.

no es con idea de usarlo, ya que creo que ire por las opciones que vi en la ultima ayuda que me mandeste de forma que no habria que andar creando una tabla indice donde poner los archivos en cuestion sino que se abririan directamente desde botones y a imprimir.

ha sido solo por la curiosidad de ir entendiendo un poco las macros

de nuevo muchisimas gracias

un saludo
Apache OpenOffice 4.1.5
OS X El Capitan 10.11.6
Responder