Cuadros de diálogo incorporados de Excel
Pregunta
¿Alguien sabe cómo llamar al diálogo integrado de importar datos
desde una macro (vba)?
He intentado con Application.Dialogs.Item (...). Show
pero no puedo encontrar el diálogo correcto.
Por favor ayuda.
Gracias de antemano.
Solución
Lo más cercano que puedo encontrar usando el sistema de diálogo es:
Application.Dialogs(xlDialogImportTextFile).Show
Puede obtener una referencia al botón de la barra de comandos (al menos para mí en 2k3 y 2k7) a través de:
Set button = Application.CommandBars.FindControl(ID:=6262)
Pero al llamar al método Execute
en el botón falla. Lamentablemente, la respuesta corta parece ser que no es posible.
Puedes agregar objetos QueryTable a mano. Si bien no es una ruta óptima, puede diseñar su propia interfaz simple para seleccionar los datos de origen.
Otros consejos
Si elige el Examinador de objetos y busca, por ejemplo, xlDialogImportTextFile, obtendrá una lista de posibles diálogos.
EDITAR: Quizás algo en estas líneas sería adecuado:
'Allow user to select text file
sf = Application _
.GetOpenFilename("Text Files (*.txt), *.txt")
If sf <> False Then
'Open text file
Workbooks.OpenText sf
End If
No creo que haya un equivalente de VBA, porque en un caso está devolviendo datos a una hoja de cálculo, mientras que en el otro caso, los datos se colocan en un conjunto de registros en la memoria.
Este kludge debería abrir el diálogo por ti, sin embargo:
SendKeys "%ddd"