Actualizar datos

16/03/2006 - 16:51 por luka | Informe spam
Hola a todos
Tengo que actualizar los datos de una hoja que recibo en formato texto y
siempre con el mismo nombre de fichero trabajo.txt

Quería hacer una macro que me permitiese automatizar pero la macro no me
deja ir mas alla de la pantalla de selección del fichero.
Voy a Datos->Actualizar datos y "se fini" después de la pantalla de
seleccion del fichero no graba mas

Cuando voy a ver el código me pone esto
Range("A2").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
¿Que instrucción tendría que poner o que falta o sobra para que no me
pidiese el nombre del fichero y lo cogiese directamente?

Gracias
Javier B.
 

Leer las respuestas

#1 Adolfo
21/03/2006 - 09:12 | Informe spam
Hola Luka,
Si das a grabar macro y despues siguies los siguientes pasos Datos - Obtener
Datos Externos - Importar Archivo de texto. El código que te genera
(dependiendo de las opciones que pulses) es el siguiente:

Sub Macro1()
'
' Macro1 Macro
' Macro grabada el 21/03/2006 por Adolfo
'

'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Documents and Settings\Administrador\Mis
documentos\Activescan.txt", _
Destination:=Range("A1"))
.Name = "Activescan"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlFixedWidth
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1)
.TextFileFixedColumnWidths = Array(80, 3, 19, 20, 4)
.Refresh BackgroundQuery:=False
End With
End Sub

A partir de aqui puedes ir enredando hasta que consigas lo que quieres, el
problema principal es que la ruta del archivo es estatica y te podría dar
errores si no la modificas en otro ordenador, pero bueno eso tambien tiene
solucion. Pruebalo y me cuentas.

Un saludo,
Adolfo
"luka" <luka79arrobatelefonica.net> escribió en el mensaje
news:%23Mc$
Hola Adolfo.

Gracias por el consejo. Como se poco VB lo que hago normalmente cuando
necesito algo es

1º mirar por aquí (solución casi asegurada)
2º grabar un macro y ver algunas instrucciones
3º tirar el ordenador por la ventana.
4º ver si le ha dado a alguien.

Lo que me comentas
A
> Para hacer lo que tu quieres lo mejor es que pruebes a grabar los pasos


de
> importación con el grabador de macros, el código que te genera es
> perfectamente valido (yo lo he probado y funciona) con el tiempo ya iras
> mejorandolo. No te pongo el código porque el que yo tengo es válido para


un
> archivo con unas condiciones, pero si lo generas veras que la macro te
> define una ruta de acceso al archivo y ya no te pide que lo definas.

es lo que hice en este caso pero si te fijas en el primer correo, el
macro deja de grabar cuando se abre la ventana para pedir el nombre del
fichero
>>>> Cuando voy a ver el código me pone esto
>>>> > >>>> Range("A2").Select
>>>> Selection.QueryTable.Refresh BackgroundQuery:=False
>>>> >
Estoy dandole vueltas al asunto a ver si en vez de actualizar el fichero
puedo importar siempre el fichero y darle así los datos de importación.


Gracias nuevamente
Javier B.

Preguntas similares