domingo, 24 de febrero de 2008

Funciones Definidas por el usuario

Funciones definidas por el usuario
----------------------------------------
*una funcion acepta valores luego
realizara los calculos y nos devolvera
una respuesta.

1.creamos unha function con el nombre doble

Function doble(numero)'el argumento pasado se llama numero

doble= numero*numero 'la function nos devuelve numero*numero

end function


2.Ahora vamos al excel y en la formula para una celda
cualquiera escribimos
=Doble(3)

*listo la celda debe devolver como valor 9

sábado, 16 de febrero de 2008

Pasando datos a procedimientos

En VBA Tenemos siempre la posibiliodad de llamar a otro procedimiento
para pasarle datos o variables.

Por ejemplo
-----------
En este sencilo ejemplo se ve claramente como pasar un dato a otro procediento

'solo debes pegar el codigo en modulo
'y correrlo

Sub pasando_un_dato()

Dim celda As Range

Set celda = Range("A1") 'asignamos la refrencia la celda A1

celda.Value = 399 * 2 'colocamos un valor a la celda

'invocamos al procedimiento:
'calculador_datos(y le pasamos
'el valor de la propiedad value de la celda)

calculador_datos (celda.Value )


End Sub

Sub calculador_datos(valor)

'el procedimiento recibe el valor de celda.value

Dim total As Integer

total = 12 * valor 'la variable total ahora sera igual a 12* valor(celda.value)

MsgBox "el total es..." & total 'mostramos el resultado

End Sub

viernes, 8 de febrero de 2008

Invocar a una macro (procedimiento)

Esn este ejemplo el procedimiento "Sub Principal" llama al procedimdiento "Sub auxiliar"
para que nos muestre un msgbox (un mensaje)

'--------------------------------------------------------------------------------------------------
'declaramos la varible rango de tipo range
'la declaramos a nivel de modulo(disponible
'para los procedimientos de este modulo)


Dim rango As Range



Sub principal()

'ahora asiganmos el rango

'asignamos el rango "B10 a B20" a la variable de tipo rango


Set rango = Range("B10:B20")

'ahora hacemos referencia al objeto rango para pintar sus celdas

rango.Interior.ColorIndex = 3

auxiliar 'invocando a la macro auxiliar

End Sub

Sub auxiliar()


MsgBox "Las celdas del rango : " & rango.Address & " han sido pintadas"


End Sub

viernes, 1 de febrero de 2008

Uso de Variables VBA EXCEL - Macros VBA EXCEL

Variables
----------
Se emplean para "GUARDAR" y "MANIPULAR VALORES ó DATOS "

Se pueden guardar varios tipos de datos
----------------------------------------

-numericos ---> Myvarnum=5000 'guardando el dato numerico "5000" en "Myvarnum"
-cadenas ---->Myvarcadena="Libro39" 'guardando la cadena "Libro39" en Myvarcadena
-objetos -----> set wbk=Activeworkbook ''asig¡nando el libro activo a la variable de tipo objeto "wbk"

-variantes ----->myvar=5000 , myvar="XXX" , set myvar=Activeworkbook
'y en las varables de tipo variant uno podra almacenar un dato de diferentes tipos.

Las varibles se declaran de la sgte manera
-------------------------------------------


Dim var_ejemplo as string


Dim : Indica la declaración d ela variable

var_ejemplo :nombre de la variable

As : cualificativo para separar el "nombre de la varible" del "tipo de dato"

String : El tipo de dato (puede ser string ,integer, object , variant ,etc,etc)


Dim Myvarnum as integer 'tipo..numerico

Dim Myvarcadena as string 'tipo...cadena

Dim wbk as object 'tipo...objeto

Dim myvar as variant 'tipo...variant


*Varibles de objeto
---------------------
empleadas par refrenciar un objeto

*ojo para asignar un objeto a una variable uno debe asignar
de la sgte forma..primero

colocar set..luego nombre de la variable e igualr al objeto.

Set variable=Objeto

Ejemplo
--------

Dim wbk as object

-asignamos el objeto ===> el libro activo(Activeworkbook) a la variable "wbk"

set wbk=Activeworkbook

-y luego podremos por ejemplo decir

Msgbox wbk.name 'y obtendremos el nombre del libro activo


Ambito de las variables
------------------------
Se refiere al área donde se puede acceder.



'-a nivel de procedimiento
'-------------------------

Sub procedim 'las varibles solo seran acesibles dentro del procedimiento

dim paraproc as string
dim paraprox as string

paraproc="Real Madrid"

paraprox="Barcelona"

End sub



'-a nivel de modulo
'----------------------

Dim superclub as string 'accesible a todos los procedimientos del modulo


sub prueba

superclub="Manchester United"


End sub



'-a nivel de proyecto
'---------------------

Option Explicit

'al declara la variable como publica ser accesible desde todo el proyecto

Public superclub As String



Sub prueba1()


superclub = "Inter de Milan"


End Sub