Macro abrir archivos .xls y .doc

Muy buenas expertos, otra vez con dudas,..., les comento.
Tengo un combobox en un formulario, donde he cargado archivos (libros) word y excel, con la extensión, de esta forma puedo tener ArchivoA.xls o bien ArchivoB.doc...
En un commandbutton tengo el siguiente código para abrir archivos .xls:
Private Sub CommandButton2_Click()
On Error GoTo NoTrobat
If ComboBox1.Value = "RE-VS01.01_Llistat control registres.xls" Then
Exit Sub
Else
ruta = "E:\ISO14001\REGISTRES\"
Workbooks.Open Filename:=ruta & ComboBox1.Value
UserForm1.Hide
Windows(ComboBox1.Value).Activate
Exit Sub
End If
NoTrobat:
  MsgBox "Arxiu no trobat!" & vbCrLf & _
  "Comprovar nom i si existeix a l´ubicació original" & vbCrLf, _
  vbExclamation
 UserForm1.Show
End Sub
Hasta aquí bién, consigo abrir los archivos excel.
El problema, en este caso la duda, es conseguir que abra también archivos word (.doc).
Encontré el siguiente código en el site de todoexpertos para abrir archivos word (.doc), ¿y no consigo que "reconozca"? El archivo con la extensión .doc,...
Dim oWord As Word.Application
 Set oWord = CreateObject("Word.Application")
  oWord.Documents.Open Filename:="E:\ISO14001\REGISTRES\" & ComboBox1.Value
   oWord.Visible = True
  UserForm1.Hide
Los códigos anteriores he comprobado que funcionan cuando actúan "independientemente", es decir, si en el combobox, por ejemplo, tengo cargados solamente archivos excel, funciona!, pero cuando en el combobox hay archivos word y excel, es cuando no consigo que funcione!, utilizando los códigos anteriores, tanto para abrir archivos excel y archivos word.
No sé si habrá otra posibilidad, en cuanto a código VBA, de aquí viene el motivo de la consulta, ¿o bien adaptar los códigos anteriores..?
Esperando haber sido lo más explícito posible..
Una vez más, gracias por la ayuda y tiempo!
Saludos.

1 respuesta

Respuesta
1
Te dejo un código a ver si te sirve, de hecho te puedo enviar el archivo de ejemplo con la macro
Private Sub CmdAbrir_Click()
On Error GoTo NoTrobat
    If UCase(CboArchivos.Value) = UCase("RE-VS01.01_Llistat control registres.xls") Then
        Exit Sub
    Else
        ruta = ActiveWorkbook.Path & "\"
        If Right(UCase(CboArchivos.Value), 3) = "XLS" Then
            Workbooks.Open Filename:=ruta & CboArchivos.Value
            Archivos.Hide
            Windows(CboArchivos.Value).Activate
        ElseIf Right(UCase(CboArchivos.Value), 3) = "DOC" Then
            Dim oWord As Word.Application
            Set oWord = CreateObject("Word.Application")
            oWord.Documents.Open Filename:=ruta & CboArchivos.Value
            oWord.Visible = True
            Set oWord = Nothing
            Archivos.Hide
        End If
    End If
    Exit Sub
NoTrobat:
  MsgBox "Arxiu no trobat!" & vbCrLf & _
  "Comprovar nom i si existeix a l´ubicació original" & vbCrLf, _
  vbExclamation
 Archivos.Show
End Sub
Private Sub UserForm_Activate()
    On Error GoTo Err_UserForm_Activate
    Dim I As Integer
    Dim Celda As String
    For I = 1 To 10
        Celda = "A" & I
        CboArchivos.AddItem Range(Celda).Value
    Next
Exit_UserForm_Activate:
    Exit Sub
Err_UserForm_Activate:
    MsgBox "Excepción encontrada " & Err.Description & " Originada por: " & Err.Source, vbInformation, Application.Name
    Resume Exit_UserForm_Activate
End Sub
Muchas gracias josaul75,..., después de algún intento fallido y de alguna adaptación, el código funciona perfecto...
De nuevo gracias y saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas