71991023-macros-visual-2007-1 (2)

Upload: danielvinet

Post on 13-Jul-2015

117 views

Category:

Documents


0 download

TRANSCRIPT

1 Qu es Visual Basic Applications?Es un lenguaje de programacin, el cual es usado para controlar aplicaciones como Microsoft Excel, Microsoft Word o cualquier aplicacin que reconozca esos estndares. Identificaremos Visual Basic Applications simplemente por VBA. Cuando se graba en Excel una macro esta es grabada usando lenguaje VB aplicacin.

2 Qu es una Macro?Una macro son un conjunto de instrucciones que Excel ejecuta automticamente. Frecuentemente las macro buscan eliminar la repeticin de acciones manuales que se hacen en el uso de Excel, algunas de ellas son: realizar calculo, borrar unos datos especficos, seleccionar un rango para aplicarle negrita, cambio de fuente y centrado. Para evitar hacer estas acciones manualmente, se puede elaborar una macro e invocarla para que ejecute los procesos automticamente. Al crear una macro se pueden ejecutar o reproducir varias veces la tarea y realizarlas rpidamente.

2.1 Cuando realizar una Macro?Se debe considerar la creacin de una macro cuando se observe que pulsa las mismas teclas, elige los mismos comandos o realiza la misma sucesin de acciones. Algunas tareas que pueden ser automatizadas mediante macros son: Abrir un grupo de libros de trabajo y recuperar informacin de ellos. Imprimir varios rangos de celdas. Abrir una base de datos, ordenarla, crear un informe y cerrarlo. Preparar una hoja de clculo nueva escribiendo ttulos, ajustando anchos de columna y aplicando formatos especiales.

3 Resolviendo problemas con MacrosEn la solucin de problemas con macros se deben considerar dos aspectos en el proceso de programacin, ellos son: La interfaz de entrada de datos Las subrutinas de procesamiento

Como se sabe ya, en todo algoritmo de computador se distingue una parte que es la entrada de datos, una parte que es el procesamiento y otra que es la salida.

1

En los algoritmos la entrada de datos la representamos por una instruccin de lectura, la salida por la instruccin de escritura y el procesamiento por operaciones de asignacin y de salida. Cuando se trabaja con VBA para Excel para dar vida a un algoritmo, estas partes ser pueden ver de la siguiente manera: En VBA un programa toma los datos de la hoja de clculo, mediante instrucciones que estn escritas en lo que llamaremos subrutinas, y all son llevados a las variables en memoria de la computadora donde son procesados, para luego presentarlos en la hoja de clculo produciendo la salida. Ejemplo: Se requiere un programa en Visual Basic Aplication que permita calcular el radio de un crculo, y el permetro de su circunferencia si se conoce el rea del crculo. De acuerdo con lo que se hizo en el planteamiento del algoritmo, el dato de entrada de este programa es el rea del crculo. La siguiente imagen ilustra la preparacin de la hoja de clculo para definir donde se entran los datos y donde se producir la salida.

La siguiente imagen ilustra que sucede cuando se presiona el botn Calcular Permetro.

Se puede ver como al presionar dicho botn se ejecuto un cdigo que se encargo de hacer los clculos del radio y del permetro del crculo. Se puede decir que el cdigo que ejecuta el botn, toma el valor del rea del crculo y realiza los clculos para resolver el problema.

2

Pero qu es lo que sucede cuando se presiona el botn?, simplemente la computadora ejecuta un cdigo de instrucciones. El siguiente cdigo es el que se ejecuta cuando se presiona el Calcular_PerimetroCirculo.Sub Calcular_PerimetroCirculo() Sheets("hoja1").Select area = Range("C4").Value RADIO = Sqr(area / 3.1415) Range("c5").Value = RADIO Range("c6").Value = 2 * 3.1415 * RADIO End Sub

Este el cdigo que se ejecuta cuando se presiona el botn Borrar CeldasSub BorrarCeldas()

Range("C5").Clear Range("c6").ClearEnd Sub

4 Como se hace en Excel para escribir el cdigo de las subrutinas anterioresSe estar preguntando ahora como hace para introducir las subrutinas anteriores en el VBA. Para escribir una subrutina con el cdigo en VBA proceda as: Teniendo el Excel abierto, abra el men Herramientas en la barra de Excel, luego seleccione la opcin que se muestra en la siguiente figura y haga clic finalmente en la opcin Editor de Visual Basic

3

Se debe abrir una ventana como la siguiente:

Que se conoce como el editor de Visual Basic Aplication.

4.1 Insertando un modulo para SubrutinasPara poder escribir una subrutina inicialmente se debe abrir un mdulo u archivo que las contenga, para ello es necesario hacer lo siguiente: Hacer clic en la opcin Insertar y hacer clic sobre la opcin Mdulo despus de lo cual el editor de VBA se ver as:

4

4.2 Cmo insertar las subrutinasPara insertar una subrutina o una funcin en un mdulo se hace lo siguiente: Se hace clic en la opcin Insertar y luego en el men que aparece se hace clic en la opcin procedimiento, y el computador responde mostrando una pantalla como la siguiente:

En el cuadro anterior escriba el nombre del procedimiento en el cuadro de nombre, no deje espacios en blanco entre el nombre, seleccione el tipo procedimiento, y seleccione el mbito pblico.

5

El editor inserta el cdigo necesario para definir una subrutina. Solo falta ingresar el cdigo. Escriba el cdigo que se muestra aqu:Sheets ("hoja1").Select area = Range("C4").Value RADIO = Sqr(area / 3.1415) Range("c5").Value = RADIO Range("c6").Value = 2 * 3.1415 * RADIO Entre las palabras Sub Calcular_PerimetroCirculo()

End Sub

El proceso se puede repetir para insertar el mtodo borrarceldas Escriba el cdigo para la subrutina y se tendr as:Sub BorrarCeldas()

Range("C5").Clear

6

Range("c6").ClearEnd Sub

4.3 Asignndole macros a los BotonesFinalmente hay que asignarles las macro a los botones, para ello vaya a la hoja de clculo y haga visible la barra de herramienta de formulario1, seleccione el botn y trace sobre la hoja los dos botones, cuando termine de trazarlos se le abrir una ventana que le permitir seleccionar la macro que se desea se ejecute cuando se haga clic sobre el botn.

5 Conociendo Aplication

las

caractersticas

de

Visual

Basic

En las prximas lneas conocer porque y cuando usar las instrucciones que se escribieron en cada una de los procedimientos, del ejemplo desarrollado en las pginas anteriores.

5.1 Objetos en ExcelExcel es un Software que esta desarrollado bajo las tcnicas de programacin orientada a objetos, por tanto cuando lo estamos utilizando interactuamos sobre objetos. Un objeto en Excel es algo que puede ser programado o en esencia, controlado. El modelo de objetos de Excel contiene ms de 100 objetos

5.2 Objetos, propiedades y mtodosTodos los objetos Excel tienen lo que se conoce como propiedades y mtodos. Para poder construir macros interactivas se hace necesario comprender primero los conceptos de objeto, propiedades y mtodos. Un ejemplo de la vida real Piense en los objetos que tiene en su vida y que usted puede controlar: su automvil, su telfono, su televisin, su horno microondas, y su computadora. Observe que todas esas cosas se pueden controlar de alguna manera. Todas pueden describirse. Para cada objeto hay un conjunto de adjetivos asociados con l que representan algn aspecto que se puede medir de un objeto. Definimos entonces una propiedad como un rasgo medible de un objeto. Representan todos los aspectos de un objeto.

1

Haga clic en el men Ver, luego seleccione Barra de Herramientas, y por ltimo haga clic sobre Formulario.

7

Ejemplo: Para nuestro automvil, una propiedad es el color del carro, el nmero de puertas, la marca, el modelo. Los mtodos son de otro lado, verbos que representan acciones que pueden realizarse con o sobre un objeto. Ejemplo: Para nuestro automvil, los mtodos podran incluir cosas como arrancar, acelerar, frenar y parar.

5.3 Pero como se entiendes estos conceptos en ExcelPara ir concretando los conceptos anteriores en Excel, tengamos en cuenta que cada objeto aqu tiene un conjunto nico de propiedades que se usan para describirlo y un nico conjunto de mtodos representando las acciones que pueden realizarse con o sobre l. Un primer ejemplo de objeto es el libro de trabajo Workbooks, el cual identifica un archivo de Excel, sus propiedades describen las caractersticas. Algunas propiedades son: Author, Creator, Name, Path, ReadOnly Otro objeto, es el objeto Range que tiene propiedades como value y mtodos como clear.

5.4 Qu se puede hacer con una propiedad de un objeto en Excel?Cuando se esta utilizando Visual Basic Aplicattion para manipular o controlar un objeto puede realizar las siguientes dos operaciones sobre la propiedad: Establecer la propiedad Obtener el valor de la propiedad

5.4.1 Como se establece una propiedadPara establecer la propiedad de un objeto se hace lo siguiente: Se escribe: NombreObjeto.nombrepropiedad= valorpropiedad Ejemplo: Veamos de manera prctica estos conceptos, el objeto Range representa una o varias celdas de una hoja de clculo. rea=Range(c4).value

8

En la operacin que indica tomar un dato que esta en la celda C4, a la variable rea. Range("c5").value = radio

6 Objeto SheetsEs un objeto que representa que contiene todas la hojas que hay en un libro activo, este objeto se utiliza en la primera macro con el fin de hacer que la macro se situ en una hoja de clculo especifica. Para referirse a una de las hojas en un libro utilizamos la siguiente sintaxis: Sheets(Nombre de la Hoja).propiedad Sheets(Nombre de la Hoja).NombreMtodo(parmetros) Los objetos Sheets pueden realizar los siguientes mtodos: Add, Copy, Delete, FillAcrossSheets, Move, PrintOut, PrintPreview, Select Los mismos objetos tienen las siguientes propiedades: Application, Count, Creator, Item, Parent, Visible, VbPageBreaks No es tarea de este documento explicar en detalle todas las propiedades y mtodos, se invita al lector a consultarlas en la ayuda.

6.1 Mtodo SelectSe utiliza para seleccionar una hoja de clculo especfica, esto es til cuando se quiere que una macro se ejecute sobre una hoja de clculo especifica. Tambien se usa para seleccionar un rango especfico. Ejemplo: En el cdigo escrito se uso la instruccin: Sheets("hoja1").Select Para hacer que al iniciar la macro se seleccione la hoja1, esto garantiza que la macro se ejecutar en dicha hoja. Range(A1).select Selecciona una celda determinada de la hoja de calculo en este caso la celda A1.

9

7

Objeto Range

Un objeto range se utiliza en las subrutinas (procedimientos) para interactuar sobre celdas o rangos de celdas en una hoja de clculo. El usando este objeto nos podemos referir a una sola celda, una seleccin de celdas, selecciones mltiples, una fila o columna, o un rango 3D. En las macros que se han desarrollado ha guardado datos en la hoja de clculo, en esta seccin, entender como se introducen datos en una celda de la hoja de clculo desde

7.1 Propiedades de un objeto RangeLa siguiente es una lista de las propiedades de ms comn uso con el objeto Range. Propiedades del objeto Range Address Count

Descripcin de la propiedadDevuelve la ubicacin actual del rango Esta propiedad se utiliza para saber cuantas celdas conforman un rango. Ejemplo: Range("A1").Count Devuelve la frmula utilizada para calcular el valor a desplegarlo. Ejemplo: La siguiente expresin define la formula en la celda A2. Range("A2").Formula="=A1*10" Se utiliza para volver a darle tamao a el rango actualmente seleccionado. Devuelve el valor del rango. Ejemplo: El siguiente cdigo pone el valor 23 en la celda activa ActiveCell.Value = 23 Devuelve un objeto Range que representa la celda activa de la ventana activa (la ventana superior) o de la ventana especificada. Si la ventana no contiene una hoja de clculo, esta propiedad devolver un error. Es de slo lectura. Ejemplo: En el siguiente cdigo la celda activa toma el valor 23. ActiveCell.Value = 23

Formula

Resize

Value

ActiveCell

10

Propiedades del objeto Range

Descripcin de la propiedadSe utiliza para desplazarse de un rango a otro. Ejemplo: El siguiente cdigo ActiveCell.Offset(1, 1) devuelve el objeto Range correspondiente a la celda que est 1 fila adelante y una columna a la derecha de la celda activa.

Offset

7.2 Mtodos del Objeto RangeEl mtodo Range tambin tiene muchos mtodos, la siguiente tabla muestra algunos de los mtodos. Mtodos del objeto Range Activate Clear Copy Cut Select PasteSpecial Ejemplos: Las siguientes son instrucciones que hemos utilizado en las macros de nuestro primer ejemplo. area = Range("C4").Value En esa instruccin estamos llevando el valor almacenado en la celda C4 a la variable rea. La siguiente instruccin:Range("C5").Value = RADIO

Descripcin del mtodoEsta propiedad activa un rango. La celda activa es donde esta posicionado el cursor. Si hay un rango seleccionado la celda activa se ve generalmente de un color blanco. Este mtodo borra el contenido de un rango. Copia el contenido de un Rango en el portapapeles. Coloca el contenido de un Rango en el portapapeles. Selecciona un Rango. Pega el contenido del portapapeles en un rango

11

Esta llevando el valor de una variable en el procedimiento a la celda c5 de la hoja de clculo seleccionada. Finalmente la instruccin siguiente: Range("C5").Clear Muestra como borrar el contenido de una celda especifica en este caso C5.

8 Funcin InputBoxEs una funcin que se utiliza para mostrar un mensaje en un cuadro de dilogo, y esperar que el usuario escriba o no un texto y luego haga clic sobre uno de los botones que aparecen en la ventana. Cuando esto ocurre la funcin devuelve contenido del cuadro de texto con lo que se escribi como un dato String, si el cuadro de texto esta vaci en el momento de hacer clic, la funcin retorna la cadena vaca. Esta funcin se usa en un programa cuando deseamos que el computador solicite un dato necesario para un programa. Variable=Inputbox(prompt[, title][, default][, xpos][, ypos][, helpfile, context])

Parmetro

Prompt

Title

Xpos

Descripcin Requerido. Expresin de cadena que se muestra como mensaje en el cuadro de dilogo. La longitud mxima de prompt es de aproximadamente 1024 caracteres, segn el ancho de los caracteres utilizados. Si prompt consta de ms de una lnea, puede separarlos utilizando un carcter de retorno de carro (Chr(13)), un carcter de avance de lnea (Chr(10)) o una combinacin de los caracteres de retorno de carro-avance de lnea (Chr(13) y Chr(10)) entre cada lnea y la siguiente. Opcional. Expresin de cadena que se muestra en la barra de ttulo del cuadro de dilogo. Si omite title, en la barra de ttulo se coloca el nombre de la aplicacin. Opcional. Expresin numrica que especifica, en twips, la distancia en sentido horizontal entre el borde izquierdo del cuadro de dilogo y el borde izquierdo de la pantalla. Si se omite xpos, el cuadro de dilogo se centra horizontalmente.

12

Opcional. Expresin numrica que especifica, en twips, la distancia en sentido vertical entre el borde superior del cuadro de dilogo y el borde superior de la Ypos pantalla. Si se omite ypos, el cuadro de dilogo se coloca a aproximadamente un tercio de la altura de la pantalla, desde el borde superior de la misma. Para ms informacin consultar la ayuda de Visual Basic aplication Ejemplo: En el cdigo del procedimiento Calcular_PerimetroCirculo, encuentra el cdigo siguiente: dato = InputBox(" Ingrese el area del Circulo ", "Ingresar dato" _ , 8, 1300, 1400) Cuando se ejecuta la macro usted ver la siguiente ventana:

Cuando se presiona el botn Aceptar el valor en este caso 8 es almacenada en la variable dato La variable debe ser de tipo String

9 Cmo controlar el flujo de la aplicacinEn muchas macros usted podr querer que la computadora haga determinadas acciones dependiendo de que se cumpla o no una determinada situacin, para esos casos usted deber utilizar la funcin if then/else

Estructura de decisin

Instruccin if /then /else

13

If thenAcciones si expre lgica es verdadera Else Acciones si expre lgica es falsa. End if

Para construir la expresin lgica se utilizan los siguientes operadores de relacin: Operador de Relacin Significado = Igual a Diferente >= Mayor o Igual que < Menor que =0 =0>=0radio = area

No

No se puede

perimetro = 2 * radio

radio=,radio Permetro=,permetro

Dicho diagrama lo podemos hacer operativo en Visual Basic de la siguiente manera, en la subrutina CalcularPerimetro_Circulo como se muestra en la siguiente pgina:Sub Calcular_PerimetroCirculo() Dim dato As String Dim area As Double, radio As Double Sheets("Hoja1").Select dato = InputBox(" Ingrese el area del Circulo ", "Ingresar dato" _ , 8, 1300, 1400) 'Lo que se toma del cuadro de texto se lleva a una celda en la hoja de calculo Range("C4").Value = dato 'Lo que se lee en InputBox se lleva a una variable en el procedimientos area = Val(dato)

If area >= 0 Then radio = Sqr(area / 3.1415)

15

Range("c5").Value = radio Range("c6").Value = 2 * 3.1415 * radio Else MsgBox ("El rea no puede ser Negativa ") BorrarCeldas End If End Sub

En el cdigo anterior se puede observar como se hace una llamada a una subrutina o procedimiento que ya hemos creado, en este caso cuando el area es negativa se despliega un mensaje y luego se ejecuta el procedimiento Borrar celdas que ya mencionamos su cdigo.

10 Funcin MsgboxMuestra un mensaje en un cuadro de dilogo, espera a que el usuario haga clic en un botn y devuelve un tipo Integer correspondiente al botn elegido por el usuario. Sintaxis MsgBox (prompt[, buttons][, title][, helpfile, context]) La sintaxis de la funcin MsgBox consta de estos argumentos con nombre: Parmetro Descripcin Requerido. Expresin de cadena que se muestra como mensaje en el cuadro de dilogo. La longitud mxima de prompt es de aproximadamente 1024 caracteres, segn el ancho de los caracteres utilizados. Si prompt consta de ms de una lnea, puede separarlos utilizando un carcter de retorno de carro (Chr(13)), un carcter de avance de lnea (Chr(10)) o una combinacin de los caracteres de retorno de carro-avance de lnea (Chr(13) y Chr(10)) entre cada lnea y la siguiente. Opcional. Expresin numrica que corresponde a la suma de los valores que especifican el nmero y el tipo de los botones que se pretenden mostrar, el estilo de icono que se va a utilizar, la identidad del botn predeterminado y la modalidad del cuadro de mensajes. Si se omite este argumento, el valor

Prompt

buttons

16

Descripcin predeterminado para buttons es 0. Opcional. Expresin de cadena que se muestra en la barra de ttulo del cuadro de Title dilogo. Si se omite title, en la barra de ttulo se coloca el nombre de la aplicacin. Para ms informacin consultar la ayuda de Visual Basic aplication

Parmetro

10.1 Constantes de Botn disponibles para usar en el MsgboxLas siguientes son algunas constantes de botn de uso comn en el cuadro msgbox: Constante VbOKOnly VbOKCancel VbAbortRetryIgnore VbYesNoCancel VbYesNo VbRetryCancel VbCritical VbQuestion VbExclamation VbInformation VbDefaultButton1 VbDefaultButton2 VbDefaultButton3 VbDefaultButton4 Valor0 1 2 3 4 5 16 32 48 64 0 256 512 768

Descripcin Muestra solamente el botn Aceptar. Muestra los botones Aceptar y Cancelar. Muestra los botones Anular, Reintentar e Ignorar. Muestra los botones S, No y Cancelar. Muestra los botones S y No. Muestra los botones Reintentar y Cancelar. Muestra el icono de mensaje crtico. Muestra el icono de pregunta de advertencia. Muestra el icono de mensaje de advertencia. Muestra el icono de mensaje de informacin. El primer botn es el predeterminado. El segundo botn es el predeterminado. El tercer botn es el predeterminado. El cuarto botn es el predeterminado.

17

Constante VbApplicationModal

Valor0

Descripcin Aplicacin modal; el usuario debe responder al cuadro de mensajes antes de poder seguir trabajando en la aplicacin actual.

Ejemplo: En el cdigo del procedimiento de CalcularPerimetro_Circulo se encuentra una instruccin que hace uso de la funcin msgbox as:MsgBox ("El rea no puede ser Negativa ")

La cual se encarga de sacar un mensaje como el siguiente:

11 Nmeros AleatoriosEn muchas situaciones de programacin se necesita que la computadora, genere nmeros aleatorios (al azar), cuando se necesite hacer eso, el VBA le permite generar nmeros aleatorios mediante la funcin rnd, que se aplica a continuacin.

11.1 Funcin rnd()La funcin rnd se utiliza con la siguiente sintaxis: rnd() Genera un numero aleatorio mayor o igual a cero y menor que uno, para generar nmeros aleatorios en el intervalo [a,b] con b>a, se debe usar la siguiente formula. Int ((b-a+1)*rnd ()+a) Se le sugiere al lector que consulte la ayuda de Visual Basic Application para obtener ms informacin sobre esta funcin Ejemplo: En un supermercado se estan dando descuentos a los clientes a partir de los valores de su compra, segn el color de una bola que se saca de una bolsa, segn muestra la siguiente tabla:

18

Color Descuento (%) Roja 0 Azul 3 Blanca 4 Amarilla 6 Se quiere un algoritmo que dado el valor de la compra, y simulando la sacada de la bola, calcule el valor del descuento, el % de descuento, y el valor a pagar por un cliente.

Anlisis Que es lo que se necesita? Se necesita que el computador calcule el valor a pagar (valorPagar) por una persona en un supermercado. Calcular el valor % de un descuento (porcentajeDescuento), que se saca de acuerdo con el color de una bola segn la tabla arriba. Calcular el valor del descuento (valorDescuento) Para calcular el valor del descuento se multiplica el valor de la compra (valorCompra) por el porcentaje de descuento. Valor a pagar se calcula de la siguiente manera: valorPagar= valorCompra valorDescuento Colores de la bola: Los vamos a simular as: Color Nmero Roja 0 Azul 1 Blanca 2 Amarilla 3 La siguiente imagen muestra como se organizo la interfaz para la presentacin de datos:

19

El siguiente es la subrutina en VBA que da solucin al problema: Public Sub descuentos()Dim dato As String Dim bola As Integer Dim valorDescuento As Double, valorPagar As Double Dim descuento As Double, valorCompra As Double dato = InputBox("ingrese el valor a pagar") valorCompra = Val(dato) bola = Int(4 * Rnd()) Range("c12").Value = valorCompra If bola = 0 Then descuento = 0 Range("c13").Value = "Roja" Else If bola = 1 Then descuento = 3 Range("c13").Value = "Azul" Else If bola = 2 Then descuento = 4 Range("c13").Value = "Blanca" Else descuento = 6 Range("c13").Value = "Amarilla" End If End If End If

End Sub El diagrama de la subrutina anterior se puede ver as:

20

Inicio

Ingrese valor compra

valorCompra

Bola= Int (4*rnd ()) NO Bola= ()

SI

SI Bola=1 SIDescuento=3%

NO Descuento=0%

NO Bola=2

Descuento=4%

Descuento= 6%

Calculo de: Valor de descuento Valor a pagar

21

12 Procesos RepetitivosEn esta seccin veremos como un programador puede lograr que el computador realice de manera repetida la ejecucin de varias instrucciones.

12.1 Instruccin Mientras:La instruccin mientras, la utilizan los programadores para indicarle a la computadora que instrucciones debe ejecutar de manera repetida para lograr realizar un determinado proceso.

MIENTRAS

Expresin lgica

Instrucciones Que define el proceso que Se debe repetir Mientras la expresin lgica es Verdadera Fin Mientras

La computadora al encontrar una instruccin mientras se comporta as:

1. Evala la expresin lgica, si es verdadera, entra a ejecutar todas las instrucciones entre el Mientras y el Fin Mientras. Si es falsa continua con la ejecucin de las instrucciones despus del Fin Mientras. 2. Al llegar a Fin Mientras la computadora vuelve a evaluar la expresin lgica; si es verdadera repite el proceso, esto es vuelven a ejecutar todas las instrucciones entre el Mientras y el Fin Mientras; si es falsa, continua ejecutando las instrucciones despus del Fin Mientras. 3. Dentro de las instrucciones a repetir, debe existir al menos una instruccin que haga que la expresin lgica sea falsa en algn momento, para garantizar que el ciclo se deje de ejecutar.

22

12.2 La instruccin Mientras (while) en VBALa instruccin mientras en VBA se escribe as:

Do While Expresin lgica Instrucciones Que define el proceso que Se debe repetir Mientras la expresin lgica es Verdadera

While Expresin lgica Instrucciones Que define el proceso que Se debe repetir Mientras la expresin lgica es Verdadera

Loop Ejemplo:

Wend

Escriba una macro que escriba un mensaje que se ingresa n veces en un rango de celda que usted elije. Algoritmo: Variables Entera n, i; Cadena mensaje; Escriba Cuantas celdas va escribir Leer (n) Escriba Ingrese el mensaje Leer (mensaje) i=1 Suma=0 Mientras i