Mostrar los tags: comdlg

Se ha encontrado 1 coincidencia
<<>>
Se ha buscado por el tag: comdlg
Imágen de perfil

Macro Excel cuando no existe comdlg


Excel

estrellaestrellaestrellaestrellaestrella(1)
Actualizado el 28 de Julio del 2016 por Hugo Arturo (4 códigos) (Publicado el 15 de Julio del 2016)
1.914 visualizaciones desde el 15 de Julio del 2016
hola

en otras macros que he realizado necesito el comdlg para obtener la ruta de los archivos, txt, excel, o bases de access y así poder manipular la información

no quería meterme a macros de excel de 2003, 2007 y menos de 2010, pues en lugar de mejorar, "el proveedor" quita lo que no le gusta y pumm, tuve que hace una macro en excel 2010.

no tiene el comdlg, y buceando un poco en excel encontre esta alternativa

buscar el archivo Application.GetOpenFilename, de esta manera abre una versión de comdlg

1
2
3
4
cells(12, 6).Value = Application.GetOpenFilename( _
     "Excel Files(*.xls;*.xlsx;*.xlsm;*.xla;*.xlam),*.xls;*.xlsx;*.xlsm;*.xla;*.xlam", , _
     "Selecccione el archivo Accountentry Blotter a cargar:")
RutaArch1 = Cells(12, 6).Value

en la celda (12,6) pongo la ruta para que el proto usuario valide que es corecta la ruta
y ese valor lo muevo a una variable RutaArch1, ya que con esa ruta abro el excel correspondiente

una delas cosas buenas es que si necesitaba 4 o mas archivos para no hacerce bola se tenia que tener nas de un comdlg, con esta opcion con Application.GetOpenFilename lo manipulas, en mi caso a 8 archivos diferentes

ya con la ruta del archivo ese excel lo abro como una tabla de base de datos y dependiendo de la version de excel se abre diferente proveedor

1
2
3
4
5
6
7
8
9
10
11
12
13
If VBA.Val(Application.Version) < 12 Then
ExcelStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source = '" & RutaArch1 & "''';" & _
"Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";"
ElseIf VBA.Val(Application.Version) < 14 Then
ExcelStr = "Provider=Microsoft.Jet.OLEDB.12.0;" & _
"Data Source = '" & RutaArch1 & "';" & _
"Extended Properties=""Excel 12.0;HDR=No;IMEX=1"";"
Else
ExcelStr = "Provider=Microsoft.ACE.OLEDB.12.0;;" & _
"Data Source = '" & RutaArch1 & "';" & _
"Extended Properties=""Excel 12.0;HDR=YES;\"";"
End If

lo demas es abrir un objeto excel y un recorset