Visual Basic - Actualizacion excel vinculado via VBA

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Actualizacion excel vinculado via VBA

Publicado por Felipe (3 intervenciones) el 28/01/2014 21:04:22
Hola estoy desarrollando una macro muy sencilla y me da problemas
El objetivo es Pulsar Ctrl+a y que actualice datos vinculados y se guarde en .txt en una ruta.


El código es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
Sub Actualizar()
'
' Actualizar Macro
'
' Acceso directo: CTRL+a
'
    ActiveWorkbook.RefreshAll
    ChDir "C:\carpeta\carpeta"
    ActiveWorkbook.SaveAs Filename:="C:\.carpeta\Archivo.txt",
FileFormat:= _ xlText, CreateBackup:=False
End Sub

Bien,lo que hace esta macro al pulsar Ctrl+a es abrirme un cuadro de dialogo que pone:

"Esta acción cancelará un comando pendiente de actualización de datos"

Si le pulso en aceptar no actuliza y me guarda el archivo en .txt, si le doy a cancelar me actualiza el archivo y no me guarda el archivo.

Alguien me puede aydar e indicarmeque he hecho mal??

Y por otra parte como puedo guardar el archivo txt con codificación UTF-8?? seria:

1
2
3
4
5
6
7
8
9
10
11
Sub Actualizar()
'
' Actualizar Macro
'
' Acceso directo: CTRL+a
'
    ActiveWorkbook.RefreshAll
    ChDir "C:\carpeta\carpeta"
    ActiveWorkbook.SaveAs Filename:="C:\.carpeta\Archivo.txt",
FileFormat:= _xlText, CreateBackup:=False, Encoding=UTF-8
End Sub


Gracias y un saludo
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
sin imagen de perfil

Actualizacion excel vinculado via VBA

Publicado por Felipe (3 intervenciones) el 30/01/2014 15:57:24
Solucionado!!!!
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
Imágen de perfil de xve
Val: 107
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Actualizacion excel vinculado via VBA

Publicado por xve (208 intervenciones) el 30/01/2014 16:52:39
Hola Felipe, nos puedes comentar como lo has solucionado?
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
sin imagen de perfil

Actualizacion excel vinculado via VBA

Publicado por Felipe (3 intervenciones) el 30/01/2014 17:06:08
He solucionado la primera parte

de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Actualizar()
'
' Actualizar Macro
'
' Acceso directo: CTRL+a
'
    Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
 
    ChDir "C:\carpeta\archivo"
 
    ActiveWorkbook.SaveAs Filename:="C:\carpeta\archivo", _
        FileFormat:=xlText, CreateBackup:=False
 
 
End Sub


Respecto a la codificacion he encontrado esto por la red:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim fsT, tFileToOpen, tFileToSave As String
 
    tFileToOpen = InputBox("Enter the name and location of the file to convert" & vbCrLf & "With full path and filename ie. C:\MyFolder\ConvertMe.Txt")
    tFileToSave = InputBox("Enter the name and location of the file to save" & vbCrLf & "With full path and filename ie. C:\MyFolder\SavedAsUTF8.Txt")
 
    tFileToOpenPath = tFileToOpen
    tFileToSavePath = tFileToSave
 
Set fsT = CreateObject("ADODB.Stream"): 'Create Stream object
fsT.Type = 2: 'Specify stream type – we want To save text/string data.
fsT.Charset = "utf-8": 'Specify charset For the source text data.
 
fsT.Open: 'Open the stream
fsT.LoadFromFile tFileToOpenPath: 'And write the file to the object stream
 
fsT.SaveToFile tFileToSavePath, 2: 'Save the data to the named path

De momneto es lo mejorcito que he encontrado, es un coñazo porque al darle Ctrl + a aparece dos ventanas dodne tienes que elegir el directorio del archivo.

Si alguien me puede ayudar a que no aparezcan las ventanas "popUp" y se guarde directamente nos hará un favor muy grande.
Un saludo y gracias
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
Imágen de perfil de xve
Val: 107
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Actualizacion excel vinculado via VBA

Publicado por xve (208 intervenciones) el 30/01/2014 18:22:28
Muchas gracias por compartirlo Felipe!!!
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
sin imagen de perfil
Val: 2
Ha aumentado su posición en 58 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Actualizacion excel vinculado via VBA

Publicado por cristian (1 intervención) el 11/03/2020 18:26:24
Buenos dias:

Yo también tuve el problema antes mencionado "Esta acción cancelará un comando pendiente de actualización de datos".
Como resumen tenia una consulta sql que se actualizaba con la linea de codigo:

ActiveWorkbook.Connections("Consulta - Consulta1 (2)").Refresh

y despues de actualizarse la conexion y tabla dinamica, se corria una macro que me guardaba mi archivo de excel en una ubicacion especifica, y en ese momento era cuando me lanzaba el error: "Esta acción cancelará un comando pendiente de actualización de datos".

Solucion:

Quitar el Check de "Habilitar actualizacion en segundo plano" ( Menu "Datos" > "Propiedades" > Pestaña "uso"
Captura
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Actualizacion excel vinculado via VBA

Publicado por Ramon Gtz (1 intervención) el 21/02/2024 23:37:45
Excelente muchas gracias, efectivamente deshabilité la opción de permitir ejecutar en 2do plano y eso garantiza que termine o concluya la consulta previa, antes de pretender continuar ejecutando procesos posteriores automáticos.
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