Excel - importar archivo de texto

 
Vista:

importar archivo de texto

Publicado por pedro garcia (47 intervenciones) el 21/12/2010 02:47:10
Hola a todos ...

Me podrian ayudar con una macro que importa un archivo de texto.
Pero el problema que tengo es que los textos pueden estar en la maquina o en la red

On Error GoTo SOLUCION
Dim a, b As String
a = UserForm3.Label6 & TextBox1.Value
b = UserForm3.Label17

Dim Fs As Object
Set Fs = CreateObject("Scripting.FileSystemObject")
If Fs.folderexists("C:\etiqueta\ARCHIVOS") Then
ChDir "C:\etiqueta\ARCHIVOS"
Else
ChDir "\\" + b + "\etiqueta\ARCHIVOS"
End If
Workbooks.OpenText Filename:=a, Origin:= _
xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:= _
Array(Array(0, 1), Array(13, 1), Array(16, 1), Array(51, 1), Array(60, 1), Array(66, 1), _
Array(108, 1), Array(110, 1))

Range("a1").Select
Unload UserForm3
Application.ScreenUpdating = True
Exit Sub
SOLUCION:
a = MsgBox(Err.Description, vbExclamation + vbOKOnly, "Error")
End Sub

el error que marca al ejecutar, es que no encuentra el archivo, existiendo la conexion en la red.

lo que tengo que hacer es abrir el archivo manualmente buscandolo en la red.

y despues ejecuto la macro y ya funciona.

me podrian ayudar a que ya no tenga que hacer ese paso, y ejecutarla sin problema

espero y me haya esplicado y me puedan ayudar.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:importar archivo de texto

Publicado por Antoni Masana (16 intervenciones) el 21/12/2010 07:32:17
Seguramente el problema esta en que este comando:

ChDir "C:\etiqueta\ARCHIVOS"

funciona para directorios locales y unidades mapeadas, pero esto NO funciona:

ChDir "\\" + b + "\etiqueta\ARCHIVOS"

Si ejecutas el comando desde una ventana de MS-DOS da el siguiente error:

C:\>cd \\\\aaa\\bbb
'\\\\aaa\\bbb
CMD no es compatible con las rutas de acceso UNC como directorio actual.

La mejor solucion:

If Fs.folderexists("C:\etiqueta\ARCHIVOS") Then
Fichero = "C:\\etiqueta\\ARCHIVOS\\" + a
Else
Fichero = "\\\\" + b + "\\etiqueta\\ARCHIVOS\\" + a
End If

Workbooks.OpenText Filename:=Fichero, Origin:= _
xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:= _
Array(Array(0, 1), Array(13, 1), Array(16, 1), Array(51, 1), Array(60, 1), Array(66, 1), _
Array(108, 1), Array(110, 1))

Y puestos a hacerlo mejor que bien

IF DIR(Fichero) = "" then
MsgBox "El fichero solicitado no existe" + vbCrLf + vbCrLf + Fichero
exit sub
else
Workbooks.OpenText Filename:=Fichero, Origin:= _
xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:= _
Array(Array(0, 1), Array(13, 1), Array(16, 1), Array(51, 1), Array(60, 1), Array(66, 1), _
Array(108, 1), Array(110, 1))
end if
. . . etc
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:importar archivo de texto

Publicado por pedro garcia (47 intervenciones) el 25/12/2010 18:42:50
Gracias por la macro te agradesco por la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar