Tutorial N°3
                            Excel 2010
                                Prof. Cristian Salazar C.
                                cristiansalazar@uach.cl

En este tutorial aprenderemos :
• Qué es una macro
• Insertar botones de Formularios y asociarlos a una macro
• Insertar botones de imprimir y algunos códigos VBA
• Registro de Datos en una hoja nueva
• Utilizar una Función de Pesos a letras
• Validación de datos y Validación de datos con fórmulas.
Puedes ver el video de este tutorial
                  en:

• http://youtu.be/cxJf28Ky2Lk


• Además de:
Insertar controles o diálogos en Excel 2010
http://youtu.be/4TH7Uu8Uqqc
Función digito verificador, listas dependientes,
validación fecha Excel 2010
http://youtu.be/GrMq-eEd1o0
¿Qué es una macro?
Una macro es un comando, conjunto de
instrucciones, que podemos programar para que
Excel haga cosas que se supone que no realiza.

Una macro es un supercomando: un
procedimiento que realiza, en un solo paso, una
tarea que normalmente requeriría varias
instrucciones y mucho tiempo.
Función Dígito Verificador
Function dv(a)
  j=2
  For I = 0 To Len(a) - 1
     aux = aux + Val(Mid$(a, Len(a) - I, 1)) * j
     If j > 6 Then
         j=2
     Else
         j=j+1
     End If
  Next I
  aux1 = 11 - (aux Mod 11)
  If aux1 < 10 Then
     dv = aux1
  Else
     dv = "K"
  End If
End Function
                            otro ejemplo en:
                            http://v3.juque.cl/weblog/2006/06/14/validar-rut-en-excel.html
Function PesosMN(tyCantidad As Currency) As String
Dim lyCantidad As Currency, lyCentavos As Currency, lnDigito As Byte, lnPrimerDigito As Byte, lnSegundoDigito As Byte, lnTercerDigito As Byte, lcBloque As String, lnNumeroBloques As Byte, lnBloqueCero
Dim laUnidades As Variant, laDecenas As Variant, laCentenas As Variant, I As Variant 'Si esta como Option Explicit
tyCantidad = Round(tyCantidad, 2)
lyCantidad = Int(tyCantidad)
lyCentavos = (tyCantidad - lyCantidad) * 100
laUnidades = Array("UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE", "DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", "DIECIOCHO", "DIECINUEVE",
"VEINTE", "VEINTIUN", "VEINTIDOS", "VEINTITRES", "VEINTICUATRO", "VEINTICINCO", "VEINTISEIS", "VEINTISIETE", "VEINTIOCHO", "VEINTINUEVE")
laDecenas = Array("DIEZ", "VEINTE", "TREINTA", "CUARENTA", "CINCUENTA", "SESENTA", "SETENTA", "OCHENTA", "NOVENTA")
laCentenas = Array("CIENTO", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS", "QUINIENTOS", "SEISCIENTOS", "SETECIENTOS", "OCHOCIENTOS", "NOVECIENTOS")
lnNumeroBloques = 1
Do
lnPrimerDigito = 0
lnSegundoDigito = 0
lnTercerDigito = 0
lcBloque = ""
lnBloqueCero = 0
For I = 1 To 3
lnDigito = lyCantidad Mod 10
If lnDigito <> 0 Then
Select Case I
Case 1
lcBloque = " " & laUnidades(lnDigito - 1)
lnPrimerDigito = lnDigito
Case 2
If lnDigito <= 2 Then
lcBloque = " " & laUnidades((lnDigito * 10) + lnPrimerDigito - 1)
Else
lcBloque = " " & laDecenas(lnDigito - 1) & IIf(lnPrimerDigito <> 0, " Y", Null) & lcBloque
End If
lnSegundoDigito = lnDigito
Case 3
lcBloque = " " & IIf(lnDigito = 1 And lnPrimerDigito = 0 And lnSegundoDigito = 0, "CIEN", laCentenas(lnDigito - 1)) & lcBloque
lnTercerDigito = lnDigito
End Select
Else
lnBloqueCero = lnBloqueCero + 1
End If
lyCantidad = Int(lyCantidad / 10)
If lyCantidad = 0 Then
Exit For
End If
Next I
Select Case lnNumeroBloques
Case 1
PesosMN = lcBloque
Case 2
PesosMN = lcBloque & IIf(lnBloqueCero = 3, Null, " MIL") & PesosMN
Case 3
PesosMN = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, " MILLON", " MILLONES") & PesosMN
End Select
lnNumeroBloques = lnNumeroBloques + 1
Loop Until lyCantidad = 0
PesosMN = "SON: " & PesosMN & IIf(tyCantidad > 1, " PESOS ", " PESO ")
                                                                                        Fuente: http://gchable.wordpress.com/2007/10/14/4/
End Function
Validación datos con fórmula

 =SUMAPRODUCTO(((ESERR(ENC
 ONTRAR((EXTRAE(MAYUSC(E15)
 ;FILA(INDIRECTO("1:"&LARGO(E
 15)));1));"AÁBCDEÉFGHIÍJKLMN
 ÑOÓPQRSTUÚVWXYZ "))))*1)=0
Fuente: http://dataage.blogspot.com/2009/01/validar-caracteres-contenidos-en-un.html
Agrega datos de registro a otra hoja
Sub REGISTRO()

'agrega la fecha en la hoja Registro
  Range("E4").Select
  Selection.Copy
  Sheets("REGISTRO ").Select
  Range("A6").Select
  Selection.Insert Shift:=xlDown

'agrega nombre en la hoja Registro
  Sheets("INGRESO DE DATOS").Select
  Range("E15").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("REGISTRO ").Select
  Range("B6").Select
  Selection.Insert Shift:=xlDown

…………………………………………. Lo mismo para todos los datos que se deseen agregar en otra hoja.
Limpia los datos de ingreso
     Sheets("INGRESO DE DATOS").Range("E4").ClearContents
     Sheets("INGRESO DE DATOS").Range("E15").ClearContents
     Sheets("INGRESO DE DATOS").Range("E16").ClearContents
     Sheets("INGRESO DE DATOS").Range("E17").ClearContents
     Sheets("INGRESO DE DATOS").Range("E18").ClearContents
     Sheets("INGRESO DE DATOS").Range("E19").ClearContents
     Sheets("INGRESO DE DATOS").Range("E20").ClearContents
     Sheets("INGRESO DE DATOS").Range("E21").ClearContents
     Sheets("INGRESO DE DATOS").Range("E7").ClearContents
     Sheets("INGRESO DE DATOS").Range("F14").ClearContents

   End Sub



Fuente: http://dataage.blogspot.com/2009/01/validar-caracteres-contenidos-en-un.html
Códigos Botones
Sub Botón3_Haga_clic_en()
Hoja1.PrintPreview
End Sub

Sub REGRESAR()
Hoja1.Activate
End Sub
Tutorial N°3
                                       Excel 2010
www.facebook.com/economicasuach




                         Prof. Cristian Salazar C.
                         cristiansalazar@uach.cl

Tutorial n°3 excel 2010

  • 1.
    Tutorial N°3 Excel 2010 Prof. Cristian Salazar C. cristiansalazar@uach.cl En este tutorial aprenderemos : • Qué es una macro • Insertar botones de Formularios y asociarlos a una macro • Insertar botones de imprimir y algunos códigos VBA • Registro de Datos en una hoja nueva • Utilizar una Función de Pesos a letras • Validación de datos y Validación de datos con fórmulas.
  • 2.
    Puedes ver elvideo de este tutorial en: • http://youtu.be/cxJf28Ky2Lk • Además de: Insertar controles o diálogos en Excel 2010 http://youtu.be/4TH7Uu8Uqqc Función digito verificador, listas dependientes, validación fecha Excel 2010 http://youtu.be/GrMq-eEd1o0
  • 3.
    ¿Qué es unamacro? Una macro es un comando, conjunto de instrucciones, que podemos programar para que Excel haga cosas que se supone que no realiza. Una macro es un supercomando: un procedimiento que realiza, en un solo paso, una tarea que normalmente requeriría varias instrucciones y mucho tiempo.
  • 4.
    Función Dígito Verificador Functiondv(a) j=2 For I = 0 To Len(a) - 1 aux = aux + Val(Mid$(a, Len(a) - I, 1)) * j If j > 6 Then j=2 Else j=j+1 End If Next I aux1 = 11 - (aux Mod 11) If aux1 < 10 Then dv = aux1 Else dv = "K" End If End Function otro ejemplo en: http://v3.juque.cl/weblog/2006/06/14/validar-rut-en-excel.html
  • 5.
    Function PesosMN(tyCantidad AsCurrency) As String Dim lyCantidad As Currency, lyCentavos As Currency, lnDigito As Byte, lnPrimerDigito As Byte, lnSegundoDigito As Byte, lnTercerDigito As Byte, lcBloque As String, lnNumeroBloques As Byte, lnBloqueCero Dim laUnidades As Variant, laDecenas As Variant, laCentenas As Variant, I As Variant 'Si esta como Option Explicit tyCantidad = Round(tyCantidad, 2) lyCantidad = Int(tyCantidad) lyCentavos = (tyCantidad - lyCantidad) * 100 laUnidades = Array("UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE", "DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", "DIECIOCHO", "DIECINUEVE", "VEINTE", "VEINTIUN", "VEINTIDOS", "VEINTITRES", "VEINTICUATRO", "VEINTICINCO", "VEINTISEIS", "VEINTISIETE", "VEINTIOCHO", "VEINTINUEVE") laDecenas = Array("DIEZ", "VEINTE", "TREINTA", "CUARENTA", "CINCUENTA", "SESENTA", "SETENTA", "OCHENTA", "NOVENTA") laCentenas = Array("CIENTO", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS", "QUINIENTOS", "SEISCIENTOS", "SETECIENTOS", "OCHOCIENTOS", "NOVECIENTOS") lnNumeroBloques = 1 Do lnPrimerDigito = 0 lnSegundoDigito = 0 lnTercerDigito = 0 lcBloque = "" lnBloqueCero = 0 For I = 1 To 3 lnDigito = lyCantidad Mod 10 If lnDigito <> 0 Then Select Case I Case 1 lcBloque = " " & laUnidades(lnDigito - 1) lnPrimerDigito = lnDigito Case 2 If lnDigito <= 2 Then lcBloque = " " & laUnidades((lnDigito * 10) + lnPrimerDigito - 1) Else lcBloque = " " & laDecenas(lnDigito - 1) & IIf(lnPrimerDigito <> 0, " Y", Null) & lcBloque End If lnSegundoDigito = lnDigito Case 3 lcBloque = " " & IIf(lnDigito = 1 And lnPrimerDigito = 0 And lnSegundoDigito = 0, "CIEN", laCentenas(lnDigito - 1)) & lcBloque lnTercerDigito = lnDigito End Select Else lnBloqueCero = lnBloqueCero + 1 End If lyCantidad = Int(lyCantidad / 10) If lyCantidad = 0 Then Exit For End If Next I Select Case lnNumeroBloques Case 1 PesosMN = lcBloque Case 2 PesosMN = lcBloque & IIf(lnBloqueCero = 3, Null, " MIL") & PesosMN Case 3 PesosMN = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, " MILLON", " MILLONES") & PesosMN End Select lnNumeroBloques = lnNumeroBloques + 1 Loop Until lyCantidad = 0 PesosMN = "SON: " & PesosMN & IIf(tyCantidad > 1, " PESOS ", " PESO ") Fuente: http://gchable.wordpress.com/2007/10/14/4/ End Function
  • 6.
    Validación datos confórmula =SUMAPRODUCTO(((ESERR(ENC ONTRAR((EXTRAE(MAYUSC(E15) ;FILA(INDIRECTO("1:"&LARGO(E 15)));1));"AÁBCDEÉFGHIÍJKLMN ÑOÓPQRSTUÚVWXYZ "))))*1)=0 Fuente: http://dataage.blogspot.com/2009/01/validar-caracteres-contenidos-en-un.html
  • 7.
    Agrega datos deregistro a otra hoja Sub REGISTRO() 'agrega la fecha en la hoja Registro Range("E4").Select Selection.Copy Sheets("REGISTRO ").Select Range("A6").Select Selection.Insert Shift:=xlDown 'agrega nombre en la hoja Registro Sheets("INGRESO DE DATOS").Select Range("E15").Select Application.CutCopyMode = False Selection.Copy Sheets("REGISTRO ").Select Range("B6").Select Selection.Insert Shift:=xlDown …………………………………………. Lo mismo para todos los datos que se deseen agregar en otra hoja.
  • 8.
    Limpia los datosde ingreso Sheets("INGRESO DE DATOS").Range("E4").ClearContents Sheets("INGRESO DE DATOS").Range("E15").ClearContents Sheets("INGRESO DE DATOS").Range("E16").ClearContents Sheets("INGRESO DE DATOS").Range("E17").ClearContents Sheets("INGRESO DE DATOS").Range("E18").ClearContents Sheets("INGRESO DE DATOS").Range("E19").ClearContents Sheets("INGRESO DE DATOS").Range("E20").ClearContents Sheets("INGRESO DE DATOS").Range("E21").ClearContents Sheets("INGRESO DE DATOS").Range("E7").ClearContents Sheets("INGRESO DE DATOS").Range("F14").ClearContents End Sub Fuente: http://dataage.blogspot.com/2009/01/validar-caracteres-contenidos-en-un.html
  • 9.
  • 10.
    Tutorial N°3 Excel 2010 www.facebook.com/economicasuach Prof. Cristian Salazar C. cristiansalazar@uach.cl