balanceo de lineas y calculo de parametros electricos en excel

185
CENTRO DE ENSEÑANZA TÉCNICA INDUSTRIAL IMPLEMENTACIÒN DE UN SISTEMA DE CONTROL APLICANDO UN SOFTWARE PARA CALCULO Y BALANCEO DE LINEAS ELÈCTRICAS DE MEDIA Y BAJA TENSIÒN. TITULACIÓN: PROYECTO O PRACTICAS PROFESIONALES. SUSTENTANTES: AYALA RODRÍGUEZ JOSÉ HÉCTOR SAÚL ASESOR: ING. JOSE DEL CARMEN AGUILAR MORANTE ASESOR TECNICO: ING. JOSÈ MARTIN IBARRA RAMIREZ 1

description

esta es una tesina que engloba como programar en excel ciertas técnicas de balanceo de lineas eléctricas de baja y media tensión en vba

Transcript of balanceo de lineas y calculo de parametros electricos en excel

Page 1: balanceo de lineas y calculo de parametros electricos en excel

CENTRO DE ENSEÑANZA TÉCNICA INDUSTRIAL

IMPLEMENTACIÒN DE UN SISTEMA DE CONTROL APLICANDO UN SOFTWARE PARA CALCULO Y

BALANCEO DE LINEAS ELÈCTRICAS DE MEDIA Y BAJA TENSIÒN.

TITULACIÓN:

PROYECTO O PRACTICAS PROFESIONALES.

SUSTENTANTES:

AYALA RODRÍGUEZ JOSÉ HÉCTOR SAÚL

ASESOR: ING. JOSE DEL CARMEN AGUILAR MORANTE

ASESOR TECNICO: ING. JOSÈ MARTIN IBARRA RAMIREZ

1

Page 2: balanceo de lineas y calculo de parametros electricos en excel

Introducción...................................................................................................................................................................4

Tema 1.Analisis de la función de la norma..........................................................................................................4

Tema 2.- características del programador.........................................................................................................21

Cómo se... (referencia de VBA para Excel)....................................................................................................................22

Libros y hojas de cálculo...........................................................................................................................................22

..................................................................................................................................................................................22

Macros y el Editor de Visual Basic.........................................................................................................................23

..................................................................................................................................................................................23

Ficha Programador...............................................................................................................................................23

Para habilitar la ficha Programador......................................................................................................................23

Problemas de seguridad.......................................................................................................................................24

Editor de Visual Basic............................................................................................................................................24

Para crear un nuevo libro en blanco.....................................................................................................................24

Un ejemplo real........................................................................................................................................................26

..................................................................................................................................................................................26

Aprendizaje sobre objetos....................................................................................................................................26

Uso de la grabadora de macros............................................................................................................................27

Para usar la grabadora de macros como punto de inicio de la solución...............................................................27

Para grabar una macro que cambie el nombre de una hoja de cálculo................................................................28

Modificación del código grabado..............................................................................................................................29

..................................................................................................................................................................................29

Función de bucle...................................................................................................................................................29

Cambio de nombre útil.........................................................................................................................................31

Búsqueda de celdas vacías....................................................................................................................................32

Declaraciones de variables...................................................................................................................................33

2

Page 3: balanceo de lineas y calculo de parametros electricos en excel

Comentarios.........................................................................................................................................................34

Más cosas que se pueden hacer con VBA.................................................................................................................34

..................................................................................................................................................................................34

Importancia de una actitud abierta......................................................................................................................34

Gráficos.................................................................................................................................................................35

UserForms............................................................................................................................................................38

¿Qué sigue?..............................................................................................................................................................39

..................................................................................................................................................................................39

Preguntas sobre Visual Basic 6.0..............................................................................................................................43

Objetos y clases............................................................................................................................................................46

Reutilizar el código...................................................................................................................................................46

..................................................................................................................................................................................46

Clases........................................................................................................................................................................46

..................................................................................................................................................................................46

Varias instancias.......................................................................................................................................................47

..................................................................................................................................................................................47

Para crear un objeto a partir de una clase............................................................................................................47

Controles Estándar de Visual Basic...........................................................................................................................47

Descripción del control PictureBox...............................................................................................................................48

Propiedad Picture.........................................................................................................................................................49

Propiedad Autosize.......................................................................................................................................................50

Usar el PictureBox como contenedor...........................................................................................................................51

Propiedad Container - Insertar controles en tiempo de ejecución...............................................................................53

Propiedad Autoredraw.................................................................................................................................................54

Guardar la imagen del picturebox como BMP..............................................................................................................56

Propiedad Image..........................................................................................................................................................57

Dibujar en un picturebox con los métodos gráficos.....................................................................................................59

Enlaces relacionados....................................................................................................................................................59

3

Page 4: balanceo de lineas y calculo de parametros electricos en excel

Descripción...................................................................................................................................................................60

Propiedades..................................................................................................................................................................60

Propiedad Caption....................................................................................................................................................61

Propiedad Autosize...................................................................................................................................................62

Propiedad Aligment..................................................................................................................................................62

Otras propiedades del control son :.........................................................................................................................63

Ejemplo para cambiar propiedades en tiempo de ejecución....................................................................................64

Eventos del control Label:............................................................................................................................................67

Ejemplo utilizando el evento MouseMove...............................................................................................................67

Recorrer los labels del formulario con un bucle For Each next.....................................................................................69

Texto con sombra usando dos controles Label.............................................................................................................70

Simple botón................................................................................................................................................................71

Control ListBox..........................................................................................................................................................71

Ejemplo simple para agregar y eliminar elementos de un control List.................................................................74

Propiedad Sorted:.....................................................................................................................................................76

Eliminar elementos con el método Clear..................................................................................................................76

Propiedad ListCount.................................................................................................................................................76

Propiedad List...........................................................................................................................................................77

Otras propiedades del control ListBox son:..............................................................................................................78

Eventos del control ListBox.......................................................................................................................................79

Control ComboBox.......................................................................................................................................................80

Propiedad DataField y DataSource...........................................................................................................................82

Propiedad Multiline..................................................................................................................................................85

Propiedad PasswordChar..........................................................................................................................................86

Propiedad ScrollBars.................................................................................................................................................86

Propiedad Locked.....................................................................................................................................................87

Propiedad Maxlength...............................................................................................................................................87

Propiedad SelStart y SelLength.................................................................................................................................87

Algunos ejemplos del Uso del control TextBox.........................................................................................................88

Hacer que un textBox admita solo números y algunos otros caracteres indicados..................................................90

Ejemplo para cargar el contenido de un archivo de texto en un TextBox Multiline.................................................92

Redimensionar un TextBox al ancho y alto del formulario.......................................................................................95

4

Page 5: balanceo de lineas y calculo de parametros electricos en excel

Cambiar color de borde............................................................................................................................................95

Pasar el foco entre Textbox al presionar la tecla enter.............................................................................................98

Borrar todos los textbox de un formulario.............................................................................................................100

Enlaces relacionados..............................................................................................................................................101

Ejemplos básicos sobre el control CommandButton de visual basic.......................................................................101

Descripción del control...............................................................................................................................................102

Propiedades................................................................................................................................................................104

Métodos y funciones..................................................................................................................................................113

Eventos principales del control CommandButton......................................................................................................115

Tomar la apariencia de los temas de windows para los botones................................................................................119

Propiedad Value del OptionButton.........................................................................................................................120

Otro ejemplo del control OptionButton:................................................................................................................121

Ejemplo para crear un OptionButton con gráficos..................................................................................................123

Enlaces relacionados..............................................................................................................................................124

Tema 3.- funcionamiento de módulos...............................................................................................................124

Tema 4.- Alcances posibles...............................................................................................................................158

Tema 5.- obtención de resultados.....................................................................................................................158

Conclusiones:.......................................................................................................................................................158

Bibliografía:...........................................................................................................................................................158

5

Page 6: balanceo de lineas y calculo de parametros electricos en excel

Implementación de un sistema de control aplicando un software para calculo y balanceo de líneas eléctricas de media y baja tensión

Introducción

Tema 1.Analisis de la función de la norma.La Norma Oficial Mexicana para el acondicionamiento de Instalaciónes eléctricas NOM-001-

SEDE-2001 es una norma que te permite adecuar los materiales eléctricos de manera precisa mediante acuerdos hechos por Investigaciónes de area científica que permiten al usuario

construir establecimientos con condiciones eléctricas según acuerdos entre distintas compañías del ramo eléctrico las cuales son las siguientes:

Nota: cabe aclarar que debido a lo extenso que es la norma, solo se tomaran los elementos necesarios en los que se alcanzó a hacer nuestro programa para lo que la empresa

TECNÓLOGOS CONSTRUCTORES S.A. DE C.V. solicitó, debido a que es un proyecto de largo alcance, solo se mencionara los logros de nuestro trabajo como fase beta.

- Asociación Mexicana de Directores Responsables de Obra y Corresponsables, AMDROC

- Asociación Mexicana de Empresas del Ramo de Instalaciones para la Construcción, AMERIC

- Asociación de Normalización y Certificación, A.C., ANCE - Cámara Nacional de la Industria de Desarrollo y Promoción de Vivienda, CANADEVI

- Cámara Nacional de la Industria de la Transformación, CANACINTRA - Cámara Nacional de Manufacturas Eléctricas, CANAME

10 (Primera Sección-Vespertina) DIARIO OFICIAL Jueves 29 de noviembre de 2012

- Confederación de Cámaras Nacionales de Comercio, Servicios y Turismo, CONCANACO

- Comisión Federal de Electricidad, CFE - Comisión Nacional para el Uso Eficiente de la Energía, CONUEE - Confederación de Cámaras Industriales de los Estados Unidos Mexicanos,

CONCAMIN

- Comisión Nacional de Vivienda, CONAVI

6

Page 7: balanceo de lineas y calculo de parametros electricos en excel

- Federación de Colegios de Ingenieros Mecánicos y Electricistas de la República Mexicana, FECIME - Instituto de Investigaciones Eléctricas, IIE

- Instituto Politécnico Nacional, IPN - Petróleos Mexicanos, PEMEX

- Procuraduría Federal del Consumidor, PROFECO

- Secretaría de Economía, SE

- Secretaría de Gobernación, SEGOB

- Secretaría de Salud, SALUD

- Secretaría del Trabajo y Previsión Social, STPS

- Secretaría de Turismo, SECTUR.

La Norma tiene especificaciones para los siguientes tipos de materiales eléctricos:

TITULO 5. ESPECIFICACIONES

CAPITULO 1 Disposiciones Generales

Artículo 100 Definiciones

Artículo 110 Requisitos de las instalaciones eléctricas

CAPITULO 2 Alambrado y Protección

Artículo 200 Uso e identificación de los conductores puestos a tierra

Artículo 210 Circuitos derivados

Artículo 215 Alimentadores

Artículo 220 Cálculo de los circuitos derivados, alimentadores y acometidas

Artículo 225 Circuitos derivados y alimentadores exteriores

Jueves 29 de noviembre de 2012 DIARIO OFICIAL (Primera Sección-Vespertina) 11

Artículo 230 Acometidas

Artículo 240 Protección contra sobrecorriente

Artículo 250 Puesta a tierra y unión

Artículo 280 Apartarrayos de más de 1000 volts

Artículo 285 Supresores de sobretensiones transitorias de 1000 volts o menos (SSTT)

7

Page 8: balanceo de lineas y calculo de parametros electricos en excel

CAPITULO 3 Métodos de Alambrado y Materiales

Artículo 300 Métodos de alambrado

Artículo 310 Conductores para alambrado en general

Artículo 312 Gabinetes, cajas de desconexión y bases para medidores

Artículo 314 Cajas, cajas de paso y sus accesorios, utilizadas para salida, empalme, unión o jalado Artículo 320 Cable armado Tipo AC

Artículo 322 Ensambles de cable plano Tipo FC

Artículo 324 Cable de conductor plano Tipo FCC Artículo

326 Cable con separador integrado de gas Tipo IGS

Artículo 328 Cable de media tensión

Artículo 330 Cable con armadura metálica Tipo MC

Artículo 332 Cable con aislamiento mineral y cubierta metálica Tipo MI

Artículo 334 Cable con forro no metálico Tipos NM, NMC y NMS

Artículo 336 Cables de fuerza y control para charola Tipo TC

Artículo 338 Cables de acometida Tipos SE y USE

Artículo 340 Cables para alimentadores y circuitos derivados subterráneos Tipo UF

Artículo 342 Tubo conduit metálico semipesado Tipo IMC

Artículo 344 Tubo conduit metálico pesado Tipo RMC

Artículo 348 Tubo conduit metálico flexible Tipo FMC

Artículo350 Tubo conduit metálico flexible hermético a los líquidos Tipo LFMC

Artículo 352 Tubo conduit rígido de policloruro de vinilo Tipo PVC

Artículo 353 Tubo conduit de polietileno de alta densidad Tipo HDPE

Artículo 354 Tubo conduit subterráneo no metálico con conductores Tipo NUCC

Artículo 355 Tubo conduit de resina termofija reforzada Tipo RTRC

Artículo 356 Tubo conduit no metálico flexible hermético a los líquidos Tipo LFNC

Artículo 358 Tubo conduit metálico ligero Tipo EMT

Artículo 360 Tubo conduit metálico flexible ligero Tipo FMT

Artículo 362 Tubo conduit no metálico Tipo ENT

8

Page 9: balanceo de lineas y calculo de parametros electricos en excel

Artículo 364 Tubo conduit de polietileno

Artículo 366 Canales auxiliares

Artículo 368 Electroductos o ductos con barras (Busway)

Artículo 370 Canalizaciones prealambradas

Artículo 372 Canalizaciones en pisos celulares de concreto

Artículo 374 Canalizaciones en pisos metálicos celulares

Artículo 376 Ductos metálicos

Artículo 378 Ductos no metálicos

Artículo 380 Ensamble multicontacto

Artículo 382 Extensiones no metálicas

Artículo 384 Canalizaciones de canal de tipo vigueta

Artículo 386 Canalizaciones metálicas superficiales

Artículo 388 Canalizaciones no metálicas superficiales

Artículo 390 Canalizaciones bajo el piso

Artículo 392 Charolas portacables

Artículo 394 Alambrado oculto sobre aisladores de porcelana y tubo

Artículo 396 Alambrado sostenido por cable mensajero

Artículo 398 Alambrado abierto sobre aisladores

Artículo 399 Conductores aéreos en exteriores de más de 600 volts

12 (Primera Sección-Vespertina) DIARIO OFICIAL Jueves 29 de noviembre de 2012

CAPITULO 4 Equipo de Uso General

Artículo 400 Cables y cordones flexibles

Artículo 402 Cables para artefactos

Artículo 404 Desconectadores

Artículo 406 Contactos, conectores de cordón y clavijas de conexión

Artículo 408 Tableros de distribución y tableros de alumbrado y control Artículo

409 Tableros de control industrial

9

Page 10: balanceo de lineas y calculo de parametros electricos en excel

Artículo 410 Luminarias, portalámparas y lámparas

Artículo 411 Sistemas de alumbrado que funcionan a 30 volts o menos

Artículo 422 Aparatos

Artículo 424 Equipo eléctrico fijo para calefacción de ambiente

Artículo 426 Equipo eléctrico fijo para descongelar y derretir nieve

Artículo 427 Equipo eléctrico fijo para calentamiento de tuberías y recipientes

Artículo 430 Motores, circuitos de motores y controladores

Artículo 440 Equipos de aire acondicionado y de refrigeración

Artículo 445 Generadores

Artículo 450 Transformadores y bóvedas para transformadores (incluidos los enlaces del secundario)

Artículo 455 Convertidores de fase

Artículo 460 Capacitores

Artículo 470 Resistencias y reactores

Artículo 480 Baterías de acumuladores

Artículo 490 Equipos de más de 600 volts nominales

Como determinamos el tipo de calibre en base a la norma.

Todo entra en una tabla.

La Norma 310-16 es la indicada para poder determinar en base a la capacidad de corriente y se calcula de la siguiente manera.

SELECCIÓN DEL CALIBRE DE UN CONDUCTOR ELÉCTRICO EN TUBERÍA (CONDUIT) DE ACUERDO CON LA NORMA DE

INSTALACIONES ELÉCTRICAS NOM-001-SEDE-2005

10

Page 11: balanceo de lineas y calculo de parametros electricos en excel

La transmisión de energía eléctrica en forma segura y eficiente depende de una correcta selección del calibre del conductor.

La capacidad de conducción de corriente de los conductores eléctricos depende de muchos factores, entre los cuales podemos mencionar los siguientes: tipo de instalación (Conduit, charola, ducto subterráneo, etc.), del arreglo de los conductores (plano, trébol, etc.), de la temperatura de operación de los conductores seleccionados, de la longitud del circuito, etc. Debido a lo anterior, se debe realizar un estudio completo de la instalación eléctrica diseñada.

A continuación se indica como calcular la capacidad de conducción de corriente para conductores eléctricos en tubería conduit de acuerdo con la norma de instalaciones eléctricas NOM-001-SEDE-2005, la cual no intenta ser una guía de diseño, ni un manual de instrucciones para personas no calificadas.

1. Elegir el tipo de producto requerido en función de su aplicación, materiales, construcción y temperatura del conductor. Se recomienda consultar el catálogo Latincasa de Alambres y Cables de Baja Tensión para Construcción y Distribución.

2. Determinar la corriente nominal de la carga, utilizando las fórmulas indicadas en la tabla siguiente, de acuerdo con el tipo de sistema eléctrico (de corriente continua, de corriente alterna monofásico o trifásico) y del tipo de carga (motores, alumbrado u otras cargas).

11

Page 12: balanceo de lineas y calculo de parametros electricos en excel

12

Page 13: balanceo de lineas y calculo de parametros electricos en excel

Donde:

CP (HP) = Caballos de fuerza o potencia del motor kW = Potencia en kilowatt

V = Tensión nominal del sistema en Volts = Eficiencia del motor (Valor típico 0,8)

fp = Factor de potencia (Valor típico 0,9)

NOTA: Para conductores que alimenten un solo motor, la corriente nominal a plana carga se

multiplicará por 1,25 (artículo 430-22). En el caso de varios motores, a la suma de la corriente a plena

carga de los motores se le sumará el 25% de la corriente del motor más grande (artículo 430-24).

3. Seleccionar el calibre del conductor de acuerdo con su capacidad de conducción de corriente del cable, que depende del tipo del aislamiento, de la temperatura de operación y del método de instalación, utilizando la Tabla 1.

NOTA: De acuerdo al artículo 110-14 de la NOM-001-SEDE-2005, si la corriente en el circuito es mayor a 100 A, se elige la capacidad de corriente a una temperatura de operación del conductor de 75°C. Si la corriente del circuito es menor de 100 A, se elige la capacidad de corriente a una temperatura de operación del conductor de 60°C.

13

Page 14: balanceo de lineas y calculo de parametros electricos en excel

Tabla 1. Capacidad de conducción de corriente (A) permisible de conductores aislados para 0 a 2000 V nominales y 60°C a 90°C. No más de tres conductores portadores de corriente en una

canalización o directamente enterrados, para una temperatura ambiente de 30°C.

Temperatura nominal del conductor

Calibre Área de 60°C 75°C 90°C 60°C 75°C 90°C

la sección TW THW, RHW RHH, RHW-2 UF RHW RHW-2

transversal TWD THW-LS THHN, THW-2 XHHW XHHW

AWG nominal CCE THWN THHW-LS, XHHW-2

O

mm2

XHHW XHHW-2 DRS

Kcmil Cobre Aluminio

14 2,08 20* 20* 25* - - -

12 3,31 25* 25* 30* - - -

10 5,26 30 35* 40* - - -

8 8,37 40 50 55 - - -

6 13,3 55 65 75 40 50 60

4 21,2 70 85 95 55 65 75

2 33,6 95 115 130 75 90 100

1/0 53,5 125 150 170 100 120 135

2/0 67,4 145 175 195 115 135 150

3/0 85,0 165 200 225 130 155 175

4/0 107 195 230 260 150 180 205

250 127 215 255 290 170 205 230

300 152 240 285 320 190 230 255

350 177 260 310 350 210 250 280

400 203 280 335 380 225 270 305

14

Page 15: balanceo de lineas y calculo de parametros electricos en excel

500 253 320 380 430 260 310 350

600 304 355 420 475 285 340 385

750 380 400 475 535 320 385 435

1000 507 455 545 615 375 445 500

* A menos que se permita otra cosa específicamente en otro lugar de esta norma, la protección contra sobrecorriente de los conductores marcados con un asterisco (*), no se debe superar 15 A para 14 AWG, 20 A para 12 AWG y 30 A para 10 AWG, todos de cobre.

15

Page 16: balanceo de lineas y calculo de parametros electricos en excel

4. Una vez elegido el calibre del conductor, corregir la capacidad de conducción de corriente tomada de la Tabla 1, en función de la temperatura ambiente del lugar de instalación, para ello se multiplica por el factor de corrección que se indica en la Tabla 2.

Tabla 2. Factores de corrección por temperatura

Temperatura ambiente en el

lugar de la instalación 60°C 75°C 90°C

°C

21 – 25 1,08 1,05 1,04

26 – 30 1,00 1,00 1,00

31 – 35 0,91 0,94 0,96

36 – 40 0,82 0,88 0,91

41 – 45 0,71 0,82 0,87

46 – 50 0,58 0,75 0,82

51 – 55 0,41 0,67 0,76

5. Si existen más de 3 conductores en tubería (conduit) portadores de corriente, corregir la capacidad de conducción de corriente multiplicando ésta por los factores de la Tabla 3.

16

Page 17: balanceo de lineas y calculo de parametros electricos en excel

Tabla 3. Factores de ajuste para más de tres conductores portadores

de corriente en una canalización o cable

Cantidad de conductores Factor de corrección por

portadores de corriente eléctrica agrupamientoDe 4 a 6 0,80

De 7 a 9 0,70

De 10 a 20 0,50

De 21 a 30 0,45

De 31 a 40 0,40

De 41 y más 0,35

17

Page 18: balanceo de lineas y calculo de parametros electricos en excel

6. Calcular la caída de tensión de la instalación utilizando las fórmulas siguientes:

Circuitos Monofásicos Circuitos Trifásicos

= x 100 = √ x 100Donde:

V = Caída de tensión en el cable, en %

I = Corriente eléctrica que circula a través del conductor, en A L = Longitud total del circuito, en km

Vo = Tensión de fase a neutro, en V Vff = Tensión entre fases, en V

Z = Impedancia eléctrica del cable, en /km

La impedancia eléctrica del cable Z, expresada en ohm/km, está dada por la siguiente fórmula:

Z = RCos + XLSen

En forma aproximada sin considerar el factor de potencia (fp) la impedancia (Z) puede ser calculada con la fórmula siguiente:

18

Page 19: balanceo de lineas y calculo de parametros electricos en excel

Z = R2 + XL2

Donde:

R = Resistencia del conductor a la c.a. y a la temperatura de operación, en /km XL = Reactancia inductiva del conductor, en /km

fp = Cos

= Es el ángulo del factor de potencia (fp)

19

Page 20: balanceo de lineas y calculo de parametros electricos en excel

La siguiente tabla contiene la resistencia en corriente alterna a 75°C, la reactancia inductiva y la impedancia para cables de 600 V. Tres cables monopolares en un mismo tubo (conduit).

Tabla 4. Parámetros electricos generales de cables en tubo (conduit)

Ohms al neutro / km

Reactancia inductiva Resistencia a la c.a. Resistencia a la c.a. Impedancia (Z) de Impedancia (Z) de

Calibre

(XL) para todos los a 75°C de conductores a 75°C de conductores conductores de cobre conductores de aluminio

conductores de cobre de aluminio fp=0,9 fp=0,9

AWG

Ohm/km Ohm / km Ohm / km Ohm / km Ohm / km

Conduit Conduit Conduit Conduit Conduit Conduit Conduit Conduit Conduit Conduit Conduit Conduit Conduit Conduit

o de PVC o de de de de de de de de de de de de de

kcmil aluminio acero PVC aluminio acero PVC aluminio acero PVC aluminio acero PVC aluminio acero

14 0.190 0.240 10.2 10.2 10.2 — — — 9.3 9.3 9.3 — — —

12 0.177 0.223 6.6 6.6 6.6 — — — 6.0 6.0 6.0 — — —

10 0.164 0.207 3.9 3.9 3.9 — — — 3.6 3.6 3.6 — — —

8 0.171 0.213 2.56 2.56 2.56 — — — 2.38 2.38 2.40 — — —

6 0.167 0.210 1.61 1.61 1.61 2.66 2.66 2.66 1.52 1.52 1.54 2.47 2.47 2.49

4 0.157 0.197 1.02 1.02 1.02 1.67 1.67 1.67 0.99 0.99 1.00 1.57 1.57 1.59

2 0.148 0.187 0.62 0.66 0.66 1.05 1.05 1.05 0.62 0.66 0.68 1.01 1.01 1.03

1/0 0.144 0.180 0.39 0.43 0.39 0.66 0.69 0.66 0.41 0.45 0.43 0.66 0.68 0.67

2/0 0.141 0.177 0.33 0.33 0.33 0.52 0.52 0.52 0.36 0.36 0.37 0.53 0.53 0.55

3/0 0.138 0.171 0.253 0.269 0.259 0.43 0.43 0.43 0.288 0.302 0.308 0.45 0.45 0.46

4/0 0.135 0.167 0.203 0.22 0.207 0.33 0.36 0.33 0.242 0.257 0.259 0.36 0.38 0.37

250 0.135 0.171 0.171 0.187 0.177 0.279 0.295 0.282 0.213 0.227 0.234 0.310 0.324 0.328

300 0.135 0.167 0.144 0.161 0.148 0.233 0.249 0.236 0.188 0.204 0.206 0.269 0.283 0.285

20

Page 21: balanceo de lineas y calculo de parametros electricos en excel

350 0.131 0.164 0.125 0.141 0.128 0.200 0.217 0.207 0.170 0.184 0.187 0.237 0.252 0.258

400 0.131 0.161 0.108 0.125 0.115 0.177 0.194 0.180 0.154 0.170 0.174 0.216 0.232 0.232

500 0.128 0.157 0.089 0.105 0.095 0.141 0.157 0.148 0.136 0.150 0.154 0.183 0.197 0.202

600 0.128 0.157 0.075 0.092 0.082 0.118 0.135 0.125 0.123 0.139 0.142 0.162 0.177 0.181

750 0.125 0.157 0.062 0.079 0.069 0.095 0.112 0.102 0.110 0.126 0.131 0.140 0.155 0.160

1000 0.121 0.151 0.049 0.062 0.059 0.075 0.089 0.082 0.097 0.109 0.119 0.120 0.133 0.140

La NOM-001-SEDE-2005 indica que la caída de tensión máxima permitida en la instalación tomando en consideración los cables del circuito alimentador y del circuito derivado, no debe ser mayor del 5%.

Para el caso del circuito derivado, la caída de tensión no deberá ser mayor de 3% y debe considerarse una caída de tensión máxima de 2% para el circuito alimentador.

Si la caída de tensión resultante del cálculo es mayor a lo anterior, debemos considerar un calibre mayor, volver a realizar los cálculos y verificar que se cumplan los porcentajes de caída de tensión sugeridos.

21

Page 22: balanceo de lineas y calculo de parametros electricos en excel

7. De acuerdo a NOM-001-SEDE-2005 es necesario instalar el conductor de puesta a

tierra de equipos en todos los alambrados. Para seleccionar el calibre de puesta a

tierra de equipos nos basaremos en la Tabla 5, la cual indica el calibre mínimo para la

puesta a tierra de canalizaciones y equipos.

Tabla 5. Tamaño nominal mínimo de los conductores de puesta a tierra para canalizaciones y equipos

Capacidad o ajuste del dispositivo

Tamaño nominal mm2automático de protección contra

sobrecorriente en el circuito antes (AWG o kcmil)

de los equipos, canalizaciones, etc.

Sin exceder de

(A) Cable de Cobre Cable de Aluminio15 2,08 (14) --

20 3,31 (12) --

30 5,26 (10) --

40 5,26 (10) --

60 5,26 (10) --

100 8,37 (8) 13,3 (6)

200 13,3 (6) 21,2 (4)

22

Page 23: balanceo de lineas y calculo de parametros electricos en excel

300 21,2 (4) 33,6 (2)

400 33,6 (2) 42,4 (1)

500 33,6 (2) 53,5 (1/0)

600 42,4 (1) 67,4 (2/0)

800 53,5 (1/0) 85,0 (3/0)

1000 67,4 (2/0) 107 (4/0)

Nota: Los conductores de puesta a tierra de los equipos podrían ser de mayor tamaño que lo especificado en esta tabla.

Este conductor de puesta a tierra de equipos puede ser conductor desnudo o aislado. Si es aislado, el color de identificación del aislamiento debe ser verde.

Tema 2.- características del programador.

Como funciona:

Es un lenguaje de fácil aprendizaje pensado tanto para programadores principiantes como expertos, guiado por eventos, y centrado en un motor de

formularios que facilita el rápido desarrollo de aplicaciones gráficas. Su sintaxis, derivada del antiguo BASIC, ha sido ampliada con el tiempo al agregarse las

características típicas de los lenguajes estructurados modernos. Se ha agregado una implementación limitada de la programación orientada a objetos (los propios

formularios y controles son objetos), aunque sí admite el polimorfismo mediante el uso de los Interfaces, no admite la herencia. No requiere de manejo de punteros y posee un manejo muy sencillo de cadenas de caracteres. Posee varias bibliotecas para manejo de bases de datos, pudiendo conectar con cualquier base de datos a través de ODBC (Informix, DBase, Access, MySQL, SQL Server, PostgreSQL ,etc)

a través de ADO.

Es utilizado principalmente para aplicaciones de gestión de empresas, debido a la rapidez con la que puede hacerse un programa que utilice una base de datos

sencilla, además de la abundancia de programadores en este lenguaje.

23

Page 24: balanceo de lineas y calculo de parametros electricos en excel

El compilador de Microsoft genera ejecutables que requieren una DLL para que funcionen, en algunos casos llamada MSVBVMxy.DLL (acrónimo de "MicroSoft

Visual Basic Virtual Machine x.y", siendo x.y la versión) y en otros VBRUNXXX.DLL ("Visual Basic Runtime X.XX"), que provee todas las funciones implementadas en el lenguaje. Además existen un gran número de bibliotecas

(DLL) que facilitan el acceso a muchas funciones del sistema operativo y la integración con otras aplicaciones. Sin embargo esto sólo es una limitación en

sistemas obsoletos, ya que las bibliotecas necesarias para ejecutar programas en Visual Basic vienen de serie en todas las versiones de Windows desde Windows

2000.1

Cómo se... (referencia de VBA para Excel)Office 2013

Este tema contiene vínculos a tareas de programación (temas del tipo "Cómo..." y guía paso a paso) para escenarios comunes de Excel.

Los temas de procedimientos son la puerta de enlace a temas importantes basados en tareas relacionadas con la programación y el desarrollo de aplicaciones mediante Excel. En este tema se incluyen las principales categorías de las acciones que se pueden realizar en Excel. Estos vínculos dirigen a temas de Ayuda importantes basados en procedimientos.

Libros y hojas de cálculo

Agregar una tabla de contenido a un libro o Describe cómo añadir una hoja de cálculo de tabla de contenido a un libro.

Crear etiquetas de direcciones desde una hoja de cálculo o Describe cómo tomar una lista de direcciones dispuestas como una dirección

por fila y disponerlas para que entren en etiquetas de direcciones para imprimir.

Crear un libro de calendario de programación o Describe cómo usar información en un libro para crear un libro de

calendario de programación que contiene un mes por hoja de cálculo y que puede incluir festivos y días de la semana.

Procedimientos para crear un libro o Se explica cómo crear un libro con Excel.

Crear o reemplazar una hoja de cálculo o Describe cómo crear o reemplazar una hoja de cálculo en un libro existente.

Nombrar una hoja de cálculo con un valor de celda o Describe cómo nombrar una hoja de cálculo según el valor de una celda.

Procedimientos para hacer referencia a varias hojas

24

Page 25: balanceo de lineas y calculo de parametros electricos en excel

o Se explica cómo hacer referencia a más de una hoja en Excel. Procedimientos para hacer referencia a hojas por número de índice

o Explica cómo hacer referencia a hojas por número de índice. Procedimientos para hacer referencia a las hojas por nombre

o Explica cómo hacer referencia a hojas por nombre. Ordenar las hojas de cálculo alfabéticamente por nombre

o Describe cómo ordenar hojas de cálculo en un libro de forma alfanumérica por nombre.

Macros y el Editor de Visual Basic

Ahora que ya conoce en parte cómo Microsoft Excel 2010 expone su modelo de objetos, puede intentar llamar a los métodos de un objeto y establecer las propiedades del objeto. Para hacerlo, debe escribir el código en un lugar y de una manera que Office pueda comprender; generalmente, mediante el uso del Editor de Visual Basic. Aunque se instala de forma predeterminada, muchos usuarios ni siquiera saben que está disponible hasta que no se habilita en la cinta de opciones.

Ficha Programador

Todas las aplicaciones de Office 2010 usan la cinta de opciones. La ficha Programador es una de las fichas incluidas en la cinta de opciones, donde se puede tener acceso al Editor de Visual Basic y a otras herramientas de programador. Debido a que Office 2010 no muestra la ficha Programador de manera predeterminada, debe habilitarla mediante el siguiente procedimiento:

Para habilitar la ficha Programador

1. En la ficha Archivo, elija Opciones para abrir el cuadro de diálogo Opciones de Excel.

2. Haga clic en Personalizar cinta de opciones en el lado izquierdo del cuadro de diálogo.

3. En Comandos disponibles en:, en el lado izquierdo del cuadro de diálogo, seleccione Comandos más utilizados.

4. En Personalice esta cinta de opciones, en el lado derecho del cuadro de diálogo, seleccione Fichas principales y, a continuación, active la casilla de verificación Programador.

5. Haga clic en Aceptar.

Después de que Excel muestre la ficha Programador, observe la ubicación de los botones Visual Basic, Macros y Seguridad de macros en la ficha.

25

Page 26: balanceo de lineas y calculo de parametros electricos en excel

Figura 1. Ficha Programador en Excel 2010

Problemas de seguridad

Haga clic en el botón de Seguridad de macros para especificar qué macros pueden ejecutarse y en qué condiciones. Aunque el código de macros de sistemas no confiables puede dañar gravemente el equipo, las condiciones de seguridad que impiden ejecutar macros útiles pueden disminuir en gran medida la productividad. La seguridad de macros es un tema complejo que se debe estudiar y comprender, si se trabaja con macros de Excel.

Para el propósito de este artículo, tenga en cuenta que si la barra Advertencia de seguridad: las macros se han deshabilitado aparece entre la cinta de opciones y el libro, cuando abre un libro que contiene una macro, puede hacer clic en el botón Habilitar contenido para habilitar las macros.

Además, como medida de seguridad, no puede guardar una macro en el formato de archivo predeterminado de Excel (.xlsx); debe guardar la macro en un archivo con extensión especial (.xlsm).

Editor de Visual Basic

El siguiente procedimiento muestra cómo crear un nuevo libro en blanco donde se almacenarán las macros. A continuación, podrá guardar el libro con el formato .xlsm.

Para crear un nuevo libro en blanco

1. Haga clic en el botón Macros, de la ficha Programador.2. En el cuadro de diálogo Macro que aparece, escriba Hello en Nombre de macro.3. Haga clic en el botón Crear para abrir el Editor de Visual Basic que incluirá los

esquemas de una nueva macro ya escritos.

VBA es un lenguaje de programación completo y, en consecuencia, tiene un entorno de programación completo. En este artículo solo se estudian las herramientas que se usan para empezar a trabajar en programación sin incluir la mayoría de las herramientas del Editor de Visual Basic. Realizada esta salvedad, cierre la ventana Propiedades en el lado izquierdo del Editor de Visual Basic e ignore las dos listas desplegables que aparecen sobre el código.

26

Page 27: balanceo de lineas y calculo de parametros electricos en excel

Figura 2. Editor de Visual Basic

El Editor de Visual Basic contiene el siguiente código.

VB

Sub Hello()

End Sub

Sub se refiere a Subrutinaque, por el momento, se puede definir como "macro". Al ejecutar la macro Hello se ejecuta cualquier código que se encuentre entre Sub Hello() y End Sub.

Ahora, edite la macro para que tenga un aspecto similar al siguiente código.

VB

Sub Hello() MsgBox ("Hello, world!")End Sub

Vuelva a la ficha Programador en Excel y haga clic de nuevo en el botón Macros.

Seleccione la macro Hello en la lista que aparece y, a continuación, haga clic en Ejecutar para mostrar un cuadro de mensaje pequeño que contiene el texto "Hello, world!".

Acaba de crear e implementar correctamente código de VBA personalizado en Excel. Haga clic en Aceptar en el cuadro de mensaje para cerrarlo y terminar de ejecutar la macro.

Si no aparece el cuadro de mensaje, compruebe la configuración de seguridad de la macro y reinicie Excel.2

27

Page 28: balanceo de lineas y calculo de parametros electricos en excel

Un ejemplo real

Supongamos que tiene un libro que contiene listas en una gran cantidad de hojas de cálculo y que desea cambiar el nombre de cada hoja de cálculo para que coincida con el encabezado de la lista de esa hoja de cálculo. No todas las hojas de cálculo contienen una lista. Si una hoja de cálculo tiene una lista, el encabezado está en la celda B1, de lo contrario, si no tiene una lista, la celda B1 está en blanco. Los nombres de hojas de cálculo sin listas no deben modificarse.

Normalmente, esto podría tratarse de una tarea compleja que implica ver cada hoja de cálculo para saber si tiene una lista, copiar el nombre de la lista en caso de que exista, hacer clic en la ficha de hoja de cálculo y luego pegar el nuevo nombre. En lugar de realizar todos estos pasos manualmente, use VBA de Excel para cambiar el nombre de las hojas de forma automática.

Aprendizaje sobre objetos

Para resolver un problema de programación de VBA, primero debe saber qué objetos manipulará el código. Para investigar y conocer esa información, una herramienta esencial es la referencia del modelo de objetos de Excel, que forma parte de la referencia del programador de Excel 2007 en Microsoft Developer Network (MSDN).

Estos materiales de referencia se actualizarán para Excel 2010 cuando la herramienta esté disponible al público; sin embargo, la referencia del programador de Excel 2007 se adecua a la mayoría de los casos de Excel 2010.

Figura 3. Referencia del modelo de objetos de Excel en MSDN

28

Page 29: balanceo de lineas y calculo de parametros electricos en excel

El primer paso consiste en averiguar cómo manipular los objetos concretos con los que necesita trabajar para llevar a cabo su tarea; por ejemplo, hojas de cálculo, nombres de hoja de cálculo, celdas y contenidos de celdas. En Excel, hay al menos dos formas de enfocar el problema:

Ir directamente a la referencia del modelo de objetos. Grabar algunas de las acciones que se desean automatizar, ver cómo el código

grabado manipula los objetos y, a continuación, ir a la referencia del modelo de objetos para obtener más información.

Las opiniones varían con respecto a qué enfoque es preferible, pero por ahora, intente primero usar la grabadora de macros.

Uso de la grabadora de macros

A veces una simple macro grabada es todo lo que se necesita; en estos casos, incluso, no es necesario mirar el código. Por lo general, la grabación por sí sola no es suficiente, pero sí, un punto de inicio en el siguiente proceso.

Para usar la grabadora de macros como punto de inicio de la solución

1. Grabe las acciones que desea codificar.2. Revise el código y busque las líneas que realizan esas acciones.3. Elimine el resto del código.

29

Page 30: balanceo de lineas y calculo de parametros electricos en excel

4. Modifique el código grabado.5. Agregue variables, estructuras de control y otro código que la grabadora de macros

no pueda grabar.

Comience su investigación con la grabación de una macro que cambie el nombre de una hoja de cálculo a New Name. Después podrá usar la macro grabada para crear su propia macro que cambie el nombre de varias hojas de cálculo según su contenido.

Para grabar una macro que cambie el nombre de una hoja de cálculo

1. Haga clic en Grabar macro en la ficha Programador.2. Coloque el nombre RenameWorksheets a la macro, cambie el nombre Sheet1 a New

Name y, a continuación, haga clic en Detener grabación. 3. Vaya a la ficha Programador o Ver, haga clic en el botón Macros y elija Editar para

abrir el Editor de Visual Basic.

En el Editor de Visual Basic, el código debe verse similar al siguiente.

VB

Sub RenameWorksheets()'' RenameWorksheets Macro'' Sheets("Sheet1").Select Sheets("Sheet1").Name = "New Name"End Sub

Las primeras cuatro líneas que aparecen después de la línea Sub son comentarios. Toda línea que comienza con un apóstrofe es un comentario y no tiene efecto alguno sobre la acción que ejecuta la macro. Los principales usos de los comentarios son los siguientes:

Facilitar la comprensión del código, no solo para usted, sino para cualquier persona que necesite modificarlo en el futuro.

Deshabilitar temporalmente una línea de código (se denomina marcar como comentario).

Los cuatro comentarios en esta macro grabada no cumplen ningún propósito, por lo tanto, elimínelos.

La siguiente línea usa el método Select para seleccionar el miembro Sheet1 del objeto de la colección Sheets. En el código de VBA, por lo general, no es necesario seleccionar objetos antes de manipularlos, aunque eso es lo que hace la grabadora de macros. En otras palabras, esta línea de código es redundante, por lo tanto, puede eliminarla.

30

Page 31: balanceo de lineas y calculo de parametros electricos en excel

La última línea de la macro grabada modifica la propiedad Nombre del miembro Sheet1 de la colección Sheets. Esta es la línea que debe conservar.

Después de realizar los cambios, el código grabado ahora debe ser similar al siguiente.

VB

Sub RenameWorksheets() Sheets("Sheet1").Name = "New Name"End Sub

Vuelva a cambiar la hoja denominada New Name a Sheet1 de forma manual y, a continuación, ejecute la macro. El nombre debe volver a cambiar a New Name.

Modificación del código grabado

Ahora ha llegado el momento de investigar la colección Sheets que la grabadora de macros usó. El tema Sheets en la referencia del modelo de objetos incluye el siguiente texto.

"La colección Sheets puede contener los objetos Chart o Worksheet. Si necesita trabajar con hojas de un solo tipo, consulte el tema de objetos para ese tipo de hoja".

Como está trabajando solo con Worksheets, entonces, cambie el código para que se vea de la siguiente forma.

VB

Sub RenameWorksheets() Worksheets("Sheet1").Name = "New Name"End Sub

Función de bucle

Una limitación del código en este punto es que solo realiza el cambio en una hoja de cálculo. Se puede agregar otra línea para cada hoja de cálculo cuyo nombre desea cambiar, pero ¿qué sucede si desconoce cuántas hojas de cálculo hay o cuáles son sus nombres actuales? Se necesita una forma de aplicar alguna regla para cada hoja de cálculo del libro.

VBA tiene una construcción denominada bucle For Each que es ideal. El bucle For Each examina cada elemento en un objeto de colección, como Worksheets, y se puede usar para llevar a cabo una acción (como cambiar un nombre) en algunos o en todos esos elementos.

31

Page 32: balanceo de lineas y calculo de parametros electricos en excel

Para obtener más información acerca del bucle For Each, consulte la referencia del lenguaje de VBA. Haga clic en la sección sobre los temas conceptuales de Visual Basic y, a continuación, en el tema sobre el uso de instrucciones For Each...Next. Además, tenga en cuenta que la referencia del lenguaje de VBA, como la referencia del modelo de objetos, compensará ampliamente el tiempo que invierta examinándola, ya que es un lugar excelente para buscar ideas si se estanca cuando trabaja con código.

Use el tercer ejemplo del tema sobre el uso de instrucciones For Each...Next para modificar la macro con el fin de que tenga un aspecto similar al siguiente código.

VB

Sub RenameWorksheets()For Each myWorksheet In Worksheets myWorksheet.Name = "New Name"NextEnd Sub

myWorksheet es una variable, es decir, lo que representa varía. En este caso, la variable myWorksheet representa sucesivamente cada hoja de cálculo en la colección Worksheets. No es necesario usar myWorksheet; se puede usar "x", "ws", "HojaCalculoCambiarNombreAlContenidoCeldaB1" o (con algunas restricciones) prácticamente cualquier nombre que se desee. Una buena regla es usar nombres de variables que sean lo suficientemente extensos como para que recuerden a qué se refieren, pero no tan extensos que puedan recargar el código.

Si ejecuta la macro en su estado actual, se produce un error porque Excel requiere que cada hoja de cálculo de un libro tenga un nombre único. Sin embargo, la línea siguiente indica a Excel que asigne a todas las hojas de cálculo el mismo nombre.

VB

myWorksheet.Name = "New Name"

Para corregir la línea y comprobar si el bucle For Each funciona, cambie la línea de la siguiente manera.

VB

myWorksheet.Name = myWorksheet.Name & "-changed"

32

Page 33: balanceo de lineas y calculo de parametros electricos en excel

En lugar de intentar dar el mismo nombre a cada hoja de cálculo, esta línea cambia el nombre actual de cada hoja de cálculo (myWorksheet.Name) anexando la palabra "-changed" al nombre actual.

Cambio de nombre útil

La macro se está acercando a lo que podría ser la solución para el problema que tiene en este momento. Lo que necesita ahora es tomar información de las hojas de cálculo, específicamente de la celda B1 de cada hoja, y colocar esa información en los nombres de las hojas de cálculo.

Esta vez, en vez de usar la grabadora de macros para averiguar cómo referirse a una celda, pruebe y vea si usando el objeto Cell logra su objetivo. Es un buen intento, pero si abre la referencia del modelo de objetos y busca el objeto Cell, notará que no existe ningún objeto Cell. En cambio, hay un objeto CellFormat.

El tema del objeto CellFormat incluye el siguiente código en el primer ejemplo de código.

VB

' Set the interior of cell A1 to yellow. Range("A1").Select

Resulta ser que usa Range para especificar un rango de celdas o simplemente una celda individual. Nuevamente, no es necesaria la parte .Select, pero sí es necesario averiguar cómo hacer referencia a los contenidos del objeto Range, en oposición al mismo objeto Range. Si se dirige al tema del objeto Range, puede leer que Range tiene Methods y Properties. Los contenidos de Range constituyen una cosa, no una acción, por lo que probablemente sea una Property. Si busca hacia abajo en la lista, podrá ver la propiedad Value. Por lo tanto, intente lo siguiente.

VB

Sub RenameWorksheets()For Each myWorksheet In Worksheets myWorksheet.Name = myWorksheet.Range("B1").ValueNextEnd Sub

Obtendrá un error si ejecuta esto en un libro que contiene hojas de cálculo donde la celda B1 está vacía, porque Range vacío tiene un valor de "" (una cadena de texto vacía), que no es un nombre de hoja de cálculo válido. De todas formas, ya es momento de crear algunos datos de ejemplo. Haga que las tres hojas de cálculo del libro tengan un aspecto similar al de la siguiente figura y, a continuación, ejecute la macro.

33

Page 34: balanceo de lineas y calculo de parametros electricos en excel

Figura 4. Datos de ejemplo para la macro RenameWorksheets

 

 

 

Los nombres de las hojas de cálculo deben cambiar en consecuencia.

Búsqueda de celdas vacías

Como mencionamos anteriormente, la macro genera un error si alguna de las celdas B1 en el libro está vacía. En lugar de revisar manualmente todas las hojas de cálculo, puede codificar la macro para que haga esto por usted. Antes de la línea myWorksheet.Name, agregue la siguiente línea de código.

VB

If myWorksheet.Range("B1").Value <> "" Then

Después de la línea myWorksheet.Name agregue el texto siguiente.

VB

34

Page 35: balanceo de lineas y calculo de parametros electricos en excel

End If

Esto se denomina una instrucción If…Then. La instrucción If…Then indica a Excel que haga lo que se indica entre la línea If y la línea End, pero solo si se cumple la condición en la línea If. En el ejemplo, la siguiente línea especifica la condición que se debe cumplir.

VB

myWorksheet.Range("B1").Value <> ""

La línea <> significa "no es igual a" y las comillas sin contenido en su interior representan una cadena de texto vacía, es decir, no hay texto en absoluto. Por lo tanto, cualquier línea de código que esté entre If y End se ejecutará únicamente si el valor de la celda B1 no es igual a nada, es decir, si hay texto en la celda B1.

Para obtener más información acerca de la instrucción If…Then, consulte la referencia del lenguaje de VBA. (El nombre completo de la instrucción es "If…Then…Else", donde Else es un componente opcional).

Declaraciones de variables

Otra mejora que debe hacer en la macro es poner una declaración de la variable myWorksheet al principio de la macro.

VB

Dim myWorksheet As Worksheet

Dim es la abreviatura de "Dimension" y Worksheet es el tipo de esta variable en particular. Esta instrucción indica a VBA qué tipo de entidad myWorksheet representa. Observe que después de escribir As, el Editor de Visual Basic muestra una ventana emergente que incluye todos los tipos de variables disponibles. Eso es un ejemplo de la tecnología IntelliSense; es decir, que el Editor de Visual Basic responde a lo que determina que se está intentando hacer y ofrece una lista de opciones apropiadas. Puede elegir una opción de la lista o seguir escribiendo.

Aunque las declaraciones de variables no son necesarias en VBA, su uso es muy recomendable. Estas declaraciones hacen que el seguimiento de variables y errores en el código sean más fáciles de realizar. Asimismo, tenga en cuenta que si declara una variable con un tipo de objeto (como Worksheet), IntelliSense mostrará una lista adecuada de propiedades y métodos asociados con ese objeto si usa esa variable de objeto más adelante en la macro.

35

Page 36: balanceo de lineas y calculo de parametros electricos en excel

Comentarios

La macro es lo suficientemente compleja ahora y se necesitarían incluir algunos comentarios que recuerden lo que hace el código. La cantidad de comentarios que se va a usar en parte se debe a una cuestión de estilo personal, pero, en general, es mejor que sean más que menos. El código generalmente necesita modificaciones y actualizaciones con el tiempo. Sin comentarios, podría ser difícil comprender lo que sucede en el código, especialmente si la persona que lo modifica no es la misma persona que lo escribe en primer lugar. Al agregar comentarios para la condición If y para la línea que cambia el nombre de las hojas de cálculo, se obtiene el siguiente código.

VB

Sub RenameWorksheets()Dim myWorksheet As WorksheetFor Each myWorksheet In Worksheets 'make sure that cell B1 is not empty If myWorksheet.Range("B1").Value <> "" Then 'rename the worksheet to the contents of cell B1 myWorksheet.Name = myWorksheet.Range("B1").Value End IfNextEnd Sub

Para probar la macro, vuelva a cambiar el nombre de las hojas de cálculo a Sheet1, Sheet2 y Sheet3, y elimine los contenidos de la celda B1 en una o más hojas de cálculo. Ejecute la macro para comprobar si cambia los nombres de las hojas de cálculo que tienen texto en la celda B1 y si deja las otras hojas sin modificaciones. La macro funciona para cualquier cantidad de hojas de cálculo, con cualquier combinación de celdas B1 llenas y vacías.

Más cosas que se pueden hacer con VBA

Esta sección estudia algunas otras cosas que se pueden hacer con VBA en Excel 2010. Los ejemplos de esta sección están diseñados para proporcionar una idea de las funciones de VBA en lugar de centrarse en escenarios reales específicos. A medida que trabaja con los ejemplos, quizá le resulte útil repasar información sobre los objetos en cada paso. Puede encontrar esta información en la referencia del modelo de objetos.

Importancia de una actitud abierta

Una buena forma de aprender programación en general, y VBA de Excel en particular, es adoptar una estrategia que implique intentar algo, ver si funciona y preguntarse cosas como:

¿Qué podría intentar hacer a continuación?

36

Page 37: balanceo de lineas y calculo de parametros electricos en excel

¿Qué deseo aprender en primer lugar según el uso que necesito darle a VBA? ¿Qué puede ser simplemente divertido o interesante saber? ¿Qué despierta mi curiosidad?

Se recomienda encarecidamente al lector que investigue todos los caminos que se abren hacia la ruta del conocimiento.

Gráficos

Una tarea común en Excel es crear un gráfico basado en un rango de celdas. Cree una nueva macro llamada AssortedTasks y, a continuación, escriba el siguiente texto en el Editor de Visual Basic.

VB

Dim myChart As ChartObject

Agregue una línea para crear el objeto de gráfico y asígnele la variable myChart.

VB

Set myChart = ActiveSheet.ChartObjects.Add(100, 50, 200, 200)

Los números en los paréntesis determinan la posición y el tamaño del gráfico. Los primeros dos números son las coordenadas de la esquina superior izquierda y los segundos dos números corresponden al ancho y alto.

Cree una nueva hoja de cálculo en blanco y ejecute la macro. El gráfico que se crea no sirve porque no tiene datos. Elimine el gráfico que acaba de crear y agregue las siguientes líneas al final de la macro.

VB

With myChart .Chart.SetSourceData Source:=SelectionEnd With

Este es un patrón común en la programación de VBA. Primero crea un objeto, le asigna una variable y, a continuación usa la construcción With…End With para realizar tareas con el objeto. El código de ejemplo le indica al gráfico que use la selección actual para sus datos. (Selection es un valor para el parámetro Source del método SetSourceData, no un valor de

37

Page 38: balanceo de lineas y calculo de parametros electricos en excel

una propiedad del objeto; por lo tanto, la sintaxis de VBA requiere que use dos puntos y el signo igual [:=] en lugar de usar solo el signo igual [=] para asignar el valor.)

Escriba algunos números en las celdas A1:A5, seleccione las celdas y, a continuación, ejecute la macro. El gráfico se muestra como el tipo predeterminado, un gráfico de barras.

Figura 5. Gráfico de barras creado mediante VBA

Si no le gusta el gráfico de barras, puede cambiar a algún otro tipo de gráfico usando código similar al siguiente.

VB

With myChart .Chart.SetSourceData Source:=Selection .Chart.ChartType = xlPieEnd With

xlPie es un ejemplo de una constante integrada, también conocida como constante enumerada. Toda la aplicación Excel tiene varias de estas constantes que se encuentran muy bien documentadas. Para obtener más información acerca de las constantes integradas,

38

Page 39: balanceo de lineas y calculo de parametros electricos en excel

consulte la sección sobre enumeraciones de la referencia del modelo de objetos. Por ejemplo, las constantes para tipos de gráfico se indican en la sección sobre enumeraciones XlChartType.

Los datos se pueden modificar. Por ejemplo, intente agregar esta línea justo después de la declaración de variable.

VB

Application.ActiveSheet.Range("a4").Value = 8

Puede obtener una entrada de usuario y usar esa entrada para modificar los datos.

VB

myInput = InputBox("Please type a number:")Application.ActiveSheet.Range("a5").Value = myInput

Por último, agregue las líneas siguientes al final de la macro.

VB

ActiveWorkbook.SaveActiveWorkbook.Close

La macro completa debería ser similar a la siguiente.

VB

Sub AssortedTasks()Dim myChart As ChartObjectApplication.ActiveSheet.Range("a4").Value = 8myInput = InputBox("Please type a number:")Application.ActiveSheet.Range("a5").Value = myInputSet myChart = ActiveSheet.ChartObjects.Add(100, 50, 200, 200)With myChart .Chart.SetSourceData Source:=Selection .Chart.ChartType = xlPieEnd WithActiveWorkbook.SaveActiveWorkbook.CloseEnd Sub

39

Page 40: balanceo de lineas y calculo de parametros electricos en excel

Compruebe que las celdas A1:A5 sigan estando seleccionadas, ejecute la macro, escriba un número en el cuadro de entrada y, a continuación, haga clic en Aceptar. El código guarda y cierra el libro. Vuelva a abrir el libro y observe el cambio en el gráfico circular.

UserForms

La sección anterior mostraba cómo usar un cuadro de entrada sencillo para obtener una entrada de usuario. Además del correspondiente cuadro de mensaje que muestra información, VBA proporciona amplias funcionalidades que puede usar para crear cuadros de diálogo personalizados, para codificar controles que se colocan directamente en las hojas de cálculo o para manipular los cuadros de diálogo que están integrados en Excel. Para obtener más información acerca de estas funcionalidades, consulte controles, cuadros de diálogo y formularios en la referencia del programador de Excel 2007.

Esta sección completa la introducción a VBA en Excel presentando un panorama general de UserForms.

En la ficha Programador, haga clic en el botón Visual Basic para abrir el Editor de Visual Basic y, a continuación, vaya al menú Insertar y elija UserForm para abrir la vista Diseño de UserForm.

Verá dos ventanas. Una representa el UserForm que está creando y la otra, el Cuadro de herramientas, muestra los distintos controles que puede agregar a su UserForm; por ejemplo, botones de comandos, botones de opciones, casillas de verificación, entre otros. Puede mover el mouse sobre un control del Cuadro de herramientas para ver qué tipo de control crea.

Cree un UserForm muy sencillo con un solo botón que ejecute la macro Hello que creamos al comienzo de este artículo. En el Cuadro de herramientas, presione el control CommandButton y, a continuación, arrástrelo al UserForm para crear un botón de comando. Haga clic con el botón secundario en el botón de comando y elija Ver código.

La Sub que aparece es un esqueleto para un procedimiento de evento que se ejecuta cuando se produce un evento en particular. En este caso, como el nombre de Sub indica, el evento que ejecuta el código es un Click en CommandButton1. Agregue la siguiente línea al procedimiento de evento.

VB

Run("Hello")

El Editor de Visual Basic debe ser ahora similar al siguiente.

Figura 6. Procedimiento de evento CommandButton1_Click

40

Page 41: balanceo de lineas y calculo de parametros electricos en excel

Guarde el libro, vaya al menú Ventana y elija UserForm1 (UserForm) para volver a mostrar el UserForm. Haga clic en la flecha verde de la barra de herramientas para ejecutar el UserForm. Cuando aparece el cuadro de diálogo, haga clic en el botón de comando para ejecutar la macro Hello, que muestra el cuadro de mensaje "Hello, world!". Cierre el cuadro de mensaje para volver al UserForm que se ejecuta y, a continuación, cierre el UserForm que se ejecuta para volver a la Vista Diseño.

¿Qué sigue?

Es posible que la información que se brinda en este artículo, combinada con un poco de experimentación y tiempo de estudio de la referencia del modelo de objetos y la referencia del lenguaje de VBA, le resulte lo suficientemente útil como para lograr cualquier tarea que lo impulsa a empezar a aprender sobre VBA. Si es así, excelente. De lo contrario, un buen paso es ampliar sus expectativas hacia un conocimiento más general de VBA.

Una manera de aprender más sobre VBA es estudiar código activo. Además de los ejemplos proporcionados en la referencia del modelo de objetos y la referencia del lenguaje de VBA, hay una cantidad enorme de código de VBA en Excel disponible en distintas fuentes en línea, incluidos los artículos en MSDN, sitios web desarrollados por los profesionales más valiosos de Microsoft (MVP) que se especializan en Excel y otros sitios web que puede encontrar mediante una búsqueda rápida en Web.

El código de estos recursos puede ayudarlo a resolver problemas inmediatos de programación y proporcionarle ideas para proyectos que ni siquiera ha pensado aún.

Si prefiere realizar un estudio más sistemático de VBA, pueden encontrar varios libros sobre VBA, así como varias revisiones de cada uno de estos libros disponibles en Web que pueden ser útiles para elegir su mejor forma de aprendizaje.

Características principales de Visual Basic

41

Page 42: balanceo de lineas y calculo de parametros electricos en excel

La facilidad que nos da este programa es el de arrastrar todos los objetos que necesitemos incluir en nuestros programas, así nos evitamos el trabajo de programar algo más, lo único que tenemos que hacer es declar que es lo que tiene que hacer nuestro objeto.

Componentes, características físicas o entorno de Visual Basic

Unos de los componentes de Visual Basic es la barra de título, donde nos muestra el nombre del proyecto y del formulario que se está haciendo.

La barra de menús, es donde se agrupan los menús de Visual Basic.

La barra de herramientas estándar de Visual Basic es otro componente de Visual Basic es donde tienen agrupaos los botones utilizados con frecuencia, así evitando poner en menú, archivo, etc.

La barra de herramientas no estándar, dentro de visual Basic es donde se agrupan la gran mayoría de objetos y controles que se incluirán en nuestro proyecto.

La ventana de propiedades dentro de lo que es Visual Basic es donde podemos ver las características modificables y no modificables del mismo.

42

Page 43: balanceo de lineas y calculo de parametros electricos en excel

La ventana de posición de los formularios, ahí podemos ver la ubicación de cada uno de los formularios al momento de la ejecución del programa, los podemos ubicar a nuestro gusto modificando su lugar al momento del diseño.

La ventana de ayuda o Help que dispone Visual Basic 0.6 excelente, al igual que en todos los demás programas de Microsoft, tiene una funcionalidad muy buena ya que tan solo al señalar un objeto y luego oprimir la tecla F1 saldrá información sobre el objeto señalado, algo muy práctico.

La Ventana de proyectos, nos deja ver los elementos involucrados dentro del proyecto, como formularios, módulos, controles OCX, etc.

43

Page 44: balanceo de lineas y calculo de parametros electricos en excel

El editor de código es un componente de Visual Basic 0.6 muy importante, es donde nosotros ingresamos nuestro código para así generar un evento. Utiliza varios colores para las líneas de código, como el negro que es escrito por el usuario, las palabras claves con azul, los comentarios con verde, los errores con color rojo.

44

Page 45: balanceo de lineas y calculo de parametros electricos en excel

Preguntas sobre Visual Basic 6.0

¿Qué es un evento?

Un evento es una acción que realiza el usuario hacia un objeto, asi como cuando hacemos un click sobre un botón y la acción de hacer click sobre el botón se llama “evento click” Cada vez que se produce un evento sobre un determinado control, se pasa a el procedimiento que realiza la acción programada por el usuario para ese evento concreto.

Private Sub Command1_Click

End Sub

¿Qué es método?

Los métodos son también funciones que son llamadas desde el programa, que en diferencia con los procedimientos no son programadas por el usuario. Cada tipo de objeto o de control tienen sus propios métodos, asi como también tienen propiedades y eventos.

¿Qué son los controles?

Un control es un elemento grafico que forma parte de una aplicación asi como: botones, cajas de texto, los graficos y muchos mas son controles para Visual Basic. Cada control tiene su nombre del cual se lo puede diferenciar dentro del programa, ya vienen por defecto con sus nombres respectivamente pero los usuarios podemos modificar o cambiar sus nombres.

¿Qué son las propiedades?

Todo control u objeto dentro de Visual Basic tiene sus propias propiedades, unas distintas de otras. Por lo general las propiedades de un objeto son datos que tiene valores lógicos (true, false). En fin son cualidades propias de cada control u objeto.

¿Qué es un objeto?

A los controles que colocamos en un formulario que poseen propiedades, métodos y eventos, se les llaman objetos y a las características propias de esos objetos se les llaman propiedades.

¿Qué es una función de Visual Basic 6.0?

Existen varias funciones de cadena, que ya vienen en visual Basic 6.0 y solo hay que llamarlas y utilizarlas.

45

Page 46: balanceo de lineas y calculo de parametros electricos en excel

Funciones de cadenas

Se podría decir que “Cadena” es una sucesión de caracteres. Una cadena puede tener uno o varios caracteres numéricos como también con letras (Alfanumérico).

Str ---> (número) Convierte un número a una cadena en numeración decimal.

Val --> (cadena numérica) convierte un valor sea texto, y lo toma como valor numérico

Un número tiene un valor, pero también tiene una presentación escrita. El valor es algo que estará en el ordenador como una sucesión de bits.

Funciones con números

Visual Basic también puede operar con números. Los operadores que utiliza para las operaciones básicas son:

+ --> Suma

- --> Resta

* --> Multiplicación

/ --> División

\ --> División sin decimales

Mod --> Resto de una división o residuo

^ --> Eleva a un exponente

Otras Funciones

Sqr --> Raíz cuadrada Devuelve la raíz cuadrada de un número

Exp --> Exponenciación Devuelve el número elevado al exponente indicado

Log --> Logaritmo Devuelve el logaritmo natural de ese número

Como sabemos Visual Basic solo admite dos resultados, True (Verdadero) o False (Falso) Estos operadores son:

= --> Igual que

<> --> No igual que

46

Page 47: balanceo de lineas y calculo de parametros electricos en excel

< --> Mayor que

<= --> Mayor o igual que

> --> Menor que

Funciones Trigonométricas

Sin --> Seno Devuelve el valor del seno de un ángulo.

Cos --> Coseno Devuelve el coseno de un ángulo (En radianes)

Tan --> Tangente Devuelve la tangente de un ángulo

Arc Tang.--> Arco Tang. Devuelve un arco cuya tangente sea el número (Angulo en radianes) (n-1) --> arco tangente

Numeros Aleatorios

Randomize --> (Numero)

Ejercicios

Aquí veremos la utilización de algunos controles.

* Botón de comando o CommandButton.

1.Utilizaremos el evento click -> ocurre cuando el usuario presiona el botón. Una vez estando en el formulario, procedemos a poner un botón de comando o command Button, hacemos doble click sobre el botón de comando y en la parte superior derecha seleccionamos el evento click .Escriba la siguiente línea de código:

Private Sub command1_Click( )

Msgbox (“Hola como estas..?”)

End Sub

Después de haber hecho lo propuesto, presionamos F5 y hacemos click sobre el botón. Saldrá un mensaje diciendo Hola como estas..?

47

Page 48: balanceo de lineas y calculo de parametros electricos en excel

Objetos y clases

Un objeto es una combinación de código y datos que puede tratarse como una unidad. Un objeto puede ser una porción de una aplicación, como un control o un formulario. Una aplicación entera también puede ser un objeto.

Reutilizar el código

Los objetos permiten declarar variables y procedimientos una vez y utilizarlos siempre que sean necesarios. Por ejemplo, si desea agregar un corrector ortográfico a una aplicación, puede definir todas las variables y funciones auxiliares para proporcionar funcionalidad de corrección ortográfica. Si crea el corrector ortográfico como una clase, puede volver a utilizarlo en otras aplicaciones mediante la inclusión de una referencia en el ensamblado compilado. Aún mejor, tal vez pueda ahorrarse trabajo mediante el uso de una clase de corrector ortográfico que otra persona ya haya desarrollado.

Clases

Cada objeto de Visual Basic está definido por una clase. Una clase describe las variables, propiedades, procedimientos y eventos de un objeto. Los objetos son instancias de clases; pueden crearse tantos objetos como sean necesarios una vez que se defina una clase.

Para comprender la relación entre un objeto y su clase, piense en los moldes de hacer galletas y en las galletas. El molde es la clase. Define las características de cada galleta, por ejemplo, el tamaño y la forma. La clase se utiliza para crear objetos. Los objetos son las galletas.

Dos ejemplos en Visual Basic podrían ayudar a ilustrar la relación entre las clases y objetos.

Los controles en el Cuadro de herramientas de Visual Basic representan las clases. Cuando se arrastra un control del Cuadro de herramientas a un formulario, se está creando un objeto; una instancia de una clase.

El formulario con el que se trabaja en tiempo de diseño es una clase. En tiempo de ejecución, Visual Basic crea una instancia de la clase del formulario, es decir, un objeto.

48

Page 49: balanceo de lineas y calculo de parametros electricos en excel

Varias instancias

Los objetos recientemente creados a partir de una clase son a menudo idénticos. Una vez que existen como objetos individuales no obstante, sus variables y propiedades se pueden cambiar independientemente de las demás instancias. Por ejemplo, si agrega tres casillas de verificación a un formulario, cada objeto de botón de casilla de verificación es una instancia de la clase CheckBox. Los objetos CheckBox individuales comparten un conjunto de características y funciones comunes (propiedades, variables, procedimientos y eventos) definidos por la clase. No obstante, cada uno tiene su propio nombre, puede habilitarse y deshabilitarse por separado, y puede colocarse en una ubicación diferente en el formulario.

Para crear un objeto a partir de una clase

1. Determine en qué clase desea crear un objeto.2. Escriba Instrucción Dim (Visual Basic) para crear una variable a la que puede

asignar una instancia de clase. La variable debe ser del tipo de la clase deseada.

Dim nextCustomer As customer

3. Agregue la palabra clave New (Visual Basic) para inicializar la variable a una nueva instancia de la clase.

Dim nextCustomer As New customer

4. Puede tener acceso a los miembros de la clase ahora a través de la variable de objeto.

nextCustomer.accountNumber = lastAccountNumber + 1

Controles Estándar de Visual Basic

PictureBox - Cajas de Imagen

Label - Etiquetas

49

Page 50: balanceo de lineas y calculo de parametros electricos en excel

TextBox - Cajas de texto

Frame - Marcos

CommandButton - Botones de comando

CheckBox

OptionButton - Botones de opción

ListBox y Control ComboBox

HScrollBar y VScrollBar - Barras de desplazamiento

Timer - Temporizadores

DriveListBox , FileListBox y DirListBox

Image - Control de imagen

Data

Data - 2

-- Indice :

Descripción del control PictureBox

Propiedad Picture

Propiedad AutoSize

Usar el PictureBox como contenedor

Propiedad Container

Propiedad Autoredraw

Guardar la imagen del picturebox como BMP

Propiedad Image

Dibujar en un picturebox con los métodos gráficos

Enlaces relacionados

Descripción del control PictureBox

El control PictureBox se utiliza para mostrar y cargar archivos de imagen, también para dibujar figuras mediante los métodos gráficos , y también como control contenedor de otros controles, como los controles Frame

50

Page 51: balanceo de lineas y calculo de parametros electricos en excel

Vista de un picturebox con un gráfico cargado

 

Vista de un PictureBox con un dibujo hecho por nosotros, en este caso un rectángulo :

 

Propiedad Picture

La principal propiedad del control PictureBox se llama precisamente Picture.

Esta propiedad es la que indica el gráfico que estará cargado. Para cargar un gráfico en visual basic desde el disco, se usa la función LoadPicture . A Esta función le debemos indicar como parámetro la ruta del fichero

51

Page 52: balanceo de lineas y calculo de parametros electricos en excel

Por ejemplo si quisiera cargar un archivo de imagen llamado paisaje.jpg que está ubicado en la unidad c:, y que se cargue cuando le damos un click a un CommandButton, tendriamos que hacer esto:

Texto plano Imprimir

1. Option Explicit  2.   3. Private Sub Command1_Click()  4.     ' -- Le indicamos al método LoadPicture la ruta del gráfico  5.     With Picture1  6.         .Picture = LoadPicture("c:\paisaje.jpg")  7.     End With  8. End Sub  

De esta manera estamos cargando el archivo en tiempo de ejecución. Se dice tiempo de ejecución ya que el archivo lo estamos cargando cuando está corriendo el programa. En cambio si quisiéramos cargar el archivo gráfico en tiempo de diseño, tendríamos que seleccionar el control Picture que colocamos en el formulario, ir a la ventana de propiedades de Visual basic, buscar la propiedad Picture, y seleccionar mediante un cuadro de diálogo de windows, buscarlo en la Pc, y cargar el archivo que queramos. Luego de hacer esto, automáticamente se cargaría la imagen en el control.

Nota : El archivo de imagen, Debe ser obligatoriamente un gráfico gif, jpg, bmp, ico, cur . No asi otros formatos, como por ejemplo el PNG, o Tiff. ( Aunque se puede leer estos formatos, pero mediante otras técnicas, utilizando el api de windows )

Propiedad Autosize

Esta propiedad lo que hace es adaptar o ajustar el control a las dimensiones del gráfico cargado.

52

Option Explicit

Private Sub Command1_Click() ' -- Le indicamos al método LoadPicture la ruta del gráfico With Picture1 .Picture = LoadPicture("c:\paisaje.jpg") End WithEnd Sub

Page 53: balanceo de lineas y calculo de parametros electricos en excel

Los posibles valores que le podemos dar son True o False. Si le pasamos True el control se autoajusta al tamaño de la imagen, si le pasamos False el control queda con el ancho y alto sin autoajustarse al gráfico

Esta captura muestra esto mismo, el Picture de la izquierda tiene la propiedad Autosize en False, mientras que el otro la tiene en True.

Usar el PictureBox como contenedor

El control PictureBox también funciona como contenedor de otro controles. Esto quiere decir que podemos colocar controles TextBox, botones etc..., dentro del control , y estos estarán contenidos.

Ejemplo : Colocar un Picture1 en el formulario con 2 CommandButton de la siguiente manera:

 

 

53

Page 54: balanceo de lineas y calculo de parametros electricos en excel

En la propiedad caption del Command1 coloca "Ocultar PictureBox" y en el otro "Mostrar PictureBox"

Ahora selecciona los controles que quieras de la barra de controles y dibujalos dentro del Picture1. Asegurate que los dibujes dentro del mismo

Los botones Command1 y Command2 hacen lo mismo que el ejemplo anterior, es decir mediante la propiedad Visible del Picture1 , ocultan y hace visible nuevamente al PictureBox, utilizando el valor True o False respectivamente.

Texto plano Imprimir

1. Option Explicit  2.   3. Private Sub Command1_Click()  4.     ' -- Ocultar el Picture  5.     Picture1.Visible = False  6. End Sub  7.   8. Private Sub Command2_Click()  9.     ' -- Mostrar el Picture1  10.     Picture1.Visible = True  11. End Sub  

Al ejecutar el program, a podés ver que cuando ocultás el PictureBox, todos los demás controles también se ocultan, es decir esto demuestra que el control Picture es el contenedor de los otros. Si no llegara a ocultarse todos los demás controles, es porque hiciste mal el paso de ubicarlos dentro del Picture. En este caso asegurate que al dibujarlos queden dentro del mismo. Otra forma de colocar controles dentro de un picture y que queden contenidos en él, es cortar el control con el comando Cortar (click derecho sobre el mismo) y seleccionar el Picture y cuando está seleccionado lo pegás, automáticamente de esta forma ya pasa a estar contenido.

Otro control que permite hacer de contenedor es el control Frame

 

54

Option Explicit

Private Sub Command1_Click() ' -- Ocultar el Picture Picture1.Visible = FalseEnd Sub

Private Sub Command2_Click() ' -- Mostrar el Picture1 Picture1.Visible = True

Page 55: balanceo de lineas y calculo de parametros electricos en excel

Propiedad Container - Insertar controles en tiempo de ejecución

El anterior ejemplo, mostraba como colocar los controles en tiempo de diseño, pero hay veces que es necesario por algún motivo hacerlo si o si en tiempo de ejecución.

Para poder colocar los controles dentro de un contenedor, podemos usar la propiedad Container .

Este simple ejemplo muestra como insertar un control TextBox y un Commandbuton dentro de un Picture1 al cargar el formulario, es decir en el evento FormLoad

 

Colocar en el form1 : Un Text1, command1 y un Picture1

Color el código fuente en el formulario

Texto plano Imprimir

1. Option Explicit  2.   3. Private Sub Form_Load()  4.     ' -- Inserta los controles ( El textbox y el botón )  5.     Set Text1.Container = Picture1  6.     Set Command1.Container = Picture1  7.     ' -- los posiciona  8.     Text1.Move 0, 0, 1000  9.     Command1.Move 0, (Text1.Top + Text1.Height + 10), 1000  10.   11. End Sub  

 

55

Option Explicit

Private Sub Form_Load() ' -- Inserta los controles ( El textbox y el botón ) Set Text1.Container = Picture1 Set Command1.Container = Picture1 ' -- los posiciona Text1.Move 0, 0, 1000 Command1.Move 0, (Text1.Top + Text1.Height + 10), 1000

Page 56: balanceo de lineas y calculo de parametros electricos en excel

Propiedad Autoredraw

La propiedad AutoRedraw es una propiedad muy importante y muy utilizada cuando se usa un picturebox para dibujar sobre el control

Lo que permite hacer la propiedad Autoredraw, es que al estar activada (con el valor True), y utilizar los métodos gráficos, por ejemplo dibujar un círculo, una linea, o cualquier imagen / dibujo, cuando se repinte el control, la imagen no se pierda, es decir que se mantenga. De esta manera Visual basic automáticamente vuelve a dibujar la imagen. Esta propiedad por defecto se encuentra en false. Luego es posible borrar la imagen con el método Cls

Puedes ver un simple ejemplo de esto mismo en el siguiente código:

Esto dibuja una cuadrado en el picture1 al presionar un botón. Luego, podés minimizar y volver a maximizar la ventana del formulario y ver que el dibujo se mantiene ya que la propiedad AutoRedraw se ha establecido en True

Colocar un botón y un picturebox en el formulario ( Command1 y picture1 )

Texto plano Imprimir

1. Option Explicit  2.   3. ' -- Botón para dibujar el rectángulo  4. ' ---------------------------------------------------------  5. Private Sub Command1_Click()  6.     With Picture1  7.         .AutoRedraw = True  8.         ' -- Dibujar un cuadradro  9.         Picture1.Line (100, 100)-Step(400, 400), vbRed, B  10.     End With  11. End Sub  12.   13. Private Sub Form_Load()  14.     Command1.Caption = "Dibujar cuadrado"  15. End Sub  16.             

56

Option Explicit

' -- Botón para dibujar el rectángulo' ---------------------------------------------------------Private Sub Command1_Click() With Picture1 .AutoRedraw = True ' -- Dibujar un cuadradro Picture1.Line (100, 100)-Step(400, 400), vbRed, B End With

Page 57: balanceo de lineas y calculo de parametros electricos en excel

Ahora, prueba este mismo código que es igual al anterior, pero se ha establecido la propiedad AutoRedraw en False. Al presionar el botón se dibujará el rectángulo de todas formas, pero si minimizas la ventana y la vuelves a maximizar, el dibujo se perderá

Colocar un botón y un picturebox en el formulario ( Command1 y picture1 )

Texto plano Imprimir

1. Option Explicit  2.   3. ' -- Botón para dibujar el rectángulo  4. ' ---------------------------------------------------------  5. Private Sub Command1_Click()  6.     With Picture1  7.         .AutoRedraw = False  8.         ' -- Dibujar un cuadradro  9.         Picture1.Line (100, 100)-Step(400, 400), vbRed, B  10.     End With  11. End Sub  12.   13. Private Sub Form_Load()  14.     Command1.Caption = "Dibujar cuadrado"  15. End Sub  16.             

Nota. Cuando la propiedad AutoRedraw se encuentra en True, el evento Paint del picturebox nunca se ejecuta. En cambio cuando se encuentra en False, el evento Paint se ejecutará cada ves que se repinte el control, ya sea cuando se minimiza y maximiza el formulario, cuando se tapa un área del control mediante otra ventana de windows por ejemplo.

Este código muestra que se ejecuta el evento paint, ya que la propiedad AutoRedraw se encuentra en False

Texto plano Imprimir

1. Option Explicit  2.   3. Private Sub Form_Load()  

57

Option Explicit

' -- Botón para dibujar el rectángulo' ---------------------------------------------------------Private Sub Command1_Click() With Picture1 .AutoRedraw = False ' -- Dibujar un cuadradro Picture1.Line (100, 100)-Step(400, 400), vbRed, B End With

Page 58: balanceo de lineas y calculo de parametros electricos en excel

4.   5.     Picture1.AutoRedraw = False  6. End Sub  7.   8. Private Sub Picture1_Paint()  9.   10.     Static i As Integer  11.       12.     i = i + 1  13.       14.     Me.Caption = "se ejecutó Paint " & CStr(i) & " veces"  15.       16.     ' -- Eliminar dibujo previo  17.     Picture1.Cls  18.     ' -- Dibujar un cuadradro  19.     Picture1.Line (100, 100)-Step(400, 400), vbRed, B  20. End Sub  

Ahora si en cambio colocas en el código anterior, la propiedad AutoreDraw en true, puedes comprobar que el evento Paint no se ejecuta nunca.

 Guardar la imagen del picturebox como BMP

Utilizando método SavePicture de vb es posible grabar en disco un archivo BMP, con el gráfico cargado en el control ( propiedad Picture del PicBox). El uso de este método o función es muy simple. A SavePicture se le debe pasar dos parámetros:

La propiedad Picture es decir la imagen ( También es posible pasar la propiedad image si se ha dibujado con los métodos gráficos o con el uso de las apis de windows )

y el path donde se creará el archivo

Por ejemplo:

Texto plano Imprimir

58

Option Explicit

Private Sub Form_Load()

Picture1.AutoRedraw = FalseEnd Sub

Private Sub Picture1_Paint()

Static i As Integer

Page 59: balanceo de lineas y calculo de parametros electricos en excel

1. ' -- Cargar una imagen en el control  2. Picture1.Picture = LoadPicture(ruta)  3.   4. ' -- Grabar el archivo BMP en la ruta especificada  5. SavePicture Picture1.Picture, "C:\Imagen.BMP"  

El código anterior genera un archivo BMP en la unidad c: llamado imagen.bmp

Nota: En este enlace hay tutorial básico con ejemplos que muestra como utilizar los métodos loadpicture, savepicture y paintpicture

 

Propiedad Image

La propiedad Image del control PicBox es una propiedad de solo lectura. Esta Devuelve un controlador o manipulador, proporcionado por Microsoft Windows, para un mapa de bits persistente. Esto quiere decir que, si hemos utilizado los métodos gráficos para crear figuras , imágenes o cualquier dibujo en el control, podemos acceder a la imagen mediante este Handle o controlador.

Este simple ejemplo muestra como grabar en disco un archivo de imagen de mapa de bits ( BMP ) , con el contenido del control utilizando el método savePicture. Pero a diferencia del ejemplo anterior, en el que se pasaba la propiedad Picture a SavePicture, en este caso se pasará como parámetro la propiedad Image, ya que la imagen no es un mapa de bits cargado en la propiedad picture, si no que el dibujo se encuentra realizado mediante los métodos gráficos.

Colocar dos botones ( Command 1 y Command 2) , y un picturebox llamado picture 1

59

' -- Cargar una imagen en el control Picture1.Picture = LoadPicture(ruta)

' -- Grabar el archivo BMP en la ruta especif icada SavePicture Picture1.Picture, "C:\Imagen.BMP"

Page 60: balanceo de lineas y calculo de parametros electricos en excel

Pegar el Código fuente en el formulario

Texto plano Imprimir

1. Option Explicit  2.   3. ' -- Botón para dibujar un texto en el picture  4. ' ---------------------------------------------------------  5. Private Sub Command1_Click()  6.     ' -- establecer propiedades  7.     With Picture1  8.         .AutoRedraw = True  9.         .ForeColor = vbRed  10.         .BackColor = vbBlack  11.         ' -- escribir el texto  12.         Picture1.Print "Visual basic"  13.     End With  14.       15.     Command1.Enabled = False  16.     Command2.Enabled = True  17.       18. End Sub  19.   20. Private Sub Command2_Click()  21.     ' -- guardar mapa de bits enviando la propiedad image que 

apunta al gráfico dibujado  22.     SavePicture Picture1.Image, "c:\imagen.bmp"  23.     MsgBox "La imagen se guardó en la unidad c:", vbInformati

on  24.     ' -- salir del programa  25.     End  26. End Sub  27.   28. Private Sub Form_Load()  29.     Command1.Caption = "Escribir texto"  30.     Command2.Caption = "Guardar imagen en el disco"  31.     Command2.Enabled = False  32. End Sub  

60

Page 61: balanceo de lineas y calculo de parametros electricos en excel

 

Dibujar en un picturebox con los métodos gráficos

En la siguiente página hay un tutorial básico con ejemplos para poder utilizar los métodos gráficos : ver tutorial

En este otro enlace hay un programa muy simple, que también muestra como utilizar dichos métodos en un PictureBox para poder dibujar figuras : Ver Programa de ejemplo

 

Enlaces relacionados

Dibujar texto con formato

recortar imagen con el mouse Hacer un picturebox redimensionable mediante el Api de windows

Colocar ScrollBars a un Picture

Insertar un formulario dentro de un picture

Dibujar con la api bitBlt en el control picture o un form

Crear picturebox redondo

Reproducir un archivo de video en el control

Efecto de animación con transparencia

Ejemplo de Drag Drop de gráficos

61

Option Explicit

' -- Botón para dibujar un texto en el picture' ---------------------------------------------------------Private Sub Command1_Click() ' -- establecer propiedades With Picture1 .AutoRedraw = True .ForeColor = vbRed .BackColor = vbBlack

Page 62: balanceo de lineas y calculo de parametros electricos en excel

Crear degradados

Crear botón transparente

Crear controles en tiempo de ejecución

Dibujar un thumbnail y escalar gráficos

Crear efecto de scroll

Crear un botón simple utilizando la función BitBlt

Dibujar y crear Scroll de texto

Picturebox con borde y estilo Flat

Mouseout

Capturar el HDC ( área cliente del control )

Hacer zoom a una imagen

Ocx FreeImage para leer otros formatos como PNG

Dibujar rectángulos usando funciones Api

Drag drop con la función de windows SendMessage

Descripción

El control Label o Etiqueta es un simple control que se utiliza para mostrar texto, descripciones, información para el programa.

 

Propiedades

 

62

Page 63: balanceo de lineas y calculo de parametros electricos en excel

Propiedad Caption

La propiedad Caption es la mas importante, y es la que se utiliza para establecer el texto que mostrará el control Label. Por ejemplo para mostrar el texto "Hola" agrega un label al formulario, coloca un Botón, hacé doble click en el mismo, escribe Label1 y presiona el ".", Visual Basic te desplegará la lista de propiedades y métodos del Label1.

 

 

Una vez colocada la propiedad Caption, se asigna el texto que va a mostrar de esta manera, por ejemplo para mostrar la palabra "Hola" en el control:

Texto plano Imprimir

1. Label1.Caption = "Hola"  

Este fragmento de código, visualiza la hora actual, asignando a la propiedad Caption (dentro de un Timer), el valor devuelto por la función Now de vb.

Colocar un control Timer y un Label

Texto plano Imprimir

1. Option Explicit  2.   

63

Label1.Caption = "Hola"

Page 64: balanceo de lineas y calculo de parametros electricos en excel

3. Private Sub Form_Load()  4.       5.     ' \\ -- Configurar Timer  6.     With Timer1  7.         .Interval = 1000 ' -- 1 segundo  8.         .Enabled = True  9.     End With  10.       11.     With Label1  12.         .Caption = ""  13.         .Width = 2000  14.     End With  15.       16. End Sub  17.   18. Private Sub Timer1_Timer()  19.     Label1.Caption = Now  20. End Sub  

 

Propiedad Autosize

Si la propiedad Autosize del control se encuentra en True, las dimensiones del Label (ancho y alto) se ajustarán al largo y alto del texto que muestre. En cambio si se encuentra en False el ancho y alto del control será el que esté establecido en la propiedad Height y Width sin importar la longitud del texto.

 

Propiedad Aligment

Esta propiedad posee 3 valores. Si le establecemos el valor 0 el texto se alineará a la izquierda, si tiene el valor 1 se alineará a la derecha y si está con el valor 2, el texto se muestra en forma centrada, como muestra la imagen:

 

64

Option Explicit

Private Sub Form_Load() ' \\ -- Configurar Timer With Timer1 .Interval = 1000 ' -- 1 segundo .Enabled = True End With

Page 65: balanceo de lineas y calculo de parametros electricos en excel

 

Otras propiedades del control son :

 

Visible : Si está en True el control está visible si está en False está oculto

Backcolor : Determina el color del fondo de la etiqueta. Si la propiedad BackStyle está en transparente esta propiedad no se visualiza, es decir el color no se muestra

BackStyle: Determina si el fondo es transparente (valor 0) o si es opaco (Valor 1).

Name: es el nombre del control y sirve para hacer referencia al mismo en el código, como todos los controles

BorderStyle: determina si se muestra con borde o sin borde Enabled: Si está en True (Verdadero) el control está activado y se

puede utilizar normalmente, si se encuentra en False, el control está desactivado.

FontName: El nombre de la fuente que utilizará el texto del control. Podemos elegir las que tengamos instaladas en el sistema

Forecolor: Valor Hexadecimal o valor Rgb que indica el color del Texto Height y Width: Ancho y alto del Label ToolTipText: muestra el mensaje de descripción cuando pasamos el

mouse por encima del control.

 

65

Page 66: balanceo de lineas y calculo de parametros electricos en excel

Ejemplo para cambiar propiedades en tiempo de ejecución

Colocar 5 Command Button en un formulario: Command1, Command2, Command3, Command4 y Command5, y un control Label1 como está en la imagen:

 

Este básico ejemplo lo que hace es cambiar algunas propiedades de este control.

El Command1 que cambia el texto del Label, lo que hace es mostrar un InputBox que es una caja o cuadro de diálogo para ingresar un texto. Ese texto lo almacenamos en una variable y luego lo mostramos en el Label

El Command2 que cambia el Estilo del borde, es decir la propiedad BorderStyle, cuando se presiona, si el control Label tiene la propiedad BorderStyle en 0, lo pone con el valor 1, si está con el valor 1 lo establece en 0, es decir lo contrario.

El Command3 que activa y desactiva el control, lo que hace es cambiar el valor de la propiedad Enabled del Label. Cuando lo presionamos se ejecuta esta línea:

Label1.Enabled = Not Label1.Enabled

El operador Not lo que hace en este caso es cambiar el valor de la propiedad Enabled a su valor contrario. Es decir, si el valor de enabled está en True (Habilitado) Not Label1.Enabled lo que hace es deshabilitarlo, si está deshabilitado (False) el operador Not lo cambia a True, y el Label queda Habilitado. Esto se puede hacer con una claúsula If Then pero esta manera es mas simple.

El Command4 es igual que el Command1, por medio de un InputBox se pide que ingrese un texto, y se cambia el valor de la propiedad ToolTipText, que es la propiedad que muestra información de un objeto mediante un rectángulo amarillo cuando pasamos el mouse por encima, como los tipicos controles de windows de cualquier aplicación.

66

Page 67: balanceo de lineas y calculo de parametros electricos en excel

El Command5 es igual que el Command3, utiliza el operador Not para establecerle la propiedad Visible. Si el Label está Visible (True), se cambia a False (se oculta), si está en False se pone en True

 

Código fuente dentro del formulario

Texto plano Imprimir

1. Option Explicit  2.   3. ' \\ -- Caption  4. Private Sub Command1_Click()  5.     Dim texto As String  6.   7.     texto = InputBox("Escriba el texto a mostrar en el Label", "Eje

mplo")  8.   9.     ' -- Acá se asigna la variable texto en el Label  10.     Label1.Caption = texto  11.   12. End Sub  13.   14. ' \\ -- BorderStyle  15. Private Sub Command2_Click()  16.     'Si actualmente tiene el valor 0 entonces la colocamos a 

1  17.     If Label1.BorderStyle = 0 Then  18.         Label1.BorderStyle = 1  19.     'Si tiene el valor 1 lo ponemos a 0  20.     Else  21.         Label1.BorderStyle = 0  22.     End If  23. End Sub  24.   25.   26. ' \\ -- Enabled  27. Private Sub Command3_Click()  28.   29.     ' -- Si la propiedad Enaled está en True se pone False,  30.     ' -- si está en False se pone en TRue  31.     Label1.Enabled = Not Label1.Enabled  32.   33. End Sub  34.   35.   36. ' \\ -- Tooltiptext  37. Private Sub Command4_Click()  38. Dim texto As String  39. texto = InputBox("Escribi el texto que mostrará la propiedad" 

_  

67

Page 68: balanceo de lineas y calculo de parametros electricos en excel

40.                                    & "ToolTipText", "Ejemplo")  

41.   42.     ' -- Le asignamos el valor de la variable Texto al Label  43.     Label1.ToolTipText = texto  44.   45.     ' -- Mostramos un mensaje para indicar que pase el mouse 

por  46.     ' -- encima del control Label1  47.   48.     MsgBox "Pasá el mouse por encima del Label"  49.   50. End Sub  51.   52. ' \\ -- Visible  53. Private Sub Command5_Click()  54.   55.     ' -- Si el Label está visible entonces lo ocultamos,  56.     ' -- si está oculto lo mostramos  57.     Label1.Visible = Not Label1.Visible  58.   59. End Sub  60.   61.   62. Private Sub Form_Load()  63.     Command1.Caption = "Cambiar texto"  64.     Command2.Caption = "Cambiar borde"  65.     Command3.Caption = "Enabled"  66.     Command4.Caption = "ToolTipText"  67.     Command5.Caption = "Enabled"  68. End Sub  

 

 

68

Option Explicit

' \\ -- CaptionPrivate Sub Command1_Click() Dim texto As String

texto = InputBox("Escriba el texto a mostrar en el Label", "Ejemplo")

' -- Acá se asigna la variable texto en el Label Label1.Caption = texto

Page 69: balanceo de lineas y calculo de parametros electricos en excel

Eventos del control Label:

 

Evento Click: Se produce al hacer un click Evento DblClick: Se produce al hacer doble click evento MouseDown: Se produce al presionar el ratón cuando el mouse

está abajo Evento MouseMove: se produce al mover el cursor en el área del control Evento MouseUp: Se produce al hacer un Click justo después de soltar el

botón del mouse Evento Change: Se produce cuando cambia la propiedad Caption del

control. Este evento puede utilizarce para validar algún cambio

 

Ejemplo utilizando el evento MouseMove

Lo siguiente, muestra como simular un enlace, como el de una página web, de una forma sencilla

Al pasar el mouse por encima del Label, se cambian las propiedaes, es decir el color del texto y la propiedad FontUnderline en True para subrayar. Luego en el MouseMove del Formulario, se reestablece.

 

Código fuente

Texto plano Imprimir

1. Option Explicit  2.   3. Private Sub Form_Load()  

69

Page 70: balanceo de lineas y calculo de parametros electricos en excel

4.       5.     With Label1  6.         ' -- Estilo transparente  7.         .BackStyle = 0  8.         ' -- Ajustar el control al texto  9.         .AutoSize = True  10.         ' --  Asignamos un texto para la dirección url  11.         .Caption = " http://www.google.com "  12.     End With  13. End Sub  14.   15. Private Sub Form_MouseMove( _  16.     Button As Integer, _  17.     Shift As Integer, _  18.     X As Single, Y As Single)  19.      20.    With Label1  21.         If .FontUnderline Then  22.             ' -- Color de la fuente del Label en negro  23.             .ForeColor = vbBlack  24.      25.             ' Quitamos el Subrayamos al Label  26.             .FontUnderline = False  27.         End If  28.     End With  29.       30. End Sub  31.   32.   33. Private Sub Label1_MouseMove( _  34.     Button As Integer, _  35.     Shift As Integer, _  36.     X As Single, Y As Single)  37.       38.    With Label1  39.         If Not .FontUnderline Then  40.             ' --  Color Azul como el de los enlaces clásicos  41.             .ForeColor = QBColor(9)  42.      43.             ' -- Subrayamos el Label  44.             .FontUnderline = True  45.         End If  46.    End With  47. End Sub  

70

Page 71: balanceo de lineas y calculo de parametros electricos en excel

 

 

Recorrer los labels del formulario con un bucle For Each next

Si en algún momento se desea poder recorrer todos los controles label que se encuentren en el formulario, por ejemplo para consultar el valor de propiedades o para modificarlas y no tener que hacerlo uno por uno, podés utilizar un bucle For Each y mediante el operador TypeOf de vb comprobar si es un Label

Este simple ejemplo muestra como recorrer todos los objetos del form actual, y si es de tipo Label, le establece un color aleatorio utilizando la función RND y la función RGB de Visual basic. Por supuesto en el bucle podés probar cambiar otras propiedades que quieras. Esto también es muy útil para deshabilitar y habilitar, o hacer visible o no visible controles del programa utilizando un simple bucle.

Colocar varios controles en el formulario, y también varios controles Label, por ejemplo 4 o 5

Colocar también un botón para poder ejecutar el código del bucle

Pegar el siguiente fragmento de código en el form principal

Texto plano Imprimir

1. Option Explicit  2.   3. Private Sub Command1_Click()  4.       5.     Dim xLabel As Control  6.     ' -- Recorrer controles coon un bucle  7.     For Each xLabel In Me.Controls  8.         ' -- Comprobar que el control actual es de clase Label  

71

Option Explicit

Private Sub Form_Load() With Label1 ' -- Estilo transparente .BackStyle = 0 ' -- Ajustar el control al texto .AutoSize = True ' -- Asignamos un texto para la dirección url

Page 72: balanceo de lineas y calculo de parametros electricos en excel

9.         If TypeOf xLabel Is Label Then  10.             ' - Si lo es, cambiar la propiedad ForeColor  11.             xLabel.ForeColor = RGB(CInt(Rnd * 255), CInt(Rnd 

* 255), CInt(Rnd * 255))  12.         End If  13.     Next  14.       15. End Sub  16.   17. Private Sub Form_Load()  18.     Command1.Caption = "Cambiar color"  19. End Sub  

 

Texto con sombra usando dos controles Label

 

Esto es muy simple y no requiere de código , solo colocar dos controles Label superpuestos, y el que esté debajo de color negro, como muestra el gráfico:

Nota: desde opciones > menú Herramientas, puedes especificar los valores para la cuadrícula del formulario, por defecto son 120 twips, colocando un valor

72

Option Explicit

Private Sub Command1_Click() Dim xLabel As Control ' -- Recorrer controles coon un bucle For Each xLabel In Me.Controls ' -- Comprobar que el control actual es de clase Label If TypeOf xLabel Is Label Then ' - Si lo es, cambiar la propiedad ForeColor

Page 73: balanceo de lineas y calculo de parametros electricos en excel

mas bajo, tendrás mas precición para colocar el control Label al arrastrarlo en el formualrio.

Simple botón

Este senciilo ejemplo muestra una forma de poder crear un botón utilizando dos controles label en un array de controles uno encima del otro. Y en el evento MouseDown , se oculta uno, y se visualiza el que está por debajo, y luego se vuelve a visualizar el otro en el evento mouseUp

 

Control ocx para usar Label con degradado

Control ListBox

El control ListBox permite añadir elementos en forma de lista y también poder seleccionar elementos de la misma para trabajar los datos.

Este control permite seleccionar un elemento solo o varios de ellos, utilizando la propiedad Multiselect. La imagen de la izquierda muestra un ListBox en el que se selecciona un solo elemento y a la derecha se seleccionan varios:

 

73

Page 74: balanceo de lineas y calculo de parametros electricos en excel

 

 

Para agregar elementos a un control ListBox en tiempo de diseño, se debe seleccionar el control Listbox, y desde la ventana de propiedades ubicarnos en la que se llama List. Al desplegarla podemos agregar y remover elementos.

Para esto se debe ingresar uno, luego mantener la tecla Ctrl presionada y presionar Enter, y agregar el siguiente y asi con los demás.

Para agregarlos en tiempo de ejecución, es decir mediante código, se utiliza un método llamado AddItem.

Por ejemplo si quisiéramos agregar un elemento a un control llamado List1 en el evento Click de un botón, debemos escribir el nombre del ListBox y presionar el ".". Visual Basic desplegará la lista de propiedades y métodos del control List, en ella buscamos el método AddItem, como muestra la imagen:

 

 

 

74

Page 75: balanceo de lineas y calculo de parametros electricos en excel

El método AddItem tiene 2 parámetros.

AddItem "Elemento que vamos a agregar", "Index (posición)"

El primer parámetro es obligatorio, y es el elemento que vamos a añadir al control List. El segundo parámetro no es obligatorio, es decir es opcional, y permite especificar el lugar donde añadir el elemento, es decir la posición. A este se le pasa un número entero, por ejemplo 0, 1, 5 etc...Si no se especifica una posición, el elemento que se agrega es añadido al final de la lista.

Por ejemplo, si quisiera agregar 5 nombres de países en un control llamado List1, cuando presionamos un Command1 :

Private Sub Command1_Click()

List1.AddItem "Brasil"List1.AddItem "Francia"List1.AddItem "Italia"List1.AddItem "Argentina"List1.AddItem "venezuela"

End Sub

 

Al probar lo anterior, Visual Basic no dió error al no indicar la posición o el parámetro Index, ya que como se dijo dicho parámetro es opcional.

Para eliminar un elemento se utiliza el método RemoveItem. Este método tiene un parámetro llamado Index en el cual debemos indicar la posición del elemento que vamos a eliminar.

Por ejemplo:

Private Sub Command2_Click()

'Eliminamos el elemento 2 de la listaList1.RemoveItem 2

End Sub

El ejemplo anterior eliminaría de la lista el elemento "Italia". Te preguntarás porque elimina a "Italia" si este está en la posición 3. En realidad está en la

75

Page 76: balanceo de lineas y calculo de parametros electricos en excel

posición 2, ya que se comienza el conteo desde el 0, es decir en la lista del ejemplo anterior, "Brasil" tiene el número 0, "Francia" el 1, "Italia" el 2 etc...

Importante: Al eliminar un elemento de la lista, el número relacionado al elemento o Item a eliminar, debe estar en la lista, ya que si no daría un error al querer eliminar un Item que no se encuentra.

Ejemplo simple para agregar y eliminar elementos de un control List

Para el siguiente ejemplo colocar los siguientes controles en un formulario como está en la imagen:

 

 

Un control Label1 y en el Caption escribir "Nombre". Un Command1 y en el Caption "Añadir". Al Command2 "Eliminar Seleccionado". Luego agrega un Text1 al lado del control Label1 y un control List1.

El elemento que escribamos en el Text1, cuando se presione " Añadir " se agregará al control List1, cuando presionemos el Command2 se eliminará de la lista el elemento que se encuentre seleccionado.

 

Colocar el código en el formulario:

Private Sub Command1_Click()If Text1 = "" Then   MsgBox "Debe ingresar un nombre para poder agregar un elemento", vbQuestion + vbOKOnly, "Datos incompletos"

76

Page 77: balanceo de lineas y calculo de parametros electricos en excel

   'Salimos de la rutina ya que no se ha ingresado nada en el control text1   Exit SubEnd If

'Agregamos el contenido del Text1 en el control List1List1.AddItem Text1End Sub

Private Sub Command2_Click()'Si la lista no está vacía entonces podemos eliminarIf List1.ListIndex <> -1 Then   'Eliminamos el elemento que se encuentra seleccionado   List1.RemoveItem List1.ListIndexEnd IfEnd Sub

 

En el ejemplo anterior cuando se presiona añadir, antes de utilizar el método AddItem para añadir el contenido del Text1, se comprueba mediante un IF que el Text1 no está vacío. Si está vacío se muestra un mensaje de error y se sale de la rutina mediante Exit sub. Si se ha ingresado algún texto, ignora la cláusula IF Then y ejecuta la línea que añade el Item.

En el botón de Eliminar el elemento seleccionado se utilizan una propiedad que no se comentó llamada ListIndex. Esta propiedad nos devuelve el número del elemento que se encuentra seleccionado actualmente. Cuando el ListBox no tiene ningún elemento seleccionado, el valor de ListIndex es de -1. Para que no de error al querer eliminar un elemento que no se encuentre seleccionado, primero debemos comprobar que el valor de ListIndex es distinto a -1, por ejemplo

If List1.ListIdex <> -1 Then ....

Si el valor es distinto a -1 quiere decir que hay un elemento seleccionado, entonces se procede a la eliminación del mismo, utilizando el método RemoveItem pasándole como parámetro el número de ListIndex.

 

Propiedad Sorted:

Si quisiéramos ordenar el contenido, es decir los elementos del control List en forma alfabética, debemos utilizar la propiedad Sorted.

77

Page 78: balanceo de lineas y calculo de parametros electricos en excel

Esta propiedad no se puede utilizar en tiempo de ejecución, si no que la debemos establecer en tiempo de diseño desde la ventana de propiedades. Si la propiedad está en True, la lista de elementos se mostrará en forma ordenada, si está en False sin ordenar. Por defecto esta propiedad está con el Valor False.

 

Eliminar elementos con el método Clear

Para eliminar todo el contenido de un control ListBox se utiliza el método o función llamado Clear.

Por ejemplo:

Private Sub Command1_Click()

'Elimina todo el contenido del ListBoxList1.Clear

End Sub

 

Este método no necesita ningún parámetro, solo ejecutarlo para que todo el contenido del control sea eliminado. Tampoco produce un error si ejecutamos Clear y el ListBox no tiene elementos, es decir si los tiene los elimina, si no tiene elementos y se ejecuta Clear, no ocurre nada.

 

Propiedad ListCount

La propiedad ListCount devuelve la cantidad de elementos que contiene el control.

Por ejemplo, en las siguientes líneas, cuando se presiona un Command1, se agregan 3 elementos. Luego se muestra un mensaje, mediante un MsgBox, con la cantidad de elementos del control, consultando el valor de la propiedad ListCount :

 

Private Sub Command1_Click()

78

Page 79: balanceo de lineas y calculo de parametros electricos en excel

'Agregamos 3 elementos al listadoList1.AddItem "Enero"List1.AddItem "Febrero"List1.AddItem "Marzo"

'Mostramos medianete un mensaje la cantidad de elementos'del contenido del ListBox, en este caso devuelve 3MsgBox List1.ListCount

End Sub

 

 

Propiedad List

La propiedad List devuelve o establece los elementos contenidos en la lista del control.

Esta propiedad lleva un parámetro que indica el número del elemento que se quiere consultar.

Un ejemplo: si quisiera mostrar en un Label1 el texto del elemento que se selecciona, haríamos lo siguiente:

 

Colocar un List1 y un Label1. Pegar esto en el formulario:

Private Sub Form_Load()'Agregamos 3 elementos al listadoList1.AddItem "Enero"List1.AddItem "Febrero"List1.AddItem "Marzo"End Sub

Private Sub List1_Click()'Cuando hacemos Click en un elemento del List1 _mostramos en el Label1 el texto del elementoLabel1 = List1.List(List1.ListIndex)End Sub

79

Page 80: balanceo de lineas y calculo de parametros electricos en excel

 

En el código anterior, cuando carga el formulario en el evento Load, se agregan 3 elementos cualquiera. El restante código se encuentra en el evento Click del control List, por eso se ejecutará cada vez que hagamos un Click en el mismo, y utilizando la propiedad List y pasándole otra propiedad ya vista " ListIndex ", obtenemos el texto del elemento actualmente seleccionado.

Si pasáramos un número, nos mostraría el texto del elemento que corresponde a ese número dentro del ListBox. Siguiendo el ejemplo anterior en el que teníamos 3 elementos, si se hiciera esto

 

Private Sub List1_Click()Label1 = List1.List(2)End Sub

 

...el control Label1 mostraría el texto del elemento 2, que sería "Marzo". Esto como ya se indicó antes es porque el primer elemento en la lista es el 0, que en este caso corresponde a "Enero", el segundo elemento es el 1, en este caso "Febrero" , etc...

 

Otras propiedades del control ListBox son:

Propiedad Backcolor : Establece el color de fondo del control Propiedad Enabled : Permite habilitar o deshabilitar el control ListBox -

Valores True y False Propiedad Font : Establece el tipo de fuente, tamaño estilo etc... de los

elementos Propiedad ForeColor : Establece el color de la fuente de los elementos Propiedad Height y Width : Establece el ancho y alto del control Propiedad MultiSelect : Permite indicar si el ListBox se podrá

seleccionar mas de un elemento Propiedad Visible : Si está en True el control será visible si está en False

estará oculto

80

Page 81: balanceo de lineas y calculo de parametros electricos en excel

 

 

Eventos del control ListBox

 

Los eventos principales del control son:

Evento Click: Ocurre cuando el usuario presiona y libera un botón del mouse encima de un objeto.

Evento DblClick: Ocurre cuando el usuario presiona y libera un botón del mouse y después lo vuelve a presionar y liberar sobre un objeto.

Evento DragDrop: Ocurre cuando finaliza una operación de arrastrar y colocar. en este enlace hay un ejemplo simple del uso de este evento: DragDrop entre dos listbox

Evento DragOver: Ocurre cuando una operación de arrastrar y colocar está en curso.

Evento GotFocus: Ocurre cuando el control recibe el enfoque. Evento LostFocus: Ocurre cuando un objeto Pierde el enfoque el control Evento ItemCheck: Ocurre cuando la propiedad Style de un control

ListBox es 1 (casillas de verificación) y la casilla de verificación de un elemento en el control ListBox está activada o desactivada.

Evento KeyDown: Ocurre cuando el usuario presiona una tecla mientras un objeto tiene el enfoque.

Evento KeyPress: Ocurre cuando el usuario presiona y libera una tecla ANSI.

Evento KeyUp: se produce cuando el usuario libera una tecla mientras el control tiene el enfoque.

Evento MouseDown: Ocurre cuando el usuario presiona el botón del mouse mientras un objeto tiene el enfoque.

Evento MouseMove: Ocurre cuando el usuario mueve el mouse.

81

Page 82: balanceo de lineas y calculo de parametros electricos en excel

Evento MouseUp: Ocurre cuando el usuario libera el botón del mouse mientras un objeto tiene el enfoque.

Evento Scroll: Ocurre cuando cambia la posición de un cuadro de desplazamiento en un control, es decir cuando se mueve la barra de Scoll

Evento Validate: Se produce cuando un control pierde el enfoque en favor de un control que produce una validación.

 

 

 

Control ComboBox.

 

Este control muy utilizado en los programas nos permite mediante una lista desplegable poder seleccionar elementos, como también es posible introducir elementos a la misma

 

 

Otro tipo de vistas del control ComboBox son las siguientes, que se modifican desde la propiedad Style del control

82

Page 83: balanceo de lineas y calculo de parametros electricos en excel

 

 

El primero DropDown es el estilo por defecto y se despliega la lista cuando pulsamos en la flecha. El segundo Simple Combo ya presenta la lista desplegada y no tiene un botón para desplegar los elementos. El tercero DropdownList , es igual que el DropDown, pero con la diferencia que no se puede ingresar un texto, solo se puede seleccionar elementos.

Este control es muy parecido al control List en lo que se refiere a las propiedades y métodos para manejar los datos, para agregar elementos se utiliza el método AddItem.

Por ejemplo , el siguiente código añade 50 elementos en un bucle For Next:

Dim Elemento As Integer

For Elemento = 0 To 50  'Agregamos el valor de la variable Elemento al Combo  Combo1.AddItem iNext

 

Al igual que el control ListBox, para eliminar todo el contenido se usa el método Clear

 

83

Page 84: balanceo de lineas y calculo de parametros electricos en excel

'Eliminamos todo el contenidoCombo1.Clear

 

Al igual que el control List, para averiguar el valor de un determinado elemento se utiliza la propiedad List especificándole el número del elemento, ListCount (para saber el número de elementos), ListIndex (saber el elemento seleccionado), el Método RemoveItem (Elimina el elemento especificado) etc..

 

Propiedad DataField y DataSource

Estas dos propiedades presente en el control ListBox y el control ComboBox, además de varios otros controles de visual basic, como el Label, TextBox etc..., pemiten enlazar los controles a una base de datos.

 

DataField: Devuelve o establece un valor que enlaza un control con un campo del registro actual.

DataSource: Establece un valor que especifica el control de datos mediante el cual se enlaza el control actual a una base de datos

Por ejemplo, lo siguiente, enlaza un control Combo1, que previamente está asociado a un control Data1 mediante la propiedad DataSource, con el campo " Nombres " de una tabla llamada Clientes, de la base de datos Bd1.Mdb.

Data1.DatabaseName = App.Path & "\bd1.mdb"Data1.RecordSource = "Clientes"

Combo1.DataField = "Nombres"

El control TextBox o Caja de texto se utiliza para Ingresar y/o visualizar Texto ( es un control de entrada de datos )

 

84

Page 85: balanceo de lineas y calculo de parametros electricos en excel

 

Si en nuestros programas no vamos a introducir Texto, me refiero a solo mostrarlo, valores etc..., es preferible y mas lógico utilizar un control Label en cambio de un control TextBox , ya que consume menos recursos

La propiedad principal de este control se llama Text. Mediante ella podemos asignarle un texto ya sea en tiempo de diseño o tiempo de ejecución al control. Si es en tiempo de diseño, debemos seleccionar el TextBox e ir a la ventana de propiedades y seleccionar Text. Dentro de ella podemos escribir el texto a ser mostrado. Si es en tiempo de ejecución debemos escribir el nombre de el TextBox que queremos y al presionar el punto ".", vb despliega la lista de propiedades y métodos del TextBox, y ahí seleccionamos Text

 

 

Por ejemplo si quiero mostrar un texto en un control llamado Text1 se haría de esta forma:

 

85

Page 86: balanceo de lineas y calculo de parametros electricos en excel

Private Sub Form_Load()

Text1.Text = "Un texto cualquiera"

End Sub

 

Si quisiera mostrar el contenido de un control Label llamado Label1 en un control llamado text1 se haría así:

 

Private Sub Form_Load()

Text1.Text = Label1.Caption

End Sub

Nota , no es necesario escribir la propiedad Text seguida del nombre del control, ya que la propiedad Text es la propiedad por defecto, y Vb se daría automáticamente cuenta que al no poner ninguna propiedad la asuma como tal, por ejemplo esto es válido:

Private Sub Form_Load()

Text1 = "Un texto cualquiera"

End Sub

 

Esto de las propiedades por defecto lo tienen la mayoría de los controles, pero cada control tiene la suya, por ejemplo la propiedad default de un control Label es Caption, por lo que no es necesario escribirla, y Visual Basic no daría error:

 

Private Sub Form_Load()

Label1 = "Hola"

86

Page 87: balanceo de lineas y calculo de parametros electricos en excel

End Sub

 

Para un control Picture, la propiedad Picture es la que está establecida por defecto, y esto tampoco daría error y cargaría una imagen perfectamente en el control sin indicar explícitamente la propiedad.

 

Private Sub Form_Load()

Picture1 = LoadPicture("la ruta de una imagen")

End Sub

 

Propiedad Multiline

La propiedad Multiline o multilinea se utiliza para poder mostrar los saltos de carro o saltos de línea y que el texto se vea en varias y no todo en un única línea. Los valores que posee son True que está activada y en False quiere decir que está deshabilitada. Por defecto cuando añadimos un TextBox, la propiedad está en False, osea que tenemos que indicarle nosotros a vb, ya sea desde la ventana de propiedades poniéndola en true. Una cosa importante es que esto no lo podemos cambiar en tiempo de ejecución mediante código, si o si hay que establecerla desde la ventana de propiedades, ya que es una propiedad de solo lectura.

 

Propiedad PasswordChar

Esta propiedad tiene la función de ocultar el verdadero contenido del TextBox por el caracter que le indiquemos, por ejemplo los TextBox de ingresos de contraseña, donde el texto se oculta pero no se pierde, solo impide visualizarlo:

 

87

Page 88: balanceo de lineas y calculo de parametros electricos en excel

 

Nota : para establecer el caracter a mostrar solo debemos indicarlo en la propiedad PasswordChar, pero solo funciona cuando la propiedad Multiline del Text está en False.

 

Propiedad ScrollBars

Esta propiedad permite que el TextBox tenga o no tenga barras de Scroll cuando el texto sea superior a las dimensiones de la caja de texto. Los valores que puede tener son: 0 indica que el textBox no mostrará Barras de desplazamiento, en 1 Solo barra Horizontal, 2 Solo barra Vertical y 3 ambas barras de desplazamiento. En esta imagen se ve un TextBox con la propiedad Scrollbars en 2, solo Vertical

 

 

Propiedad Locked

Esta propiedad lo que hace es impedir que se pueda escribir en el TextBox, bloqueando la entrada de datos. Esta propiedad puede tener el Valor True o False, habilitado para el primero y False para el segundo. Por defecto está deshabilitada, es decir en False

88

Page 89: balanceo de lineas y calculo de parametros electricos en excel

 

Propiedad Maxlength

La propiedad MaxLength se usa para limitar la cantidad de caracteres que se podrán ingresar. Por ejemplo si en el TextBox tuviesemos el texto "Domingo" y hacemos esto:

Private Sub Command4_Click()Text1.Text = "Domingo"Text1.MaxLength = 3End Sub

El texto "Domingo" se podrá visualizar pero si intentamos escribir en la caja de texto, no se podrá ingresar mas de 3 caracteres. Es decir la propiedad recibe un número que identifica la longitud máxima permitida de letras a ingresar.

 

Propiedad SelStart y SelLength

La primera lo que hace es devolver o establecee el punto inicial del texto seleccionado. en cambio SelLength devuelve o establece el número de caracteres seleccionados.

El siguiente ejemplo utiliza estas dos propiedades, en conjunto con la propiedad Len de visual basic, para que al persionar la tecla Ctrl+A, se seleccione todo el contenido del TextBox

 

 

Private Sub Text1_KeyPress(KeyAscii As Integer)

89

Page 90: balanceo de lineas y calculo de parametros electricos en excel

If KeyAscii = 1 Then

Text1.SelStart = 0

'Selecciona Todo el contenido de la caja de texto

Text1.SelLength = Len(Text1.Text)

End If

End Sub 

 

 

 

Algunos ejemplos del Uso del control TextBox

Supongamos que quisieramos mostrar el contenido de un Text1 en un Text2, cuando presionamos un Command1, haríamos asi:

 

Private Sub Command1_Click()'Copiamos el texto de Text1 en el Text2Text2 = Text1End Sub

 

Si quisieramos cambiar el color de fondo (propiedad Backcolor) del TextBox para que sea igual al color de fondo del formulario haríamos asi:

 

90

Page 91: balanceo de lineas y calculo de parametros electricos en excel

 

Private Sub Command1_Click()'Le asignamos el mismo color al textbox que el que tiene el formulario _utilizando la propiedad BackcolorText1.BackColor = Me.BackColorEnd Sub

 

Este simple ejemplo lo que hace es cuando se escribe en el Text1, automáticamente se imprime el mismo texto en un Text2. Para esto usamos el evento Change que significa cambio, es decir se ejecutará cada vez que el text1 cambie el contenido.

Agregar 2 Text, text1 y Text2, pegar lo siguiente y luego escribir un texto en el Text1.

 

Private Sub Text1_Change()'Le establecemos el contenido de Text1 en el control Text2Text2 = Text1End Sub

 

Este ejemplo lo que hace es cambiarle el color al fondo del control text en negro, el color de la fuente en verde, el tamaño de la fuente, establecerla en negrita, y luego le asigna un texto "hola mundo".

Colocar un Command1 y un Text1

 

91

Page 92: balanceo de lineas y calculo de parametros electricos en excel

 

Private Sub Command1_Click()With Text1

.ForeColor = vbGreen

.BackColor = vbBlack

.FontSize = 12

.FontBold = True

.Text = " Hola Mundo"

End WithEnd Sub

 

Hacer que un textBox admita solo números y algunos otros caracteres indicados

 

El siguiente ejemplo muestra como hacer , comprobando en el eventos KeyPress de un textbox, el valor del parámetro Keyascii, para que solo admita números, la coma, el punto y la tecla de retroceso. Cualquier otro valor que no sea estos, el mismo retornará el valor 0.

 

Colocar un Text1 y el siguiente código en el formulario:

Option Explicit

Private Sub Text1_KeyPress(KeyAscii As Integer)

KeyAscii = Verificar_Tecla(KeyAscii)

92

Page 93: balanceo de lineas y calculo de parametros electricos en excel

End Sub

Function Verificar_Tecla(Tecla_Presionada)

Dim Teclas As String

'Acepta todos los números, la tecla Backspace, _

la tecla Enter, la coma y el punto

Teclas = "1234567890.," & Chr(vbKeyBack)

If InStr(1, Teclas, Chr(Tecla_Presionada)) Then

Verificar_Tecla = Tecla_Presionada

Else

' Si no es ninguna de las indicadas retorna 0

Verificar_Tecla = 0

End If

End Function

 

 

Esta función también puede ser utilizada en otros controles de entrada de datos, como por ejemplo los ComboBox, y la ventaja de utilizarlo, es que si tenemos muchos textbox o controles a los cuales deseamos verificar las teclas presionadas, no tenemos que escribir y repetir código en todos ellos, solo asignando al valor KeyAscii el valor retornado por la fuinción, para que el mismo acepte o no dichas teclas

93

Page 94: balanceo de lineas y calculo de parametros electricos en excel

Nota: también hay una función de visual basicllamada IsNumeric, para poder determinar si un valor es un número

 

 

Ejemplo para cargar el contenido de un archivo de texto en un TextBox Multiline

 

Este simple ejemplo carga en un control textBox el contenido de un archivo seleccionado de tipo txt. El control tiene la propiedad Multiline en True y la propiedad ScrollBar en Both.

Nota: en este enlace hay una descripción básica de las funciones de visual basic para el tratamiento de archivos, leer, guardar etc...

 

 

Colocar en un formulario un control Commondialog , un control textBox y un control Command1:

Nota: al control textBox en la propiedadMultiline colocarle true y también establecerle los ScrollBar

94

Page 95: balanceo de lineas y calculo de parametros electricos en excel

 

Código fuente en el formulario:

Private Sub Command1_Click()

With CommonDialog1

.DialogTitle = " Seleccionar archivo"

.Filter = "Archivos txt|*.txt"

' abre el cuadro de diálogo para seleccionar el txt

.ShowOpen

If .FileName = "" Then Exit Sub

'Carga el archivo en el control

Cargar_Txt .FileName

End With

End Sub

Private Sub Form_Load()

Command1.Caption = " Abrir archivo txt"

End Sub

Sub Cargar_Txt(path As String)

Dim linea As String

If path = vbNullString Then Exit Sub

Text1 = ""

Open path For Input As #1

While Not EOF(1)

95

Page 96: balanceo de lineas y calculo de parametros electricos en excel

'Lee la linea del archivo

Line Input #1, linea

'La carga en el textbox

Text1 = Text1 & linea

Wend

'Cierra el archivo abierto

Close

End Sub

 

 

Redimensionar un TextBox al ancho y alto del formulario

 

Este ejemplo simple lo que hace es que al redimensionar el formulario, o maximizarlo, el ancho y alto del control text, se adapte al ancho y alto del la ventana. Para ello el código debe estar ubicado en el evento Resize del formulario, y para redimensionar el textbox ( o cualquier otro control) se utiliza el método Move

Ejemplo:

Private Sub Form_Resize()

'Primer y segundo parámetro es el valor Left y Top

'Parámetro 3 y 4, el ancho y alto del text _

que en este caso es el ancho y alto del formulario

Text1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight

End Sub

96

Page 97: balanceo de lineas y calculo de parametros electricos en excel

 

 

Cambiar color de borde

El textbox no tiene ninguna propiedad para cambiar el color de borde . El siguiente ejemplo muestra una forma simple de como simular esto utilizando controles Shape, como muestra la siguiente imagen donde los textbox son parecidos a los de estilo de windows xp

 

 

En el ejemplo, se recorren todos los controles del formulario mediante un bucle For each. Luego, se van creando los demás controles Shape en tiempo de ejecución, uno para cada textbox , usando el método Load que permite crear los controles en tiempo de ejecución a partir de uno que está agregado en el formulario formando un array de controles

 

Controles

Colocar en el formulario, un control Shape. Al control Shape especificarle en la propiedad Index el valor 0 pra formar el array de shape

Luego agregar algunos textbox en el formulario

 

Código fuente en el formulario

97

Page 98: balanceo de lineas y calculo de parametros electricos en excel

' Posiciona el shape junto al textbox para simular el borde

Sub Aplicar_Borde(Shape As Object, color_Borde As Long)

' Variable para recorrer todos los controles del formulario

Dim el_Control As Object

'Recorre todos los controles

For Each el_Control In Me

' .. si el control es un textbox

If TypeOf el_Control Is TextBox Then

Dim i As Integer

'Si el Textbox está dentro de un contenedor, _

como un frame o picturebox, coloca el Shape _

dentro del mismo contenedor

Set Shape(i).Container = el_Control.Container

'Propiedades para el shape

Shape(i).BackStyle = 0 ' Fondo transparente

Shape(i).BorderStyle = 1 ' Borde sólido

Shape(i).BorderWidth = 1 ' 0 Grosor del borde

' Ancho, alto, pos x y po y del shape

Shape(i).Top = el_Control.Top - 10

Shape(i).Left = el_Control.Left - 10

Shape(i).Width = el_Control.Width + 30

Shape(i).Height = el_Control.Height + 30

' Estilo flat para el extbox

el_Control.Appearance = 0

98

Page 99: balanceo de lineas y calculo de parametros electricos en excel

' Le quitamos le borde al textbox

el_Control.BorderStyle = 0

' color del borde del shape

Shape(i).BorderColor = color_Borde

' Lo hacemos visible

Shape(i).Visible = True

i = i + 1

' Crea un shape en forma dinámica

Load Shape(i)

End If

Next

End Sub

Private Sub Form_Load()

Call Aplicar_Borde(Shape1, &H8000000D)

End Sub

 

 

Nota. en este enlace hay un ejemplo para crear un listbox con borde personalizado también usando un control shape

 

Pasar el foco entre Textbox al presionar la tecla enter

Este ejemplo muestra una forma de poder, al presionar la tecla enter, pasarle el foco al siguiente textbox. Como en el ejemplo se utiliza la función SendKeys para enviar la pulsación de la tecla Tab, el control que reciba el enfoque lo determinará la propiedad TabIndex

Agregar un arreglo de controles textbox, por ejemplo Text1(0), Text1(1), Text1(2) etc...

99

Page 100: balanceo de lineas y calculo de parametros electricos en excel

 

Código fuente en el formulario

Sub PasarFoco(KeyCode As Integer)

' si es la tecla enter ...

If KeyCode = 13 Then

' envía la pulsación de tecla Tab y pasa el foco _

a la siguiente caja de texto

SendKeys "{TAB}"

End If

End Sub

Private Sub Form_Load()

Dim i As Integer

' recorre la matriz de textbox

For i = 0 To Text1.Count - 1

' le especifica la propiedad tabIndex

Text1(i).TabIndex = i + 1

100

Page 101: balanceo de lineas y calculo de parametros electricos en excel

Next

End Sub

Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)

' anvia como parámetro el valor del código de la tacla

Call PasarFoco(KeyAscii)

End Sub 

 

Borrar todos los textbox de un formulario

Si queremos eliminar el contenido de todas las cajas de texto de un formulario, podemos utilizar un bocle For Each y el operador Type Of

Ejemplo:

La rutina LimpiarTextBox, recibe como parámetro el formulario, por ejemplo para limpiar todo el contenido de todas las cajas de texto que hay en el el formulario actual, se ejecutaría la rutina de la siguiente forma:

Call LimpiarTextBox(Me)

 

Colocar en el formulario, un CommandButton y varios controles TextBox

Código fuente en el Form

Option Explicit

' recibe como argumento el formulario

''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub LimpiarTextBox(frm As Form)

101

Page 102: balanceo de lineas y calculo de parametros electricos en excel

' recorre todos los controles que hay en el formulario

For Each Control In frm.Controls

' verifica que el control es de tipo TextBox

If TypeOf Control Is TextBox Then

'... Si es un Textbox, entonces lo limpia

Control.Text = ""

End If

Next

End Sub

' botón que limpia todos los textbox

'''''''''''''''''''''''''''''''''''''

Private Sub Command1_Click()

Call LimpiarTextBox(Me)

End Sub 

 

Enlaces relacionados

Control ocx para textbox estilo windows xp

Aplicar temas de xp con un archivo manifest

Ocx para cambiar de color al perder el foco

 

 

 

 

Ejemplos básicos sobre el control CommandButton de visual basic

 

102

Page 103: balanceo de lineas y calculo de parametros electricos en excel

 

 

 

 

 

-- -- Indice - Contenido

Descripción del control CommandButton

Propiedades

Métodos y funciones

Eventos principales del control

Tomar la apariencia de los temas de windows para los botones

Enalces relacionados

 

 

 

Descripción del control

Este control " Botón de comando ", nos permite ejecutar alguna rutina, función o procedimiento, generalmente en el evento click del mismo, para realizar de esta manera alguna tarea dentro del programa

 

Como se dijo, se utiliza generalmente en el evento Click par ejecutar alguna acción cuando se produce dicho evento, y es precisamente el evento Click, el que por defecto añade Visual Basic al control

Por ejemplo, si colocamos un control Command1 en un formulario, y le damos DobleClick para que se abra la ventana de código de visual basic, podemos ver la siguiente rutina:

103

Page 104: balanceo de lineas y calculo de parametros electricos en excel

Texto plano Imprimir

1. Private Sub Command1_Click()  2.   3.   4. End Sub  

Todas las instrucciones que estén dentro de este procedimiento, llamado Command1_Click, se ejecutarán cuando presionemos el botón. Por ejemplo si ejecutamos el siguiente código, lo que haría sería mostrar la fecha del sistema en la barra de título del formulario, utilizando la función Date de Visual Basic

Texto plano Imprimir

1. Option Explicit  2.   3. Private Sub Command1_Click()  4.     ' -- Establecemos en la barra de título del formulario la fecha 

del Pc  5.     Me.Caption = Date  6.   7. End Sub  

Este otro ejemplo, al presionar el botón, termina el programa utilizando la función End de vb. Colocar un Botón en el form

Texto plano Imprimir

1. Option Explicit  

104

Private Sub Command1_Click()

End Sub

Option Explicit

Private Sub Command1_Click() ' -- Establecemos en la barra de título del formulario la fecha del Pc Me.Caption = Date

End Sub

Page 105: balanceo de lineas y calculo de parametros electricos en excel

2.   3. Private Sub Command1_Click()  4.     End  5. End Sub  6.   7. Private Sub Form_Load()  8.     Command1.Caption = "Salir"  9. End Sub  

 

Propiedades

Las propiedades que posee el control CommandButton son prácticamente las que poseen el resto de controles estandar de visual basic, salvo algunas exclusivas como la propiedad Style.

Propiedad Style

La propiedad Style tiene 2 valores, 0 - Standar y 1 - Graphical. La primera es del clásico botón y este valor es el asignado por defecto. En cambio Graphical permite utilizar CommandButton para poder mostrar imágenes, cambiarle el color del fondo, el tipo de fuente, y utilizando el Api de windows, se puede cambiar por ejemplo el color de la fuente, es decir el ForeColor que este control no lo posee.

Esta imagen muestra, en el Command1 , una imagen, por medio de la propiedad Picture que la puedes cargar desde la ventana de propiedades. El segundo, el Command2, no tiene imagen, pero muestra como se puede establecer el color de fondo, propiedad Backcolor, siempre y cuando la propiedad Style sea de tipo gráfico, ya que si está en estándar no surtirá efecto.

105

Option Explicit

Private Sub Command1_Click() EndEnd Sub

Private Sub Form_Load() Command1.Caption = "Salir"End Sub

Page 106: balanceo de lineas y calculo de parametros electricos en excel

 

Otro ejemplo sobre esta propiedad: Al pasar el mouse por encima del Commandbutton, se cambiará la fuente, en Negrita, el Subrayado, y el color de fondo, al salir el puntero fuera del botón, se reestablecerá a la fuente normal, y se restaurará el color de fondo usando el color por defecto que utiliza windows para los botones, mediante la constante VbButtonFace

Para el ejemplo, colocar un Command1, colocar la propiedad Style en Graphical y pegar estas líneas en el formulario:

Texto plano Imprimir

1. Option Explicit  2.   3. ' -- Flag para que no se ejecute constantemente  4. ' -- el código del Form y del CommandButton  5. Dim Flag As Boolean  6.   7. Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, 

X As Single, Y As Single)  8.   9.     ' -- Establecer la fuente del commandButton en negrita y con su

brayado  10.     If Flag Then  11.         Command1.Font.Bold = True  12.         Command1.Font.Underline = True  13.         Command1.BackColor = vbWhite  14.         Flag = False  15.     End If  16.   17. End Sub  18.   19. Private Sub Form_MouseMove(Button As Integer, Shift As Intege

r, X As Single, Y As Single)  20.     ' -- Quita la negrita, el subrayado, y restaura el color 

de fondo  21.     If Flag = False Then  22.         Command1.Font.Bold = False  23.         Command1.Font.Underline = False  

106

Page 107: balanceo de lineas y calculo de parametros electricos en excel

24.         Command1.BackColor = vbButtonFace  25.         Flag = True  26.     End If  27.   28. End Sub  

Propiedad Default

Esta propiedad es muy útil en ciertas locaciones, sobre todo en formularios y programas que utilizan bases de datos, y opciones para buscar.

Default puede tener dos valores , True o False. Si está en True, el botón será el botón por defecto que se ejecutará cuando se presione la tecla enter. Por ejemplo hagamos de cuenta que nuestro programa contiene un botón. Ese botón ejecuta un código para buscar datos en una base de datos. Si el usuario en un momento determinado, se encuentra escribiendo datos en un control textbox, y presiona la tecla Enter, el CommandButton al tener la propiedad Default en True, ejecutará el código que tenga en el evento click. En este caso , en el evento clic, contendría todo el código para realizar la búsqueda de registros.

Un simple ejemplo

Coloca: Un control TextBox, un CommandButton. Pega el siguiente código

Texto plano Imprimir

1. Option Explicit  2.   3. Private Sub Command1_Click()  4.     MsgBox "Se ejecutó el evento Click del commandButton", vbInform

ation  5. End Sub  6.   7. Private Sub Form_Load()  8.     ' -- Establecer propiedad Default  9.     Command1.Default = True  10.       11.     MsgBox "Coloca el cursor en un control textbox para que t

ome el foco, " & _  

107

Option Explicit

' -- Flag para que no se ejecute constantemente' -- el código del Form y del CommandButtonDim Flag As Boolean

Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single

' -- Establecer la fuente del commandButton en negrita y con subrayado If Flag Then

Page 108: balanceo de lineas y calculo de parametros electricos en excel

12.            "y luego, presiona la tecla enter, y verás como de todas formas " & _  

13.            "se ejecutó el evento click ya que es el control por defecto del" & _  

14.            "formulario. ( Nota .Solo puede haber un solo botón con la propiedad " & _  

15.            "Default en un formuario)", vbInformation  16.       17. End Sub  

 

Propiedades de posición

Las propiedades de posición son las que permiten cambiar el tamaño y la posición en el objeto que lo contiene. estas propiedades son cuatro : Left, Top, Height y Width.

El siguiente ejemplo muestra como usar estas propiedades. Supongamos que nuestro formulario contiene un botón "Salir" en la parte inferior:

Ahora bien ¿ como hacer para que al presionar el botón de maximizar del formulario o cambiar de tamaño el formulario, el botón continúe situado en la esquina inferior derecha ? Para ello hay que modificar la propiedad Left y Top del botón. ¿ Pero donde colocar el código? para ello se debe colocar en el evento Resize del formulario.

108

Option Explicit

Private Sub Command1_Click() MsgBox "Se ejecutó el evento Click del commandButton", vbInformationEnd Sub

Private Sub Form_Load() ' -- Establecer propiedad Default Command1.Default = True

Page 109: balanceo de lineas y calculo de parametros electricos en excel

Puedes probar este simple ejemplo con el siguiente código:

Texto plano Imprimir

1. Option Explicit  2.   3. ' Valores para márgenes - Prueba cambiando estos valores  4. Private Const MARGEN_IZQUIERDO        As Single = 60  5. Private Const MARGEN_INFERIOR        As Single = 60  6.   7. Private Sub Command1_Click()  8.     Unload Me  9. End Sub  10.   11. Private Sub Form_Load()  12.     Command1.Caption = "Salir"  13. End Sub  14.   15. ' -- Posicionar el botón al cambiar de tamaño la ventana de f

ormulario  16. Private Sub Form_Resize()  17.     Command1.Left = (Me.ScaleWidth - Command1.Width) - MARGEN

_IZQUIERDO  18.     Command1.Top = (Me.ScaleHeight - Command1.Height) - MARGE

N_INFERIOR  19. End Sub  

 

Propiedad Enabled

Esta propiedad lo que hace es habilitar o deshabilitar el botón. Es una propiedad que la poseen casi todos los controles, tanto los de Visual basic, como otros controles de terceros ( controles ocx o Activex )

Aquí puedes ver ver un pequeño ejemplo de su uso.

Supongamos que nuestro programa contiene un un control de texto donde se ingresan datos para buscar registros en una base de datos. Y también tenemos un botón que contiene el código que debe ejecutar para realizar la búsqueda

109

Option Explicit

' Valores para márgenes - Prueba cambiando estos valoresPrivate Const MARGEN_IZQUIERDO As Single = 60Private Const MARGEN_INFERIOR As Single = 60

Private Sub Command1_Click() Unload MeEnd Sub

Page 110: balanceo de lineas y calculo de parametros electricos en excel

dentro de la base de datos. Si en algún momento el control de texto no contiene datos, es decir no contiene texto valga la redundancia, no sería necesario que el botón se encuentre habilitado, por el contrario, deberíamos deshabilitarlo.

Puedes probar este simple ejemplo, colocando un control Textbox , un botón y pegando el siguiente código en el formulario principal

Texto plano Imprimir

1. Option Explicit  2.   3.   4. Private Sub Command1_Click()  5.     MsgBox Text1.Text, vbInformation  6. End Sub  7.   8. Private Sub Form_Load()  9.     Text1.Text = ""  10.     Command1.Caption = "Buscar .."  11. End Sub  12.   13. ' -- El evento Change se produce cuando cambia el contenido  14. ' -- de la caja de texto  15. Private Sub Text1_Change()  16.     If Text1.Text = "" Then  17.        Command1.Enabled = False  18.     Else  19.        Command1.Enabled = True  20.     End If  21. End Sub  

 

110

Option Explicit

Private Sub Command1_Click() MsgBox Text1.Text, vbInformationEnd Sub

Private Sub Form_Load() Text1.Text = "" Command1.Caption = "Buscar .."

Page 111: balanceo de lineas y calculo de parametros electricos en excel

Modificar propiedades de varios controles

Si en el algún momento se necesita, por ejempo, habilitar o deshabilitar todos los botones que hay en el formulario, o por ejemplo camabiarle y establecerle otras propiedades que se deseen, puedes utilizar un bucle For Each para recorrer todos los controles del formulario,y utilizando el operador TypeOf de Visual basic, comprobar si el control dentro del bucle es de tipo CommandButton.

Nota. El ejemplo no tiene ninguna utilidad especifica, solo muestra el uso del ejemplo.

Debes colocar dos controles textBox. Text1 y Text2, y todos los botones que desees, por ejemplo 4 como mustra la imagen de abajo

Al colocar el cursor en el Text1 se habilitarán todos los botones, luego al colocar el cursor en el Text2, es decir cuando recibe el foco, se deshabilitarán todos los botones.

Texto plano Imprimir

1. Option Explicit  2.   3. Private Sub Form_Load()  4.     Command1.Caption = "Opción 1"  5.     Command2.Caption = "Opción 2"  6.     Command3.Caption = "Opción 3"  7.     Command4.Caption = "Opción 4"  8. End Sub  9.   10. ' \\ -- Procedimiento para activar y desactivar los botones  11. Sub EnabledDisabled(ByVal bValue As Boolean)  12.   13.     ' -- Recorrer todos los objetos y controles del form  14.     Dim xCtrl As Control  15.     For Each xCtrl In Me.Controls  16.         ' xCtrl ¿ es un Command Button ?  17.         If TypeOf xCtrl Is CommandButton Then  18.            ' si lo es, entonces habilitarlo o deshabilitarlo  19.            xCtrl.Enabled = bValue  20.         End If  

111

Page 112: balanceo de lineas y calculo de parametros electricos en excel

21.     Next  22. End Sub  23.   24. '\\ -- Deshabilitar  25. Private Sub Text2_GotFocus()  26.     Call EnabledDisabled(False)  27. End Sub  28.   29. '\\ -- Activar  30. Private Sub Text1_GotFocus()  31.     Call EnabledDisabled(True)  32. End Sub  

 

Propiedad MousePointer y Mouseicon

Estas dos propiedades son muy simples de usar y son comunes a la mayoría de objetos y controles de vb

Mousepointer devuelve o establece el tipo de puntero del mouse mostrado al pasar por encima de un objeto

MouseIcon establece un icono personalizado para el mouse

Ejemplo. Colocar un control ListBox y un botón. Pegar el siguiente código fuente en el formulario

Texto plano Imprimir

112

Option Explicit

Private Sub Form_Load() Command1.Caption = "Opción 1" Command2.Caption = "Opción 2" Command3.Caption = "Opción 3" Command4.Caption = "Opción 4"End Sub

' \\ -- Procedimiento para activar y desactivar los botones

Page 113: balanceo de lineas y calculo de parametros electricos en excel

1. Option Explicit  2.   3. Private Sub Form_Load()  4.   5.     With Command1  6.         ' -- Puntero de mouse personalizado - Pasar usar con íconos 

 7.         .MousePointer = 99  8.         ' -- usar el ícono del formulario ( Puedes especificar el q

ue desees cargandolo desde la ventana de propiedades o utilizando la función LoadPicture)  

9.         .MouseIcon = Me.Icon  10.     End With  11.   12.     ' -- Cargar la lista de punters de mouse para el botón  13.     With List1  14.         .AddItem "0 - Default"  15.         .AddItem "1 - Arrow"  16.         .AddItem "2 - Cross"  17.         .AddItem "3 - Beam"  18.         .AddItem "4 - Icon"  19.         .AddItem "5 - Size Ne SW"  20.         .AddItem "6 - Size Ne SW"  21.         .AddItem "7 - Size N S"  22.         .AddItem "8 - Size NW Se"  23.         .AddItem "9 - Up Arrow"  24.         .AddItem "10 - HourGlass"  25.         .AddItem "Custom"  26.     End With  27.       28. End Sub  29.   30. Private Sub List1_Click()  31.     ' -- Cambiar la propiedad MousePointer  32.     With List1  33.         If .ListIndex <> -1 Then  34.             Command1.MousePointer = .ListIndex  35.         End If  36.         If .ListIndex = .ListCount - 1 Then  37.            Command1.MousePointer = 99  38.            Command1.MouseIcon = Me.Icon  39.         End If  40.     End With  41. End Sub  

113

Page 114: balanceo de lineas y calculo de parametros electricos en excel

Métodos y funciones

Este control prácticamente no contiene métodos o funciones. El mas importante y el mas utilizado es el método SetFocus, que también lo posen muchos otros controles.

Lo que hace el método setFocus, es poder establecer el enfoque a un objeto especifico, en este caso al botón. Su uso es muy simple, solo basta con ejecutarlo desde alguna parte de nuestro programa para que el Commandbutton pase a tener el foco.

Una cosa muy importante a tener en cuenta , es que para poder establecer el foco a cualquier control de visual basic, el objeto se debe encontrar visible, y también se debe encontrar habilitado. Es decir, si la propiedad Visible o la propiedad Enabled del objeto se encuentran en False, esto producirá un error en tiempo de ejecución. Por ello siempre se debe colocar una rutina de error para poder controlar esto, o comprobando estas propiedades mediante una instrucción If Then

Para recrear este error puedes ejecutar este código

Coloca dos botones

Texto plano Imprimir

1. Option Explicit  2.   3. Private Sub Command2_Click()  4.     ' -- Esta instrucción generará un error, ya que le intentará pa

sar el foco  5.     ' -- al command1, que se encuentra deshabilitado  6.     Command1.SetFocus  7. End Sub  8.   9. Private Sub Form_Load()  10.     ' -- Deshabilitamos el Command1  11.     Command1.Enabled = False  

114

Option Explicit

Private Sub Form_Load()

With Command1 ' -- Puntero de mouse personalizado - Pasar usar con íconos .MousePointer = 99 ' -- usar el ícono del formulario ( Puedes especif icar el que desees cargandolo .MouseIcon = Me.Icon End With

Page 115: balanceo de lineas y calculo de parametros electricos en excel

12.     MsgBox "Presiona el Botón Command2", vbInformation  13. End Sub  

Para solucionarlo, simplemente puedes hacer algo asi

Colocar dos botones

Texto plano Imprimir

1. Option Explicit  2.   3. Private Sub Command2_Click()  4.     With Command1  5.         ' -- Si está visible y esta habilitado, entonces .. pasar e

l foco  6.         If .Visible And .Enabled Then  7.             .SetFocus  8.         End If  9.     End With  10. End Sub  11.   12. Private Sub Form_Load()  13.     MsgBox "Presiona el Botón Command2", vbInformation  14. End Sub  

 

115

Option Explicit

Private Sub Command2_Click() ' -- Esta instrucción generará un error, ya que le intentará pasar el foco ' -- al command1, que se encuentra deshabilitado Command1.SetFocusEnd Sub

Private Sub Form_Load() ' -- Deshabilitamos el Command1

Option Explicit

Private Sub Command2_Click() With Command1 ' -- Si está visible y esta habilitado, entonces .. pasar el foco If .Visible And .Enabled Then .SetFocus End If End WithEnd Sub

Page 116: balanceo de lineas y calculo de parametros electricos en excel

Eventos principales del control CommandButton

Aparte del evento Click que se ejecuta cuando lo presionamos, otros eventos importantes son:

Evento GotFocus y LostFocus : Se disparan dichos eventos cuando el control recibe o pierde el foco

MouseMove, MouseDown y MouseUp: El primero se dispara cuando el puntero del mouse se mueve encima del botón, MouseDown cuando el botón está abajo y cuando está arriba MouseUp

 

Por ejemplo para probar el uso de los métodos GotFocus y LostFocus (recibe y pierde el foco) colocar 3 CommandButton, Command1, Command2 y Command3. Luego un Label1 que mostrará el control que recibe el foco (GotFocus) y un Label2 que mostrará el control que pierde el foco (LosFocus)

Luego de añadir los controles pegar el código siguiente en el formulario

Texto plano Imprimir

1. Private Sub Command1_GotFocus()  2.     Label1 = "El foco lo tiene: " & Command1.Caption  3. End Sub  4.   5. Private Sub Command2_GotFocus()  6.     Label1 = "El foco lo tiene: " & Command2.Caption  7. End Sub  8.   9. Private Sub Command3_GotFocus()  10.     Label1 = "El foco lo tiene: " & Command3.Caption  11. End Sub  12.   13. Private Sub Command1_LostFocus()  14.     Label2 = "Perdió el foco el: " & Command1.Caption  15. End Sub  16.   17. Private Sub Command2_LostFocus()  18.     Label2 = "Perdió el foco el: " & Command2.Caption  19. End Sub  20.   21. Private Sub Command3_LostFocus()  22.     Label2 = "Perdió el foco el: " & Command3.Caption  23. End Sub  

116

Page 117: balanceo de lineas y calculo de parametros electricos en excel

 

Nota: en la ventana de código podés ver que tenés 2 combos o listas desplegables:

 

El combo de la izquierda muestra los objetos que tiene el formulario, es decir los controles, rutinas y funciones, y la lista de la derecha los eventos y métodos del objeto seleccionado en la lista izquierda.

En la captura del ejemplo anterior, se puede ver que cuando el cursor se encuentra dentro de la ventana de código está situado en un procedimiento determinado, las listas se actualizan mostrándote dicho objeto, por ejemplo el cursor está en el control u objeto llamado Command3 en el evento Gotfocus, y las listas desplegables muestran esto mismo.

Siguiendo el ejemplo anterior, para escribir código en el evento MouseMove del Command1 para que muestre un mensaje cuando pasa el mouse encima del botón, se tendría que seleccionar de la lista izquierda el Command1 de esta forma:

 

117

Private Sub Command1_GotFocus() Label1 = "El foco lo tiene: " & Command1.CaptionEnd Sub

Private Sub Command2_GotFocus() Label1 = "El foco lo tiene: " & Command2.CaptionEnd Sub

Private Sub Command3_GotFocus() Label1 = "El foco lo tiene: " & Command3.Caption

Page 118: balanceo de lineas y calculo de parametros electricos en excel

 

y después seleccionar el evento que se quiera utilizar disponible en el otro combo desplegable, en este caso el MouseMove

 

Al hacer esto en la ventana de código visual basic te agrega un procedimiento vacío:

 

118

Page 119: balanceo de lineas y calculo de parametros electricos en excel

 

Ahora el código que escribas dentro de este procedimiento se va a disparar cada vez que pases el mouse encima del Command1. Por ejemplo para mostrar un mensaje con la función MsgBox cada ves que pases el puntero encima, agrega lo siguiente:

Texto plano Imprimir

1. Option Explicit  2.   3. ' -- \\ Evento MouseMove  4. Private Sub Command1_MouseMove( _  5.                     Button As Integer, _  6.                     Shift As Integer, X As Single, Y As Single)  7.       8.     MsgBox "Estás encima del botón", vbInformation  9.       10. End Sub  

 

119

Option Explicit

' -- \\ Evento MouseMovePrivate Sub Command1_MouseMove( _ Button As Integer, _ Shift As Integer, X As Single, Y As Single) MsgBox "Estás encima del botón", vbInformation End Sub

Page 120: balanceo de lineas y calculo de parametros electricos en excel

Tomar la apariencia de los temas de windows para los botones

Por defecto el aspecto de los botones, no toma la apariencia del tema que tenga activo windows. Para poder hacer que los botones y el resto de los controles tengan la tengan, se puede utilizar un archivo Manifest.

En el siguiente enlace puedes ver un ejemplo de como implementarlo:

Tomar la apariencia de los temas de windows para los controles del programa

 La función específica del control OptionButton es permitirle al usuario elegir entre diferentes opciones dentro de un grupo de opciones. Este control no se utiliza de a uno solo, si no que se debe tener por lo menos 2 de ellos, ya que sería ilógico utilizar uno solo.

 

En este grupo de opciones solo puede estar un solo botón de opción seleccionado al mismo tiempo

 

 

120

Page 121: balanceo de lineas y calculo de parametros electricos en excel

Luego, de acuerdo a la opción seleccionada, se utiliza en algún procedimiento o función para realizar alguna opción u operación.

 

Propiedad Value del OptionButton

 

Esta es la propiedad mas importante de este control. Los valores que puede tener la propiedad Value son de tipo boolean (Verdadero - Falso) es decir True y False.

Para probar un ejemplo muy fácil de como verificar el valor de la propiedad Value , agrega 3 OptionButton dentro de un control Frame como muestra la imagen anterior.

Mediante la propiedad Caption le cambias el texto de cada botón de opción. Luego Agrega un Command1 y en el caption escribe Aceptar.

Ahora pega este código en el formulario:

 

Private Sub Command1_Click()'Si está seleccionado el Option1 se ejecuta la siguiente condiciónIf Option1.Value = True Then   MsgBox "Seleccionaste pagar en Efectivo"End If

'Si está seleccionado el Option2 estaIf Option2.Value = True Then   MsgBox "Seleccionaste pagar con Tarjeta de crédito"End If

'Si está seleccionado el Option3 se ejecuta esta otraIf Option3.Value = True Then   MsgBox "Seleccionaste pagar mediante Cheque"End If

End Sub

 

121

Page 122: balanceo de lineas y calculo de parametros electricos en excel

Al probar el ejemplo se puede ver que al seleccionar un botón de opción, y luego presionar el Command1, se evalúa mediante una condición If Then, el valor de los Option1, Option2 y Option3. El Optionbutton que se encuentre con el valor True en la propiedad Value , ejecutará la función MsgBox mostrando el mensaje correspondiente a la opción seleccionada.

Este control, al igual que control CommandButton y el control CheckBox, tiene la propiedad Style, que permite establecer la visualización del mismo en modo estándar o en modo gráfico. Los posibles valores son 0 - Standar o 1 - Graphical.

Las demás propiedades que posee son comunes a la mayoría de los otros controles del visual basic, como:

Propiedad Forecolor (color de la fuente) Propiedad Font ( para especificar el tipo de fuente, el estílo, el tamaño

etc...) Propiedad Enabled ( Para habilitar o deshabilitar el control ) Propiedad Hight y Width ( Ancho y alto del control ) Propiedad Backcolor ( color del fondo ) Propiedad ToolTipText ( Muestra un recuadro con información adicional

cuando el mouse está encima del control ) Propiedad Visible ( determina si el control estará visible - Los valores

son True y False )

 

Otro ejemplo del control OptionButton:

 

Coloca 2 controles OptionButton llamados Option1 y Option2 dentro de un control Frame (opcional). También colocar un control Label llamado Label1, como está en esta imagen:

 

122

Page 123: balanceo de lineas y calculo de parametros electricos en excel

 

Al Option1 en la propiedad Caption escribir " Mostrar la hora del sistema " y en el Option2 "Mostrar la Fecha del sistema".

Este ejemplo muy simple lo que hace es, cuando hacemos Click en el Option1, se visualizará la hora en el Label1 usando la función Time que devuelve la hora establecida del Pc. En cambio cuando hagamos Click en el Option2 se visualizará la Fecha, en este caso usamos la función Date del Visual Basic que recupera la Fecha.

Esto se realiza en el evento Click de cada OptionButton. El Evento Click es la propiedad por defecto. y desde la ventana de diseño al hacer un doble Click sobre el Option1, se abrirá la ventana de código con el procedimiento Click para este Option1, y todas las instrucciones de código que estén en ese procedimiento, entre Private Sub Option1_Click y End Sub, se ejecutarán cuando se le de un click a dicho botón de opción.

 

Pegar este código en el formulario:

Private Sub Form_Load()'Le establecemos en tiempo de ejecución algunas propiedades al control Label1'cuando carga el formulario

'Esto hace que el control Label se ajuste al textoLabel1.AutoSize = True'Esta línea cambia la propiedad Forecolor del Label en azulLabel1.ForeColor = vbBlueEnd Sub

Private Sub Option1_Click()'Mostramos en el Label1 la fecha del SistemaLabel1 = Date

123

Page 124: balanceo de lineas y calculo de parametros electricos en excel

End Sub

Private Sub Option2_Click()'Mostramos en el Label1 la Hora del sistemaLabel1 = TimeEnd Sub

 

Por último un detalle importante sobre el uso de los OptionButton

Por ejemplo supongamos que queremos en un mismo formulario, tener varios grupos de opciones .Para hacer esto se deben colocar el grupo de OptionButton contenidos en un control contenedor, por ejemplo un Frame, de esta manera cada grupo de OptionButton será único. Para que se entienda mejor un ejemplo.

Colocar 2 Controles Frame ( Frame1 y Frame2 ) . Dentro del Frame1 agregar 2 OptionButton (Option1 y Option2) y en el Frame2 otros 2 Option (Option3 y Option4)

Ahora puede haber varios Option Button seleccionados, cosa que no ocurriría si todos los OptionButton estarían en el mismo control contenedor.

Por último coloca el Option3 y Option4 dentro del Frame1. Ahora estos 2 son parte de un solo grupo dentro del Frame1, por lo tanto con esta prueba se ve que solo puede haber uno con la propiedad Value en True, es decir un solo botón de opción seleccionado al mismo tiempo.

 

Ejemplo para crear un OptionButton con gráficos

 

124

Page 125: balanceo de lineas y calculo de parametros electricos en excel

El siguiente ejemplo para descargar es muy simple, y es una idea para poder crear Controles OptionButton mediante gráficos cargados en controles Image por ejemplo:

 

Enlaces relacionados

Controles ocx para botones y ejemplos

Volver al índice

Tema 3.- funcionamiento de módulos.Modulo de cargar formulario

Para dar inicio se comenzó por buscar el logo de la empresa donde se tenía la firma de la compañía y se comenzó por cambiar el nombre al formulario, creando

una macro que se llamara ingresar clientes, la cual se grabo y se le asigno la macro a nuestra imagen.

125

Page 126: balanceo de lineas y calculo de parametros electricos en excel

Después, procedimos a diseñar nuestro formulario y darle nombre y editar cada una de sus partes como se pudo desarrollar en nuestra explicación de cómo

funciona nuestro programa.

Imagen donde se ve el diseño de nuestro formulario.

126

Page 127: balanceo de lineas y calculo de parametros electricos en excel

Imagen en la que se ve el cambio al formulario.

Antes de comenzar, se hizo el primer modulo el cual fue el que mediante en una imagen en Excel se pudiese cargar todo mi formulario y esto se logro mediante el

siguiente código.

El entorno de VBA para Microsoft Excel es un medio en el cual se unen dos grandes programas, uno es el programador Visual Basic y otro es el mismo Excel.

Este se puede programar con ciertas rutinas que se muestran al experimentar con el mediante una Macro, ya que al guardarla permite definir un código el cual

muestra al darle la opción de editar, para esto se muestra el siguiente ejemplo:

127

Page 128: balanceo de lineas y calculo de parametros electricos en excel

En esta figura se puede observar cuales son los botones con los cuales se piensa trabajar para desplegar las macros que hayamos guardado.

En esta figura están las macros que se han guardado y se muestran varios botones como es ejecutar, paso a paso, modificar, eliminar y opciones.

Si seleccionamos la opción de ejecutar, el código lo que hará será correr todo lo que se tenga programado en la rutina del código. Por ejemplo:

Si seleccionamos de nuestras macro la opción de uso de formulas la cual es la tercera y le damos ejecutar: automáticamente se ejecutara el siguiente código:

128

Page 129: balanceo de lineas y calculo de parametros electricos en excel

Para comenzar, es necesario destacar que el programa fue hecho a pasos mediante el programador de macros en Excel. Para esto nuestro primer objetivo fue programar la macro que me permitiera balancear las cargas de modo de que

sienia una tabla como la siguiente:

Imagen donde se puede ver un desbalance de mi sistema.

Lo que tiene que hacer mi programa en este caso es escribir varias opciones, donde me de la menor cantidad de porcentaje de desbalance, esto ayuda a que no toda la carga se vaya a una sola fase y se sobrecaliente y por ello llegue a haber

un cobro de luz muy caro por sobre calentamiento, ya que como sabemos el calentamiento hace que las moléculas internas de un conductor se agiten y por esta causa conduzca menos electricidad ya que los electrones chocan unos con

otros y no pueden viajar sin obstrucciones , como pasaría con una manguera cuando se obstruye por un doblez, el doblez seria el sobrecalentamiento que hace

que obstruya el paso de agua, el cual serían los electrónes.

Por lo cual se realizo el siguiente formulario:

129

Page 130: balanceo de lineas y calculo de parametros electricos en excel

En este cuadro se puede ver como pregunta mi programa por cuantas veces quiere que se cicle el codigo.

Aquí se puede ver como cambio la fases de modo de que de tener un desbalance de mas de 60% lo dejo en tan solo un 8,8%., Y Todavía se piensa en un futuro

bajar aún más el desbalance con el hecho de separar el numero de cargas. Nota: cabe aclarar que solo se llevara por mientras un balance de lo que ha metido el

usuario a la tabla de Excel.

Y el programa para este modulo de balanceo es:

Sub Procedimientobalancear(n As Integer)

Dim ncarateres, m As Integer

Dim a2, e2, f2(7) As Double

Dim d2(7) As String

130

Page 131: balanceo de lineas y calculo de parametros electricos en excel

'se inicializan mis variables donde e2 que es una variable que es parte de un arreglo que guarda todos los valores

' que se pueden anotar en la celda de balanceo de circuito

e2 = 0

a2 = Range("J" & ncolJ & "").Value

'se iguala m y n ya que es necesario cada vez que se actualiza el codigo decirle que la celda de mi respuesta sugerida, es

'igual a la respuesta minima encontrada en algun balanceo anterior o el primero

m = n

'ncarateres guarda cuantas fases son las que se estan contando y se empieza a tomar control mediante if´s

ncarateres = Range("E" & n).Value

If ncarateres = 1 Then

'aqui pertenece a tres opciones que puede haber por eso e2{0,1,2}, donde calcamos escribir {A,B,C}, y al final comparar

'cual fue el resultado mas bajo y guardarla en otra casilla y asi para las demas opciónes

For e2 = 0 To 2

If e2 = 0 Then

d2(e2) = "A"

'con Range se elige la celda D&n que es una celda que va cambiando de valor segun va cambiando n de nuestro procedi

'miento, donde se guarda el valor de la celda activa a una variabiable d2(e2) y se compara al final con f2(e2) qu

'e es el valor que nos retorno al escribir ya sea {A,B,C}. Y lo mismo pasa para las demás variables

Range("D" & n & "").Select

ActiveCell.FormulaR1C1 = d2(e2)

f2(e2) = Range("J" & ncolJ & "").Value

End If

131

Page 132: balanceo de lineas y calculo de parametros electricos en excel

If e2 = 1 Then

d2(e2) = "B"

Range("D" & n & "").Select

ActiveCell.FormulaR1C1 = d2(e2)

f2(e2) = Range("J" & ncolJ & "").Value

End If

If e2 = 2 Then

d2(e2) = "C"

Range("D" & n & "").Select

ActiveCell.FormulaR1C1 = d2(e2)

f2(e2) = Range("J" & ncolJ & "").Value

End If

'aqui se hace la comparación entre el valor que dio al entrar {A,B,C} Y lo que se tenia guardado de la variable

'al inicio y se guarda como opción de sugeriencia si fue menor en otra casilla la cual es la k&m

If f2(e2) <= a2 Then

Range("K" & m & "").Select

ActiveCell.FormulaR1C1 = d2(e2)

a2 = Range("J" & ncolJ & "").Value

End If

'finalmente aqui se toma de las tres opciones cual la opción sugerida ideal y se deja la opcion en la casillaa D&n.

If e2 = 2 Then

Range("K" & m & "").Select

d2(e2) = ActiveCell.FormulaR1C1

Range("D" & n & "").Select

ActiveCell.FormulaR1C1 = d2(e2)

132

Page 133: balanceo de lineas y calculo de parametros electricos en excel

End If

Next

End If

'Aqui sucede lo mismo que el parrafo anterior solo que es para dos fases {AB,AC,BC}

If ncarateres = 2 Then

For e2 = 3 To 5

If e2 = 3 Then

d2(e2) = "AB"

Range("D" & n & "").Select

ActiveCell.FormulaR1C1 = d2(e2)

f2(e2) = Range("J" & ncolJ & "").Value

End If

If e2 = 4 Then

d2(e2) = "AC"

Range("D" & n & "").Select

ActiveCell.FormulaR1C1 = d2(e2)

f2(e2) = Range("J" & ncolJ & "").Value

End If

If e2 = 5 Then

d2(e2) = "BC"

Range("D" & n & "").Select

ActiveCell.FormulaR1C1 = d2(e2)

f2(e2) = Range("J" & ncolJ & "").Value

End If

133

Page 134: balanceo de lineas y calculo de parametros electricos en excel

If f2(e2) <= a2 Then

Range("K" & m & "").Select

ActiveCell.FormulaR1C1 = d2(e2)

a2 = Range("J" & ncolJ & "").Value

End If

If e2 = 5 Then

Range("K" & m & "").Select

d2(e2) = ActiveCell.FormulaR1C1

Range("D" & n & "").Select

ActiveCell.FormulaR1C1 = d2(e2)

End If

Next

End If

'Y en este caso como es para tres fases y no se tiene una combinación pues simplemene se pone como sugeriencia y se

'agrega a la fila D la respuesta sin cambios.

If ncarateres = 3 Then

e2 = 6

d2(e2) = "ABC"

Range("D" & n & "").Select

ActiveCell.FormulaR1C1 = d2(e2)

f2(e2) = Range("J" & ncolJ & "").Value

Range("K" & m & "").Select

ActiveCell.FormulaR1C1 = d2(e2)

Range("D" & n & "").Select

ActiveCell.FormulaR1C1 = d2(e2)

End If

134

Page 135: balanceo de lineas y calculo de parametros electricos en excel

End Sub

Modulo de Balanceo de Linea.

Para este modulo lo único que hace es construir un balanceo de línea si ya se tienen capturados todos los datos requerido y no se desea agregar algo mas, en

esta pare se le pregunta cuantas veces se quiere balancear y si no se quiere balancear simplemente se sale del código, no iimportando que este lleno o vacio

alguna celda.

Private Sub CommandButton1_Click()

' se inicializan las variables, donde la columnaA es lo que va a contener mi celda que se va a verificar, que no sea

'igual a que diga principal, ya que principal es lo que me determina cuando debe detenerse y contabilizar en donde quedo mi

'cursor

columnaA = ""

'contar2 debe de iniciar en uno ya que no existe celda A0 como inicio, y bien sabemos que el inicio es A1.

contar2 = 1

'En este ciclo se cuenta cuantas veces tiene que bajar nuestra columna A2 por el incremento de contar2, donde es guardado,

'mediante un ciclo Do Loop, que significa hacer hast

Do

If columnaA = "PRINCIPAL" Then

Exit Do

End If

Range("A" & contar2 & "").Select

columnaA = ActiveCell.FormulaR1C1

contar2 = contar2 + 1

Loop

135

Page 136: balanceo de lineas y calculo de parametros electricos en excel

'se restan los primeros 12 renglones que se cuentan para el siguiente numero para que con esto podamos obtener el numero

'exacto de columnas a balancear o dicho de otra manera, solo cuenta los circuitos

contar2 = contar2 - 12

'se pone el lugar limite donde queremos balancear

limite = 10 + contar2

'se ingresa cuantas veces se desea repetir..para obtener un resultado mas exacto.

b = InputBox("ingresa cuantas veces quieres ciclar el for:", "desicion 2", "pon tu numero aqui:")

'se repite el numero de veces que se piensa repetir el ciclo volviendo a empezar en

For a = 1 To b

n = 11

ncolJ = contar2 + 12

For n = 11 To limite

Procedimientobalancear (n)

Next

Next

End Sub

136

Page 137: balanceo de lineas y calculo de parametros electricos en excel

Aquí se puede mostrar cual es el botón que indica nuestra función de balancear las líneas y todo lo anteriormente mostrado.

Modulo de agregar información y datos

Para este modulo se quizó agregar la información de los textbox que se fueran realizando

MODULO DE CONVERSIO DE CUALQUIER TIPO DE UNIDAD A WATTS

Resulta que mucho de el trabajo eléctrico que se realiza se tiene que trabajar en watts ya que es la unidad estándar de trabajo en el área eléctrica para esto se

tuvo que proceder a hacer uso de un combo box y de almacenar algunas opciónes en forma numérica para poder controlar mediante if´s y asi solo cambiar lo que

almacenaramos en una caja de texto para convertirla a watts directamente,

Los procedimientos fueron los siguientes

137

Page 138: balanceo de lineas y calculo de parametros electricos en excel

Figura donde se muestra el cambio de la selección por el nombre CONV.

Como se puede ver en la imagen, para poder hacer la base de datos para nuestro Combo Box1 primero se dio formato a la siguiente tabla hecha en Excel dándole

nombre de CONV. Donde después nosotros pudiéramos cambiar las propiedades del combo box que se llama Row Source y quedaría de la siguiente manera en el

programadador:

138

Page 139: balanceo de lineas y calculo de parametros electricos en excel

Cambio de formato de RowSource para que pueda cambiar la tabla dentro de los valores que se dieron a la Tabla con el nombre de CONV.

Para lo cual se tiene después un desplegado de todas las funciones que guardamos, como se puede observar en la siguiente imagen.

Después una breve explicación del código.:

139

Page 140: balanceo de lineas y calculo de parametros electricos en excel

'según el valor del dato que se halla asignado para dar valor a nuestro combobox si es igual a lo que esta escrito hara la

'función de convertirlo según su equivalencia.

If ComboBox1.Value = "H.P." Then

TextBox11.Value = TextBox4.Value * 745.7

End If

If ComboBox1.Value = "WATTS" Then

TextBox11.Value = TextBox4.Value * 1

End If

If ComboBox1.Value = "KILOWATTS" Then

TextBox11.Value = TextBox4.Value * 1000

End If

If ComboBox1.Value = "JULIO POR SEGUNDO" Then

TextBox11.Value = TextBox4.Value * 1

End If

If ComboBox1.Value = "CABALLO DE VAPOR" Then

TextBox11.Value = TextBox4.Value * 735.499

End If

If ComboBox1.Value = "ft lbf/s" Then

TextBox11.Value = TextBox4.Value * 1.355818

End If

If ComboBox1.Value = "BTU/h" Then

TextBox11.Value = TextBox4.Value * 0.29329722222222

End If

If ComboBox1.Value = "BTU/s" Then

TextBox11.Value = TextBox4.Value * 1055.87

End If

140

Page 141: balanceo de lineas y calculo de parametros electricos en excel

If ComboBox1.Value = "KILOCALORIA/h" Then

TextBox11.Value = TextBox4.Value * 1.1630555555556

End If

If ComboBox1.Value = "KILOCALORIA/s" Then

TextBox11.Value = TextBox4.Value * 4187

End If

End Sub

Private Sub ComboBox2_Change()

ComboBox2.RowSource = "OPCIONES"

End Sub

MODULO DE SITUACION DE LOS CONDUCTORES

Para este y otros módulos se tuvieron que cargar 4 tablas de la norma oficial la cual son de las más usadas para calcular calibres de los conductores.

Se realizo lo siguiente:

Se hizo una tabla para las primeras tres situaciones llamando a la hoja situación, que se refiere a mis tres tablas de diferentes artículos, como se ve a continuación.

141

Page 142: balanceo de lineas y calculo de parametros electricos en excel

La idea de esto es que mi código al detectar que sepa mi programa cargar las tres situaciones y a cada una le asigne un numero, como se puede ver en la imagen.

Y esto se carga con el siguiente código:

Modulo de conductor

Para este modulo es importante primero saber cómo definí su tabla, y la definí de la siguiente manera:

Para cada tipo de conductor le corresponde una situación, por ejemplo: si eligo la situación 1 en mi código de conductor me dara dos opciones ya sea la del cobre o

el aluminio, mas sin embargo si se elige la situación tres tengo tre opciones de

142

Page 143: balanceo de lineas y calculo de parametros electricos en excel

conductores, una va a ser el cobre, otro el níquel y el ultimo va a ser el aluminio, ahora queda analizar su código:

Private Sub cbosituacion_Change()

'primero se añade un numero a toda la lista de nuestro indice anterior sumandole 1 por que empieza en 0

IndiceSit = cbosituacion.ListIndex + 1

'se dimensiona un contador

Dim ii As Integer

'se limpia la caja del combobox del conductor

cboconductor.Clear

'se empieza a trabajar con la hoja de excel que se llama "Conductor

With Sheets("Conductor")

'se comienza a contar des de mi celda ii=2 hasta el final que es .Range("A" & Rows.Count).End(xlUp).Row

For ii = 2 To .Range("A" & Rows.Count).End(xlUp).Row

'si la celda ii de la columna 1 es igual a mi indice del inicio entonces se añade a la lista del combobox su valor

If .Cells(ii, 1) = IndiceSit Then

cboconductor.AddItem .Cells(ii, 3).Value

End If

'se continua contando

Next ii

End With

End Sub

En esta imagen vemos que es lo que se quiere lograr de opciones de las siguientes tablas…

143

Page 144: balanceo de lineas y calculo de parametros electricos en excel

enterrados a 30°C temp. Ambientetamaño nominal temperatura nominal del conductor (vease Tabla 310-13) Tamaño nominal

mm2

60°C 75°C 90°C 60°C 75°C 90°C

AWGKcmil

Tipos Tipos Tipos Tipos Tipos TiposTW* RHW* RHH* UF* RHW* RHW-2

TWD* THHW* RHW-2 XHHW* XHHWCCE THW THHN* BM-AL XHHW-2

TWD-UV THW-LS THHW DRSTHWN* THHW-LSXHHW* THW-2*

TT XHHW*XHHW-2

Cobre Cobre Cobre Aluminio Aluminio Aluminio0,8235 --- --- 14 --- --- --- 18

1,307 --- --- 18 --- --- --- 162,082 20 20 25 --- --- --- 143,307 25 25 30 --- --- --- 12

5,26 30 35 40 --- --- --- 108,367 40 50 55 --- --- --- 8

13,3 55 65 75 40 50 60 621,15 70 85 95 55 65 75 426,67 85 100 110 65 75 85 333,62 95 115 130 75 90 100 242,41 110 130 150 85 100 115 153,48 125 150 170 100 120 135 1/067,43 145 175 195 115 135 150 2/085,01 165 200 225 130 155 175 3/0107,2 195 230 260 150 180 205 4/0

126,67 215 255 290 170 205 230 250152,01 240 285 320 190 230 255 300177,34 260 310 350 210 250 280 350202,68 280 335 380 225 270 305 400253,35 320 380 430 260 310 350 500304,02 355 420 475 285 340 385 600354,69 385 460 520 310 375 420 700380,03 400 475 535 320 385 435 750405,37 410 490 555 330 395 450 800456,04 435 520 585 355 425 480 900506,71 455 545 615 375 445 500 1000633,39 495 590 665 405 485 545 1250760,07 520 625 705 435 520 585 1500886,74 545 650 735 455 545 615 1750

1013,42 560 665 750 470 560 630 2000

144

Page 145: balanceo de lineas y calculo de parametros electricos en excel

enterrados a 30°C temp. Ambientetamaño nominal temperatura nominal del conductor (vease Tabla 310-13) Tamaño nominal

mm2

60°C 75°C 90°C 60°C 75°C 90°C

AWGKcmil

Tipos Tipos Tipos Tipos Tipos TiposTW* RHW* RHH* UF* RHW* RHW-2

TWD* THHW* RHW-2 XHHW* XHHWCCE THW THHN* BM-AL XHHW-2

TWD-UV THW-LS THHW DRSTHWN* THHW-LSXHHW* THW-2*

TT XHHW*XHHW-2

Cobre Cobre Cobre Aluminio Aluminio Aluminio0,8235 --- --- 14 --- --- --- 18

1,307 --- --- 18 --- --- --- 162,082 20 20 25 --- --- --- 143,307 25 25 30 --- --- --- 12

5,26 30 35 40 --- --- --- 108,367 40 50 55 --- --- --- 8

13,3 55 65 75 40 50 60 621,15 70 85 95 55 65 75 426,67 85 100 110 65 75 85 333,62 95 115 130 75 90 100 242,41 110 130 150 85 100 115 153,48 125 150 170 100 120 135 1/067,43 145 175 195 115 135 150 2/085,01 165 200 225 130 155 175 3/0107,2 195 230 260 150 180 205 4/0

126,67 215 255 290 170 205 230 250152,01 240 285 320 190 230 255 300177,34 260 310 350 210 250 280 350202,68 280 335 380 225 270 305 400253,35 320 380 430 260 310 350 500304,02 355 420 475 285 340 385 600354,69 385 460 520 310 375 420 700380,03 400 475 535 320 385 435 750405,37 410 490 555 330 395 450 800456,04 435 520 585 355 425 480 900506,71 455 545 615 375 445 500 1000633,39 495 590 665 405 485 545 1250760,07 520 625 705 435 520 585 1500886,74 545 650 735 455 545 615 1750

1013,42 560 665 750 470 560 630 2000

145

Page 146: balanceo de lineas y calculo de parametros electricos en excel

Al aire libre temp.30°Ctamaño nominal temperatura nominal del conductor (vease Tabla 310-13) Tamaño nominal

mm2

60°C 75°C 90°C 60°C 75°C 90°C

AWGKcmil

Tipos Tipos Tipos Tipos Tipos TiposTW RHW RHH UF RHW RHH

THHW RHW-2 XHHW RHW-2THW THHN USE-2

THW-LS THHW XHHTHWN THW-LS XHHWXHHW THWN-2 XHHW-2

XHHWXHHW-2

Cobre Cobre Cobre Aluminio Aluminio Aluminio0,8235 --- --- 18 --- --- --- 18

1,307 --- --- 24 --- --- --- 162,082 25 30 35 --- --- --- 143,307 30 35 40 --- --- --- 12

5,26 40 50 55 --- --- --- 108,367 60 70 80 --- --- --- 8

13,3 80 95 105 60 75 80 621,15 105 25 140 80 100 110 426,67 120 145 165 95 115 130 333,62 140 170 190 110 135 150 242,41 165 195 220 130 155 175 153,48 195 230 260 150 180 205 1/067,43 225 265 300 175 210 235 2/085,01 260 310 350 200 240 275 3/0107,2 300 360 405 235 280 315 4/0

126,67 340 405 455 265 315 355 250152,01 375 445 505 290 350 395 300177,34 420 505 570 330 395 445 350202,68 455 545 615 355 425 480 400253,35 515 620 700 405 485 545 500304,02 575 690 780 455 540 615 600354,69 630 755 855 500 595 675 700380,03 655 785 855 515 620 700 750405,37 680 812 920 535 645 725 800456,04 730 870 985 580 700 785 900506,71 780 935 1055 625 750 845 1000633,39 890 1065 1200 710 855 960 1250760,07 980 1175 1325 795 950 1075 1500886,74 1070 1280 1445 875 1050 1185 1750

1013,42 1155 1385 1560 960 1150 1335 2000

146

Page 147: balanceo de lineas y calculo de parametros electricos en excel

0 a 2000v, de 150°C a 250°C en canalización o cablestamaño nominal temperatura nominal del conductor (vease Tabla 310-13) Tamaño nominal

mm2

150°C 200°C 250°C 150°C

AWGKcmil

TIPOS TIPOS TIPOS TIPOFEP FEP PFAH ZFEPB FEPB TFESF SF

COBRE NIQUEL O NIQUIEL RECUBIERTO DE COBRE ALUMINIO

0,8235 --- --- --- --- 181,307 --- --- --- --- 162,082 34 36 39 --- 143,307 43 45 54 --- 12

5,26 55 60 73 --- 108,367 76 83 93 --- 8

13,3 96 110 117 75 621,15 120 125 148 94 426,67 143 152 166 109 333,62 160 171 191 124 242,41 186 197 215 145 153,48 215 229 244 169 1/067,43 251 260 273 198 2/085,01 288 297 308 227 3/0107,2 332 346 361 260 4/0

126,67 --- --- --- --- 250152,01 --- --- --- --- 300177,34 --- --- --- --- 350202,68 --- --- --- --- 400253,35 --- --- --- --- 500304,02 --- --- --- --- 600354,69 --- --- --- --- 700380,03 --- --- --- --- 750405,37 --- --- --- --- 800456,04 --- --- --- --- 900506,71 --- --- --- --- 1000633,39 --- --- --- --- 1250760,07 --- --- --- --- 1500886,74 --- --- --- --- 1750

1013,42 --- --- --- --- 2000

147

Page 148: balanceo de lineas y calculo de parametros electricos en excel

Como se puede observar en las siguientes tablas primero esta la situación para la que fue hecha cada tabla y después temperaturas y tipo de material, ara lo cual estan diferentes entre cada una de ellas y también los tipos de aislantes para los

que puede trabajar cada parte de la tabla a lo que le corresponden ciertos amperajes y que a su vez le corresponden ciertos calibres en AWG ó Kcmil, para

esto son los combo box que pusimos en cada parte del formulario, como se puede ver en la siguiente figura.

Para la opción de tipo de temperatura no cambia mucho el código lo único que cambia es a que elemento vamos a llamar pero es el mismo procedimiento

148

Page 149: balanceo de lineas y calculo de parametros electricos en excel

Como se puede ver para elegir la temperatura es el mismo procedimiento que para elegir el conductor, lo único que cambia es el nombre de los combosboxes

que vamos a utilizar.

Private Sub cbotemperatura_Change()

IndiceTemp = cbotemperatura.ListIndex + 1

Dim jj As Integer

cboaislante.Clear

With Sheets("Aislamiento")

For jj = 2 To .Range("A" & Rows.Count).End(xlUp).Row

If .Cells(jj, 1) = IndiceSit And .Cells(jj, 2) = IndiceConduc And .Cells(jj, 3) = IndiceTemp Then

cboaislante.AddItem .Cells(jj, 5)

End If

Next jj

End With

End Sub

Pero eso si su base de datos es mas amplia como veremos en su diagrama de procedencia:

149

Page 150: balanceo de lineas y calculo de parametros electricos en excel

En este caso vemos que para cada temperatura existe dos o hasta tres tipos de conductores y para cada tipo de situación existen 2 o tres tipo de conductores y así es como se va ramificando nuestras opciones, para abarcar las 3 tablas que

tenemos.

Asi pues, cuando elegimos una situación, se activa un índice de la columna situación y cuando elegimos en otro combo box un conductorse activa un código

de conductor y nos despliega esa lista de opciones y finalmente elegimos la opción que nos da para elegir la temperatura, pero no acaba todo ahí, también se

debe elegir el aislante por lo cual se hizo la siguiente tabla.

CODIGO DE SITUACIÓN

CODIGO DE CONDUCTOR

CODIGOTEMPERATURA

CODIGO AISLAMIENTO

AISLAMIENTO

1 1 1 1 TW*1 1 1 2 TWD*1 1 1 3 CCE1 1 1 4 TWD-UV1 1 2 1 RHW*1 1 2 2 THHW*

150

Page 151: balanceo de lineas y calculo de parametros electricos en excel

1 1 2 3 THW1 1 2 4 THW-LS1 1 2 5 THWN*1 1 2 6 XHHW*1 1 2 7 TT1 1 3 1 RHH*1 1 3 2 RHW-21 1 3 3 THHN*1 1 3 4 THHW1 1 3 5 THHW-LS1 1 3 6 THW-2*1 1 3 7 XHHW*1 1 3 8 XHHW-21 2 1 1 UF*1 2 2 1 RHW*1 2 2 2 XHHW*1 2 2 3 BM-AL1 2 3 1 RHW-21 2 3 2 XHHW1 2 3 3 XHHW-21 2 3 4 DRS2 1 1 1 TW2 1 2 1 RHW2 1 2 2 THHW2 1 2 3 THW2 1 2 4 THW-LS2 1 2 5 THWN2 1 2 6 XHHW2 1 3 1 RHH2 1 3 2 RHW-22 1 3 3 THHN2 1 3 4 THHW2 1 3 5 THW-LS2 1 3 6 THWN-22 1 3 7 XHHW2 1 3 8 XHHW-22 2 1 1 UF2 2 2 1 RHW2 2 2 2 XHHW2 2 3 1 RHH2 2 3 2 RHW-22 2 3 3 USE-22 2 3 4 XHH2 2 3 5 XHHW2 2 3 6 XHHW-23 1 1 1 FEP3 1 1 2 FEPB

151

Page 152: balanceo de lineas y calculo de parametros electricos en excel

3 1 1 3 SF3 1 2 1 FEP3 1 2 2 FEPB3 1 2 3 SF3 2 1 1 PFAH3 2 1 2 TFE3 3 2 1 Z

Modulo de calculo de caliber, corriente e ITM

Se utilizo algunas funciones de Excel que me permiten el control y ubicación de un numero inmediato superior para selección de calibre y primero se extrajo la

corriente a la que debía de trabajar nuestro equipo debido a nuestra carga, voltaje, potencia, numero de fases y para que pudiera trabajar nuestras formulas

152

Page 153: balanceo de lineas y calculo de parametros electricos en excel

Figura donde se puede ver cómo funciona nuestra función coincidir anidada en índice para poder extraer el amperaje inmediato superior,

La función coincidir tiene la siguiente sintaxis COINCIDIR(valor_buscado,matriz_buscada, [tipo_de_coincidencia]) la función lo que me hace es devolver un valor que corresponda al tipo de coincidencia que yo desee en una matriz buscada, pero muchas de las veces devolviéndome el valor

de la posición vertical y no el valor y para ello se utiliza la función índice, la cual su sintaxis es la siguiente: INDICE(matriz; núm_fila; [núm_columna]), en este caso

como con la función coincidir ya tenemos el calibre exacto, lo único que procedemos es a encontrar que amperaje es con el el que se esta trabajando para

dar un amperaje inmediato superior.

Ahora para esto antes bien se tuvo que saber de que calibre era nuestro conductor y esto se hizo con la formula de coincidir, pero de otra manera.

153

Page 154: balanceo de lineas y calculo de parametros electricos en excel

Fórmula para encontrar el calibre que le corresponde según el amperaje.

Con esta fórmula lo que hacemos es de nuestro amperaje que estamos buscando buscar de todos nuestros amperajes el mayor que le sigue y contabilizarlo de

manera de fila para que nuestra función índice nos retorne que valor es el que le corresponde.

Es necesario invertir las tres tablas para que pueda funcionar nuestra función coincidir y pueda encontrar el mayor de toda la tabla.

Aquí una demostración de cómo quedaron las tablas:

enterrados a 30°C temp. Ambientetamaño nominal temperatura nominal del conductor (vease Tabla 310-13) Tamaño

nominal

mm2

60°C 75°C 90°C 60°C 75°C 90°C

AWGKcmil

Tipos Tipos Tipos Tipos Tipos TiposTW* RHW* RHH* UF* RHW* RHW-2

TWD* THHW* RHW-2 XHHW* XHHWCCE THW THHN* BM-AL XHHW-2

TWD-UV THW-LS THHW DRSTHWN* THHW-LSXHHW* THW-2*

TT XHHW*XHHW-2

154

Page 155: balanceo de lineas y calculo de parametros electricos en excel

Cobre Cobre Cobre AluminioAluminio

Aluminio

BUSCAR84,7386363

6

COINCIDIR0,26136363

6INDICE

AMPERAJE DE MINIMA DIFERENCIA 85

AMPERAJE INMEDIATO SUPERIOR 85 85 95 85 90 85

#CALIBRE INMEDIATO SUPERIOR 3 4 4 1 2 3

1013,42 560 665 750 470 560 630 2000886,74 545 650 735 455 545 615 1750760,07 520 625 705 435 520 585 1500633,39 495 590 665 405 485 545 1250506,71 455 545 615 375 445 500 1000456,04 435 520 585 355 425 480 900405,37 410 490 555 330 395 450 800380,03 400 475 535 320 385 435 750354,69 385 460 520 310 375 420 700304,02 355 420 475 285 340 385 600253,35 320 380 430 260 310 350 500202,68 280 335 380 225 270 305 400177,34 260 310 350 210 250 280 350152,01 240 285 320 190 230 255 300126,67 215 255 290 170 205 230 250

107,2 195 230 260 150 180 205 4/085,01 165 200 225 130 155 175 3/067,43 145 175 195 115 135 150 2/053,48 125 150 170 100 120 135 1/042,41 110 130 150 85 100 115 133,62 95 115 130 75 90 100 226,67 85 100 110 65 75 85 321,15 70 85 95 55 65 75 4

13,3 55 65 75 40 50 60 6

155

Page 156: balanceo de lineas y calculo de parametros electricos en excel

8,367 40 50 55 0 0 0 85,26 30 35 40 0 0 0 10

3,307 25 25 30 0 0 0 122,082 20 20 25 0 0 0 141,307 0 0 18 0 0 0 16

0,8235 0 0 14 0 0 0 18

Al aire libre temp.30°Ctamaño nominal temperatura nominal del conductor (vease Tabla 310-13) Tamaño

nominal

mm2

60°C 75°C 90°C 60°C 75°C 90°C

AWGKcmil

Tipos Tipos Tipos Tipos Tipos TiposTW RHW RHH UF RHW RHH

THHW RHW-2 XHHW RHW-2THW THHN USE-2

THW-LS THHW XHHTHWN THW-LS XHHWXHHW THWN-2 XHHW-2

XHHWXHHW-2

Cobre Cobre Cobre Aluminio Aluminio Aluminio

BUSCAR84,738636

4

AMPERAJE DE MINIMA DIFERENCIA 80

AMPERAJE INMEDIATO SUPERIOR 105 145 105 95 100 110

#CALIBRE INMEDIATO SUPERIOR 4 3 6 3 4 4

1013,42 1155 1385 1560 960 1150 1335 2000886,74 1070 1280 1445 875 1050 1185 1750760,07 980 1175 1325 795 950 1075 1500633,39 890 1065 1200 710 855 960 1250506,71 780 935 1055 625 750 845 1000456,04 730 870 985 580 700 785 900

156

Page 157: balanceo de lineas y calculo de parametros electricos en excel

405,37 680 812 920 535 645 725 800380,03 655 785 855 515 620 700 750354,69 630 755 855 500 595 675 700304,02 575 690 780 455 540 615 600253,35 515 620 700 405 485 545 500202,68 455 545 615 355 425 480 400177,34 420 505 570 330 395 445 350152,01 375 445 505 290 350 395 300126,67 340 405 455 265 315 355 250

107,2 300 360 405 235 280 315 4/085,01 260 310 350 200 240 275 3/067,43 225 265 300 175 210 235 2/053,48 195 230 260 150 180 205 1/042,41 165 195 220 130 155 175 133,62 140 170 190 110 135 150 226,67 120 145 165 95 115 130 321,15 105 25 140 80 100 110 4

13,3 80 95 105 60 75 80 68,367 60 70 80 0 0 0 8

5,26 40 50 55 0 0 0 103,307 30 35 40 0 0 0 122,082 25 30 35 0 0 0 141,307 0 0 24 0 0 0 16

0,8235 0 0 18 0 0 0 18

0 a 2000v, de 150°C a 250°C en canalización o cablestamaño nominal temperatura nominal del conductor (vease Tabla 310-13) Tamaño nominal

mm2

150°C 200°C 250°C 150°C

AWGKcmil

TIPOS TIPOS TIPOS TIPOFEP FEP PFAH ZFEPB FEPB TFESF SF

COBRE

NIQUEL O NIQUIEL

RECUBIERTO DE COBRE

ALUMINIO

BUSCAR 84,73863636

157

Page 158: balanceo de lineas y calculo de parametros electricos en excel

AMPERAJE DE MINIMA DIFERENCIA 76

AMPERAJE INMEDIATO SUPERIOR 96 110 93 94

#CALIBRE INMEDIATO SUPERIOR 6 6 8 4

1013,42 0 0 0 0 2000886,74 0 0 0 0 1750760,07 0 0 0 0 1500633,39 0 0 0 0 1250506,71 0 0 0 0 1000456,04 0 0 0 0 900405,37 0 0 0 0 800380,03 0 0 0 0 750354,69 0 0 0 0 700304,02 0 0 0 0 600253,35 0 0 0 0 500202,68 0 0 0 0 400177,34 0 0 0 0 350152,01 0 0 0 0 300126,67 0 0 0 0 250

107,2 332 346 361 260 4/085,01 288 297 308 227 3/067,43 251 260 273 198 2/053,48 215 229 244 169 1/042,41 186 197 215 145 133,62 160 171 191 124 226,67 143 152 166 109 321,15 120 125 148 94 4

13,3 96 110 117 75 68,367 76 83 93 0 8

5,26 55 60 73 0 103,307 43 45 54 0 122,082 34 36 39 0 141,307 0 0 0 0 16

0,8235 0 0 0 0 18

158

Page 159: balanceo de lineas y calculo de parametros electricos en excel

Tema 4.- Alcances posibles.Los alcances posibles a generar en un futuro están en el alcance de la programación. Actualmente existen programas como AutoCAD que ya pueden realizar macros y lograr una conexión entre las macros de Excel y el programa de VBA será de gran utilidad, ya que podremos controlar la instalación de nuestro complejo a desarrollar e ir generando la ficha de cálculo de cableado eléctrico, con la que podemos trazar un programa que nos resuelva toda la instalación en cuestión.

Otro de los alcances que tenemos es la de poder hacer un programa que funcione como simulador mediante la aplicación de ActiveX en la cual se puede generar un entorno gráfico como lo es workbench y otros programas similares.

Tema 5.- obtención de resultados.

La obtención de resultados se puede ver en que el cálculo de calibre de conductores de un circuito que en tiempo de búsqueda del cálculo del conductor y sus varios fenómenos que le afectan. Se tiene un ahorro de tiempo considerable. Ya que solo nos tardamos en meter el tipo de situación en el que está el conductor, mientras que en el otro se tiene que recurrir a la norma y hacer varios procesos matemáticos que vienen incluidos en el programa.

Conclusiones:Para lograr una automatización de un proceso técnico es recomendable contar con varios desarrolladores que tengan conocimientos en VBA Excel para poder lograr una automatización del sistema con un ahorro de tiempo considerable y con función de poka-yoke para el usuario, por lo que se recomienda si es posible:

1.- Dejar un tiempo considerable de investigación sobre la programación de dichas técnicas.

2.-Dejar un tiempo como de unos 3 meses de desarrollo en equipo para hacer el programa lo más fácil posible y rápido.

3.- Dejar un manual sencillo de cómo funciona el programa y un especialista que pueda atender en caso de falló.

Bibliografía:1.-Gustavo Sanchez. (2009). Caracteristicas Generales de Visual Basic . jueves,

26 de marzo de 2009, de blogger.com Sitio web: http://visualbasicv6.blogspot.mx/2009/03/caracteristicas-generales-de-visual.html

2.- Ben Chinowsky. (2009). Macros y el Editor de Visual Basic. 03/03/2016, de Microsoft MSDN Sitio web: https://msdn.microsoft.com/es-es/library/office/ee814737%28v=office.14%29.aspx?

159