Buscar en Ayuda Excel:

VBA

INTEGRACION DE MS EXCEL CON OTROS PROGRAMAS.

INTEGRACION DE MS EXCEL CON OTROS PROGRAMAS.
V1.

Una de las razones por las cuales empecé a programar en VBA fue porque quería simplificar algunos cálculos de geotecnia (circulo de falla de taludes por método de Bishop). Hasta ese momento la programación en CPP era lo mejor y en realidad de haberme topado con algunos artículos más profundos de la interoperatividad de MS Office y Autocad seguramente me hubiera matado la cabeza haciendo esas rutinas en C++.

Hasta este punto me estoy acercando a un tema que espero tratar en un próximo articulo que es el control de Excel y otros programas desde un programa nuestro, por ejemplo si yo quisiera que un programa me generara informes en MS Excel, MS Word o EN OOo; pero eso es otra historia.

Bueno en realidad lo primero que debo mencionar es que por lo general este tipo de rutina se emplea en tareas muy simples y casi de exportación (adecuada) de datos, aunque en algunos casos y a falta de una herramienta mejor (Visual Studio) permite hacer maravillosas aplicaciones.

El término más importante en este tema es API. ¿Qué es una API? Application Programming Interface de sus siglas en inglés que no es otra cosa que una serie de objetos contenidos en liberarías (dll) que nos permiten entrar en los programas que queremos manejar, son por decirlo así: la puerta de entrada.

Entonces para poder usar un programa desde VBA es necesario que su desarrollador haya creado una API. (Bueno hay formas de buscar la entrada pero no es fácil y seguramente nos causará problemas de soporte)

Es necesario tener el programa instalado en nuestro PC dado que el compilador debe poder acceder a los Puntos de Entrada dejados por la API y de no encontrarlos nos producirá algún tipo de error.

Bueno y ahora pondré un ejemplo muy sencillo de cómo crear programas que usan otros programas desde VBA de MS Excel.

Ejemplo1:

VBA de Excel llama a MS Word.
1) En el dialogo de referencias busque MSWord y selecciónelo.

Y adicionar este codigo:

Sub LlamaWord()

Dim MyWordApp As Word.Application
Dim MyWordDoc As Word.Document
Set MyWordApp = New Word.Application
MyWordApp.Visible = True

Set MyWordDoc = MyWordApp.Documents.Add

With MyWordDoc
.Activate
.Select
.Application.Selection.TypeText “Este es un texto”
End With

End Sub

Ejemplo 2:

Llamar al Programa Autocad y adicionar una línea:

1) Agregar la referencia a Autocad:

2) Y escribir el siguiente código:

Sub LlamaACad()

Dim MyAcadApp As AcadApplication
Dim MyAcadDoc As AcadDocument
Dim p1 As ACAD_POINT, p2 As ACAD_POINT

Set MyAcadApp = New AcadApplication
MyAcadApp.Visible = True
Set MyAcadDoc = MyAcadApp.Documents.Add

With MyAcadDoc
.Activate
p1 = .Utility.GetPoint(, “P1”)
p2 = .Utility.GetPoint(, “p2”)

.ModelSpace.AddLine p1, p2

End With

End Sub

De la misma manera es posible integrarse con grana cantidad de programas como SAP2000 (V11+), OpenOffice, Adobe Acrobat, Todos los programas de MS Office, además de muchos otros, inclusive el Sistema Operativo de nuestro equipo (Windows) permite trabajar con APIS aunque de una manera un poco más compleja.

Obviamente les adjunto un archivo con el código para que le den un vistazo.

EFASOR-07/2008

Función para establecer rankings

Gracias a esta función definida por el usuario podemos establecer rankings para averiguar qué posición ocupa el valor introducido en una celda dentro de un conjunto de valores. Es decir, si tenemos los números 4, 6 y 1, la siguiente función nos devolverá 2,1 y 3 respectivamente.

A esta función hay que pasarle 2 argumentos obligatorios: El rango donde se encuentra el conjunto de valores y el valor del que deseamos averiguar su ranking.


Convertir una moneda en otra con Excel

Convierte de forma sencilla el valor de una moneda a otra simplemente pulsando un botón.

Tenemos una hoja de cálculo en la que en la celda F1 tenemos el valor de 1 euro en dólares. En cualquier podemos introducir cualquier valor numérico (que expresan dólares o cualquier otra moneda). Al ejecutar la macro, el rango seleccionado convertirá los valores que contenga cada celda a la moneda expresada.

Utilizamos For Each… Next para hacer que la macro pase por todas las celdas seleccionadas. Si el valor que encuentra en las celdas es numérico, procederá a multiplicar el valor de dicha celda por la celda F1 y ajustará el resultado a dos decimales.


Determinar el tipo de datos de una celda

Excel proporciona muchas funciones integradas que pueden ayudar a determinar el tipo de datos que contiene una celda. Entre ellos se encuentran ESTEXTO, ESLOGICO y ESERROR. Además, VBA incorpora funciones como IsEmpty, IsDate e IsNumeric.

La siguiente función (TipoDeCelda), acepta un argumento de rango y devuelve una cadena(En blanco, Texto, Lógica, Error, Fecha, Hora o Valor) que describe el tipo de datos de la celda superior izquierda del rango. Podemos utilizar esta función en una fórmula de hoja o desde otro procedimiento VBA.


Deshabilitar botón Cerrar de un formulario

Todos los formularios que creemos contienen un botón de cierre (“X”) en la barra de título. Haciendo clic en este botón o pulsando ALT + F4, el formulario se cerrará. En algunas situaciones puede que no queramos permitir que los usuarios cierren los formularios de esta manera.


Excel, macros y VBA

Al igual que el lenguaje de macros para Microsoft Excel, Visual Basic para Aplicaciones (VBA) permite conseguir un gran rendimiento en el uso diario de Excel.

Debido a que los departamentos corporativos de tecnologías de la información se han encontrado con largos atrasos en la resolución de solicitudes, los usuarios de Excel han aprendido por ellos mismos a crear los informes que necesitan para hacer funcionar sus negocios. Esto es bueno y malo al mismo tiempo.


Technorati Tags:

Formularios Excel

Los formularios de usuario o userform te permiten mostrar información y permiten al usuario incorporarla. InputBox y MsgBox son formas sencillas de conseguirlo; los controles de UserForm en el VBE se pueden utilizar para crear formularios más complejos.


Technorati Tags:
Distribuir contenido


Cursos Excel · Manual básico · Tutoriales Excel · Foro Excel · Enlaces y recursos · VBA Excel · Plantillas Excel · Nota legal · Contacta