Sunteți pe pagina 1din 21

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERÍA EN GEOLOGÍA, MINAS, PTRÓLEOS Y AMBIENTAL


CARRERA DE INGENIERÍA DE PETRÓLEOS
COMPUTACIÓN APLICADA
Docente: Ing. Néstor Valdospinos Ms. Sc.
Alumno: Alexander José Acuña Jaramillo Fecha: 27-01-2019
Curso: Sexto Semestre
Tema: Realización de la base de datos a través de macros

Objetivo: Utilizar los conocimientos adquiridos para la realización de una base de datos
mediante el uso del macros y formularios aprendidos en la catedra de Computación Aplicada

Pasos

Para empezar este Macro primero realizamos lo aprendido en el macro de cálculos hidráulicos
y grabaremos un macro para poner nuestro titulo

Procedermos pegar esa parte en nuestro macro y continuaremos

nob = InputBox("Ingresar 1 si desea solo buscar en la base de datos actual " & Chr(13) & _

"Ingresar 2 si desea solo modificar en la base de datos actual" & Chr(13) & _

"Ingresar ENTER si desea crear una nueva base de datos " & Chr(13), "Computación Aplicada
")

Cells.Clear 'Borra el contenido de las cedas de la hoja activa

Range("b1").Value = "BASE DE DATOS DE ESTUDIANTES DE LA CARRARRERA DE PETRÓLEOS "

Range("a1:q1").Select

With Selection

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlBottom

.WrapText = False
.Orientation = 0

.AddIndent = False

.IndentLevel = 0

.ShrinkToFit = False

.ReadingOrder = xlContext

.MergeCells = False

End With

Selection.Merge

Range("a1:G1").Select

With Selection.Font

.Name = "Calibri"

.Size = 14

.Strikethrough = False

.Superscript = False

.Subscript = False

.OutlineFont = False

.Shadow = False

.Underline = xlUnderlineStyleNone

.Color = -16776961

.TintAndShade = 0

.ThemeFont = xlThemeFontMinor

End With

Selection.Font.Bold = True

Range("B4").Select

Ahora los items que usaremos en cada parte del Macro

Range("a3").Value = "N° "


Range("b3").Value = "Primer apellido "

Range("c3").Value = "Segundo apellido "

Range("d3").Value = "Primer nombre "

Range("e3").Value = "Segundo nombre "

Range("f3").Value = "Género "

Range("g3").Value = "Provincia "

Range("h3").Value = "Cantón "

Range("i3").Value = "Año de Nacimiento "

Range("j3").Value = "Mes de Nacimiento "

Range("k3").Value = "Día de Nacimiento "

Range("l3").Value = "Año Actual "

Range("m3").Value = "Mes Actual "

Range("n3").Value = "Día Actual "

Range("o3").Value = "Edad en dias actual "

Range("p3").Value = "Edad en meses actual "

Range("q3").Value = "Edad en años actual "

AHORA SI PROCEDEREMOS A LO MAS COMPLICADO DEL NUESTRO PROBLEMA ES LA


REALIZACIÓN DE UN BLUQUE PARA EL INGRESO DE LOS ITEMS ANTES PUESTO AQUÍ ASI QUE
LA LOGICA SE EXPLICARA A CONTINUACIÓN

Primero daremos número y nombre a cada columna de esta manera

columna1 = 2

columna2 = 3

columna3 = 4

columna4 = 5

columna5 = 6

columna6 = 7

columna7 = 8

columna8 = 9
columna9 = 10

columna10 = 11

columna11 = 12

columna12 = 13

columna13 = 14

columna14 = 15

columna15 = 16

columna16 = 17

columna17 = 18

columna18 = 19

columna19 = 20

Y también a la fila (COMO ES INDISPENSABLE SABER EL INICO DEL NUMERO DE INCIO DE


BUCLE PUES DAREMOS FILA1= 4 DONDE ES NUESTRO COMIENZO.

AHORA USAREMOS LOS CONOCIMIENTOS APRENDIDOS EN LA CATADRA SOBRE BUCLES Y


PONDREMOS PARA LA PRIMERA SOLUCION A NUESTRO MAYOR PROBLEMA EN LA
REALIZACION DE ESTE MACRO )

1mera Solución con uso de Do y Loop Until

Para lo cual tendremos antes un ingreso por pantalla el número de estudiantes que deseamos
ingresar

Así tendremos un numero para comparar hasta el final del bucle tendremos que considerar
siempre eso ; ahora necesitamos contadores para concluir uno para cada caso que se iniciara
en 0 y el otro para poner el numero ; el 0 se dara como inicio a lo nuestro ahora podreceremos
con el código Cell para poder iniciar

Cells(fila1 + i, columna1 - 1).Value = j

apellido1 = InputBox("Ingresar el primer apellido del estudiante =")


apellido11 = UCase(apellido1)

apellido1 = apellido11

Cells(fila1 + i, columna1).Value = apellido1

Se aplicara la misma lógica usada para para el ingreso del resto en cada punto con la inclusión
en cada parte de su respectiva modificación

Ahora ingresaremos el Género de la persona para lo cual ingresaremos la misma lógica de


entrada de Cells cambiando la columna respectiva en cada caso además de esto ingresaremos
un if para diferenciar cuando es masculino o femenino

'INGRESO DE GÉNERO
Do

genero = InputBox("Para ingresar el género masculino ingrese 1" & Chr(13) & _

"Para ingresar género femenino ingrese 2 " & Chr(13), "Computación Aplicada ")

genero = Val(genero)

Loop Until genero = 1 Or genero = 2

If genero = 1 Then

genero1 = "MASCULINO"

Cells(fila1 + i, columna5).Value = genero1

MsgBox "El genero ingresado es : " & genero1, , "Computación Aplicada "

ElseIf genero = 2 Then

genero1 = "FEMENINO"

Cells(fila1 + i, columna5).Value = genero1

MsgBox "El genero ingresado es : " & genero1, , "Computación Aplicada "

End If
Ahora para ingresar tanto la provincia y la región lo dividiremos por región para poder tener
una mejor configuración y pondremos un código similar donde englobaremos 3 If consecutivos
uno tendrá la región otro tendrá la provincia y otro tendrá el cantón por lo tanto nuestro
código tendrá el siguiente formato

Do

region = InputBox("Si pertenece a la región costa ingrese 1 " & Chr(13) & _

"Si pertenece a la región sierra ingrese 2" & Chr(13) & _

"Si pertenece a la región amazónica ingrese 3" & Chr(13) & _

"Si pertenece a la región insular ingrese 4" & Chr(13), "Computación Aplicada ")

Loop Until region = "1" Or region = "2" Or region = "3" Or region = "4"

If region = 1 Then

Do

provincia = InputBox("Si usted es originario de El Oro pulse 1 " & Chr(13) & _

"Si usted es originario de Esmeraldas pulse 2" & Chr(13) & _

"Si usted es originario de Guayas pulse 3" & Chr(13) & _

"Si usted es originario de Los Rios pulse 4" & Chr(13) & _

"Si usted es originario de Manabi pulse 5" & Chr(13) & _

"Si usted es originario de Santa Elena pulse 6" & Chr(13), "Computación Aplicada ")

Loop Until provincia = "1" Or provincia = "2" Or provincia = "3" Or provincia = "4" Or provincia
= "5" Or provincia = "6"

'ESMERALDAS

If provincia = 2 Then
provincia1 = "ESMERALDAS"

Cells(fila1 + i, columna6).Value = provincia1

MsgBox "La provincia ingresada es : " & provincia1, , "Computación Aplicada "

Do

canton = InputBox("Si usted es originario del canton Esmeraldas pulse 1 " & Chr(13) & _

"Si usted es originario del cantón Atacames pulse 2" & Chr(13) & _

"Si usted es originario del cantón Eloy Alfaro pulse 3" & Chr(13) & _

"Si usted es originario del cantón Muisne pulse 4" & Chr(13) & _

"Si usted es originario del cantón Quinindé pulse 5" & Chr(13) & _

"Si usted es originario del cantón Rio Verde pulse 6" & Chr(13) & _

"Si usted es originario del cantón San Lorenzo pulse 7" & Chr(13), "Computación Aplicada ")

Loop Until canton = "1" Or canton = "2" Or canton = "3" Or canton = "4" Or canton = "5" Or
canton = "6" Or canton = "7"

If canton = 1 Then

canton1 = "ESMERALDAS"

Cells(fila1 + i, columna7).Value = canton1

MsgBox "El cantón ingresado es : " & canton1, , "Computación Aplicada "

ElseIf canton = 2 Then

canton1 = "ATACAMES"

Cells(fila1 + i, columna7).Value = canton1

MsgBox "El cantón ingresado es : " & canton1, , "Computación Aplicada "

ElseIf canton = 3 Then

canton1 = "ELOY ALFARO"

Cells(fila1 + i, columna7).Value = canton1

MsgBox "El cantón ingresado es : " & canton1, , "Computación Aplicada "

ElseIf canton = 4 Then

canton1 = "MUISNE"

Cells(fila1 + i, columna7).Value = canton1


MsgBox "El cantón ingresado es : " & canton1, , "Computación Aplicada "

ElseIf canton = 5 Then

canton1 = "QUININDÉ"

Cells(fila1 + i, columna7).Value = canton1

MsgBox "El cantón ingresado es : " & canton1, , "Computación Aplicada "

ElseIf canton = 6 Then

canton1 = "RIO VERDE"

Cells(fila1 + i, columna7).Value = canton1

MsgBox "El cantón ingresado es : " & canton1, , "Computación Aplicada "

ElseIf canton = 7 Then

canton1 = "SAN LORENZO"

Cells(fila1 + i, columna7).Value = canton1

MsgBox "El cantón ingresado es : " & canton1, , "Computación Aplicada "

End If

End If

Luego aplicaremos la misma lógica para cada una de las provincias y cantones del Ecuador para
este ejemplo se ha tomado el dato de región sierra , provincia de Pichincha y cantón Quito
Ahora para el ingreso de la edad será muy similar a lo hecho con anterioridad lo cual se
diferenciara del ingreso del mes además de esto el ingreso del día de nacimiento y para sacar
la edad completa daremos una formula del el hoy y se restara ; si los días salen negativos
restaremos a los meses , si los meses salen negativos al año para así no tener incongruencias
en nuestro macro además de esto discriminaremos si los meses son de 31 días o 30 eh
incluiremos el inicio mes con 28 días

Do

mes = InputBox("Si usted nacio en enero ingrese 1 " & Chr(13) & _

"Si usted nacio en febrero ingrese 2" & Chr(13) & _

"Si usted nacio en marzo ingrese 3 " & Chr(13) & _

"Si usted nacio en abril ingrese 4" & Chr(13) & _

"Si usted nacio en mayo ingrese 5" & Chr(13) & _

"Si usted nacio en junio ingrese 6" & Chr(13) & _

"Si usted nacio en julio ingrese 7" & Chr(13) & _

"Si usted nacio en agosto ingrese 8" & Chr(13) & _

"Si usted nacio en septiembre ingrese 9" & Chr(13) & _

"Si usted nacio en octubre ingrese 10" & Chr(13) & _

"Si usted nacio en noviembre ingrese 11" & Chr(13) & _

"Si usted nacio en diciembre ingrese 12 " & Chr(13), "Computación Aplicada ")

Loop Until mes = "1" Or mes = "2" Or mes = "3" Or mes = "4" Or mes = "5" Or mes = "6" Or mes
= "7" Or mes = "8" Or mes = "9" Or mes = "10" Or mes = "11" Or mes = "12"

If mes = 1 Then

mes1 = 1

Cells(fila1 + i, columna9).Value = mes1

ElseIf mes = 2 Then

mes1 = 2

Cells(fila1 + i, columna9).Value = mes1

ElseIf mes = 3 Then

mes1 = 3

ElseIf mes = 4 Then


mes1 = 4

Cells(fila1 + i, columna9).Value = mes1

mes1 = 5

Cells(fila1 + i, columna9).Value = mes1

ElseIf mes = 6 Then

mes1 = 6

Cells(fila1 + i, columna9).Value = mes1

ElseIf mes = 7 Then

mes1 = 7

Cells(fila1 + i, columna9).Value = mes1

ElseIf mes = 8 Then

mes1 = 8

Cells(fila1 + i, columna9).Value = mes1

ElseIf mes = 9 Then

mes1 = 9

Cells(fila1 + i, columna9).Value = mes1

ElseIf mes = 10 Then

mes1 = 10

Cells(fila1 + i, columna9).Value = mes1

ElseIf mes = 11 Then

mes1 = 11

Cells(fila1 + i, columna9).Value = mes1

ElseIf mes = 12 Then

mes1 = 12

Cells(fila1 + i, columna9).Value = mes1

End If
'Hoy

a = Now

diaa = Day(a)

Cells(fila1 + i, columna13).Value = diaa

mess = Month(a)

Cells(fila1 + i, columna12).Value = mess

añoo = Year(a)

Cells(fila1 + i, columna11).Value = añoo

If diaa <= dia Then

adia = diaa + 30 - dia

mess = mess - 1

Else

adia = diaa - dia

End If

If mess < mes1 Then

ames = mess + 12 - mes1

añoo = añoo - 1

Else

ames = mess - mes1

End If
aaño = añoo - año

Cells(fila1 + i, columna14).Value = adia

Cells(fila1 + i, columna15).Value = ames

Cells(fila1 + i, columna16).Value = aaño

ww = ww + 1

i=i+1

j=j+1

Loop Until Abs(ww) = n


USO DE LOS FORMULARIOS
Para el uso de formularios se dará una modificación a nuestro macro principal en el cual
tendremos incluido la parte de modificar y la parte de buscar para analizar los datos

En el ingreso de nuevo será nuestro código igual sin cambios ya que debido a el código borra
las celdas se queda igual y se correrá desde 0

Para la parte de modificar usaremos el GoTo ya que es una herramienta muy adecuada para
saltar líneas o regresar dependiendo como lo usemos por lo tanto bastara con un GoTo para
que el macro no se borre y con algunas modificaciones a nuestro código principal podremos
realizar desde el número anterior del estudiante
Ahora para el código de búsqueda es básicamente nuestro bucle anteriormente de ingreso de
datos y lo hacemos independiente ahora se ingresara un rango de búsqueda básicamente es
un código comparativo por cada fila ; debido a que en una base de datos puede haber muchos
se tomara en cuenta todo el nombre
Para el uso del formulario

Tendremos de esta manera pero es solo uso de lo aprendido en las Clases de computación
Aplicada
DEBIDO A LO APRENDIDO ANTERIORMENTE SE TIENE EN CUENTA QUE EL UNICO PROBLEMA
ES LA CREACIÓN DE UN BUCLE PARA LA ENTRADA DE DATOS POR LO TANTO SE ESTABLECIO
OTRA SOLUCIÓN CON EL USO DEL GOTO DONDE TENDREMOS UN IF Y SI NO SE CUMPLE SE
VOLVERA HASTA QUE VUELVA AL INICIO

'INGRESO DEL NOMBRE DE ESTUDIANTES

i=0

j=1

40

If i = a Then

MsgBox ("Fin del ingreso de datos")

GoTo 50

Else

nom = InputBox("Ingrese el apellido del estudiante " & Chr(13), "Computación Aplicada ")

Cells(4 + i, 1).Value = j

Cells(4 + i, 2).Value = nom

i=i+1

j=j+1

GoTo 40

End If

50

End Sub

Conclusiones

 Mediante en entendimento de la funciones que se tiene en la realización de macros se


puede lograr programar sin dificultad y de una manera eficiente cualquier tipo de
programa que ayudara no solo en la catedra de Computación Aplicada sino que se
puede correlacionar con todas las materias correspondientes a la carrera de Ingenieria
de Petróleos
 La lógica impresa en cada punto del macro es fundamental para obtener una
programación optima y eficaz
 El uso de formularios ayuda al mejoramiento continuo de y sofisticacion del los
proyectos y macros

Recomendación

En muchas ocaciones se debe copiar por facilidad y tiempo los codigos previos que se han
hecho y la modificacion de aquellos se llevar con mucha precaución.

Bibliografía

Charte, F. (2010). Microsoft Excel 2010 (Guía práctica). Madrid: Anaya. Dodge, M. & Stinson, C.
(2010). Excel 2010. Madrid: Anaya.

McFedries, P. (2011). Excel 2010: Formulas y Funciones. Madrid: Anaya.

Aspel de México, S.A. de C.V., Manual de COI. Sistema de Contabilidad Integral, México. Mark,
Davis, Fundamentos de dirección de operaciones, España, Mc Graw Hill, 2001.
INICIO BASE DE DATOS DE ESTUDIANTES DE LA CARRERA DE PETRÓLEOS

N° Primer apellido Segundo apellido Primer nombre Segundo nombre Género Provincia Cantón Año de Nacimiento Mes de Nacimiento Día de Nacimiento Año Actual Mes Actual Día Actual Edad en dias actual Edad en meses actual Edad en años actual
1 ACUÑA JARAMILLO ALEXANDER JOSE MASCULINO PICHINCHA QUITO 1996 1 0 2019 1 15 15 0 23
2 ACUÑA JARAMILLO RICARDO PATRICIO MASCULINO MORONA SANTIAGO TIWINTZA 1993 5 18 2019 1 15 27 7 25
3 ACUÑA COBOS BOLIVAR PATRICIO MASCULINO PICHINCHA QUITO 1963 11 17 2019 1 15 28 1 55
4 CAÑAREJO BORJA MATEO DAVID MASCULINO PAZTAZA ARAJUNO 2000 10 11 2019 1 15 4 3 18
5 DASILVA GARCIA OSWALDO JOSE MASCULINO ZAMORA CHINCHIPE YACUAMBI 2008 10 9 2019 1 15 6 3 10
6 HEREDIA JATIVA PILAR ESTEFANIA FEMENINO MANABÍ MANTA 2001 10 18 2019 1 15 27 2 17
7 JACOME JATIVA ERICK ANDRES MASCULINO GALÁPAGOS Santa Cruz 1998 12 5 2019 1 15 10 1 20
8 JARAMILLO NARANJO MARGOTH MARICELLY FEMENINO BOLÍVAR GUARANDA 1968 1 15 2019 1 15 30 11 50
9 JIMENEZ CASTRO MARCO GABRIEL MASCULINO TUNGURAHUA SANTIAGO DE PÍLLARO 1999 5 11 2019 1 15 4 8 19
10 LOPEZ MENDEZ MARIA ISABEL FEMENINO SANTA ELENA SALINAS 1992 12 1 2019 1 15 14 1 26
11 RICAURTE VILLANUEVA DIEGO DAVID MASCULINO SANT0 DOMINGO DE LOS TSÁCHILAS LA CONCORDIA 1999 12 2 2019 1 15 13 1 19
12 ROSERO ARTEAGA BRIGITH MARISOL FEMENINO AZUAY PUCARÁ 1997 8 4 2019 1 15 11 5 21
13 TORRES ANDRADE KEVIL ISMAL MASCULINO ZAMORA CHINCHIPE YANTZAZA 1996 11 1 2019 1 15 14 2 22

BÚSQUEDA
PRIMER APELLIDO ACUÑA
SEGUNDO APELLIDOJARAMILLO
PRIMER NOMBRE ALEXANDER
SEGUNDO NOMBRE JOSE
SEXO MASCULINO
PROVINCIA PICHINCHA
CANTÓN QUITO
AÑO 1996
MES 1
DÍA 0
EDAD ACTUAL 23

S-ar putea să vă placă și