Abrir file csv con Macro Excel

30/11/2006 - 16:35 por TST | Informe spam
Buenas,
tengo un problema al abrir un file csv con excel.

He hecho una macro que me abre el file, pero en vez de reconocer los
separadores ";" y abrir bien el file (en columnas) me lo escribe todo
en filas, por lo q luego no puedo ejecutar otra macro q elabora el
file.

- codigo VB
-
varOpenFile = Application.GetOpenFilename()
If varOpenFile <> False Then

Workbooks.Open Filename:=varOpenFile


Si abro el file directamente del explorador con doble click, el file se
abre correctamente.

Alguno me puede dar alguna idea????

Gracias!!!!
 

Leer las respuestas

#1 Héctor Miguel
30/11/2006 - 22:41 | Informe spam
hola, 'anonimo/a' !

tengo un problema al abrir un file csv con excel.
He hecho una macro que me abre el file, pero en vez de reconocer los separadores ";" y abrir bien el file (en columnas)
me lo escribe todo en filas, por lo q luego no puedo ejecutar otra macro q elabora el file.
varOpenFile = Application.GetOpenFilename()
If varOpenFile <> False Then
Workbooks.Open Filename:=varOpenFile
Si abro el file directamente del explorador con doble click, el file se abre correctamente.
Alguno me puede dar alguna idea?



1) el primer 'detalle' esta en que la extension '*.CSV' significa 'comma separated values' [valores separados por COMAS]
2) el segundo 'detalle' es que al abrir por codigo archivos de este tipo, debes 'vigilar' que VBA es US-Centric [me explico]
espera que los *.csv sean efectivamente separados por comas... solo acepta punto para separar decimales... etc. etc. etc.
3) si en tu configuracion regional, el sistema usa como separador de listas y argumentos el punto_y_coma...

a) si tu excel es version xp/2002 o superior... prueba con una instruccion +/- como la siguiente:
Workbooks.Open Filename:=varOpenFile, Local:=True

b) si tu excel es version 97/2000... sera necesario que modifiques el registro de windows [p.e.]
1) localizar la llave segun version de excel:
-> Excel 97: HKCU\Software\Microsoft\Office\8.0\Excel\Microsoft Excel
-> Excel 2000: HKCU\Software\Microsoft\Office\9.0\Excel\Options
2) agregar un valor de tipo DWORD con el nombre de: -> VBAAlwaysLoadUS
3) establecer su valor en: 0 [cero]

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Preguntas similares