Subido por HENRY PECEROS OSCCO

codigos ultimo

Anuncio
Class 01
TEORIA
Variable :posicion o espacio reservado en memoria para almacenar un dato de forma temporal
atributos:
Atributos de una Variable:
-Nombre de las variables : es el identificador de una variable, que permite el acceso a
ella para almacenar y recuperar los datos.
-tipo de variables: define la clase de dato que se puede almacenar.
-Ambito o alcance de una Variable: Define el espacio o lugar , donde la variable será reconocida y
por lo tanto empleada
e.g : ambito global , publico , local, private
Tipos:
Ambito Local : Dentro de un Pocedimiento
Ambito a Nivel de Hoja oFormulario : dentro de la seccion de declaraciones de la
hoja o del formula
Ambito Publico o Global : DEntro dela seccion de declaraciones de un modulo
(Usar la sentencia Public)
********************************AMBITO O ALCANCE:*****************************
define el espacio o lugar , donde una variable sera reconocida y por lo tanto emplearse
tipo:
A NIVEL LOCAL: declaracion en dentro de un procedimientto
A NIVEL DE HOJA O FORMULACRIO: declaracion dentro de la Hoja o dentro del formulio , en la
seccion de declaraciones
A NIVEL PUBLICO :
Declaracin dentroo de un Modulo , usando la sentencia PUBLIC
La variable es Global sera ,reconocida en todo el proyecto
******************************************************************************
SENTENCIA DE DECLARACIONES:
DIM (NIVEL DE HOJA , formulario y hoja) ,PRIVATE , pUBLIC
Dentro de un procedimiento :
DIM x as integer ( entero)
DIM costo As SINGLE (reales )
DIM ok AS Boolean
Nombre de Variable: Comeinza por un caracter alfabetico las restantes caracteres puede ser
alfabeticos , numericos or the underline symbol
VALID NAME:
-p_UNIT
-c2
-pRECIE
INVALID NAME:
if, DIr,LEN , MID
---------------------------------ALSO : COST UNIT ( no space)
------------------------------------------------------------------------type of variable:
FOR NUMBER:
-byte : for whole numbers between [0-255]
Integer for whole numbers between [-32767 to 32768]
-Single :for reals of simple precision (8 decimal digits)
-double:
for reals of double precision (16 decimal digits)
-Decimal:
for reals of alta precision (16 decimal digits)
----------------------------------------------------------------------string acepta cadenas de carateres
--------------Boolen Acepta los valortes de tru and false
----------------------------------------------------------------------Date acepta fechas
-------------------------------------object establece referencia a objetos
-----------------------------------------------------------------------------Variant Acepta diferentes tipos de datos ala vez
DIM X, Z AS SINGLE (ojo solo considera ala z tipo single el otro es
------------------------------------------------------------------------------FORMAS DE DECLARACION _
-explicit declaration
DIM OK AS BOOLEAN
DIM importe As Double
-implied declaration
X=20
SE INFIERE entire
price=24.5
Real
Msg="bienvenido"
-string
SW= true
Para diseñar un formulario
Una vez creado el formulario lo siguiente es diseñar los elementos dentro del formulario. Para
ello es necesario habilitar el cuadro de herramientas, para lo cual deberá hacer clic en el boton
Etiqueta : Label1
Cuadro de texto : textbox1
Cuadro Combinado : ComboBox1
Cuadro de lista : ListBox1
Casilla: CheckBox1
B.opcion : OptionButton1
B.comando : CommandButton1
Barra de desplazamiento: ScrollBar1
Boton de numero : SpinButton1
Imagen : Image1
Class 01
Declaración tipo modulo
Declaración tipo global
Respuesta de msgbox
Private Sub cndcerrar_Click()
Dim rpt As Integer
rpt = MsgBox("esta seguro", vbYesNo + vbQuestion, " CONFIRMAR")
If rpt = vbYes Then
Unload Me ' quitar el formulario , me abrevia userform1
Else
MsgBox "operacion cancelar", vbOKOnly + vbCritical, "AVISO"
End If
End Sub
FILTRAR
Sub extraer()
Dim rpt As Integer
rpt = MsgBox("esta seguro de extraer", vbOKCancel + vbExclamation, "informacion")
If rpt = vbCancel Then
MsgBox "operacion cancelar", vbOKOnly + vbCritical, "AVISO"
ElseIf rpt = vbOK Then ‘ hasta solo else no poner nada de vbok then
Range("A8:H108").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"O4:O5"), CopyToRange:=Range("K8:R8"), Unique:=False
End If
End Sub
Código para cerrar y/o guardar con un click
Private Sub CommandButton1_Click()
Dim rpt As Integer
rpt = MsgBox("desea guardar los cambios ", vbYesNoCancel + vbQuestion, "confirmar")
Select Case rpt
Case Is = vbNo
ActiveWorkbook.Close SAVECHANGES:=False
Case Is = vbYes
ActiveWorkbook.Close SAVECHANGES:=True
Case Is = vbCancel
Exit Sub
End Select
End Sub
Class02
Buscar datos función FIND
En ves de código puede ir una celda , en especifico
Private Sub CMDACEPTAR_Click()
Range("C3").Value = TextBox1.Text
codigo = Range("CODIGO") 'CODIGO ES NOMBRE DELA CELDA Y codigo es variable tipo variant
Set c = Worksheets("BUSQUEDA").Range("CODIGOS").Find(codigo, LookIn:=xlValues) 'CODIGOS
LISTA DE TODOS LOS codigos
If c Is Nothing Then
MsgBox "ingrese codigo"
Else
celd = c.Address
For a = 1 To 6
Range("b6").Offset(0, a - 1) = Range(celd).Offset(0, a)
Next a
' Range("COMPAÑIA") = Range(celd).Offset(0, 1)
' Range("DIRECCION") = Range(celd).Offset(0, 2)
' Range("CIUDAD") = Range(celd).Offset(0, 3)
' Range("PAIS") = Range(celd).Offset(0, 4)
' Range("TELEFONO") = Range(celd).Offset(0, 5)
' Range("FAX") = Range(celd).Offset(0, 6)
End If
Range("CODIGO").Select
Unload Me
End Sub
Código para llamar calculadora
Private Sub CMDCALCULADORA_Click() ' llamada a un calculadora
ID = Shell("calc.exe", vbNormalFocus)
End Sub
Código para borrar datos de una tabla
Método 1
Range(Cells(10, 2), Cells(10, 6).End(xlDown)).Clear
Método 2
Range("B10").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Clear
Método 3
Dim f As Integer
f = 10 ' para iniciar el for
Range("b10").Select
Do Until IsEmpty(ActiveCell.Value) ' isempty
Range(Cells(f, 2), Cells(f, 6)).Clear
ActiveCell.Offset(1, 0).Select
f=f+1
Loo
CODIGO PARA HACER LIMPIAR HOJA Y FORMULARIO
Private Sub CommandButton1_Click()
Range(Cells(10, 2), Cells(10, 6).End(xlDown)).Clear
TextBox1 = Empty ‘ SON VARIOS TEXTBOX SE PUEDE HACER UN BUCLE
TextBox2 = Empty
TextBox3 = Empty
Range("D3:D5") = ClearContents
TextBox1.SetFocus ' enfoca ala primer caja de texto para ingreso de datos
PONER HORA Y FECHA EN FORMULARIO CUANDO ESTE ACTIVA ESTA
Private Sub UserForm_Activate()
LBLHORA.Caption = "Fecha: " & Date 'fecha actual
LBLFECHA.Caption = "HORA: " & Time 'hora actual
End Sub
CLASS03
CODIGO PARA BUSCAR CON FIND EN IMÁGENES
Private Sub CommandButton1_Click()
Dim C As Range
'ORD = Range("f5")
Set C = Worksheets("CLIENTES").Range("ORDEN").Find(Range("f5"), LookIn:=xlValues)
'Set c = Worksheets("CLIENTES").Range("ORDEN").Find(ORD, LookIn:=xlValues)
If Not C Is Nothing Then
Celda = C.Address
Range("c9") = Worksheets("CLIENTES").Range(Celda).Offset(0, 1)
Range("c11") = Worksheets("CLIENTES").Range(Celda).Offset(0, 2)
Range("c13") = Worksheets("CLIENTES").Range(Celda).Offset(0, 3)
Range("c15") = Worksheets("CLIENTES").Range(Celda).Offset(0, 4)
Range("c17") = Worksheets("CLIENTES").Range(Celda).Offset(0, 5)
Range("c19") = Worksheets("CLIENTES").Range(Celda).Offset(0, 6)
End If
Range("f17") = Range("c13")
Range("c9").Select
'+++++++++++++++++++otra manera
'Dim C As Range
'Set C = Worksheets("CLIENTES").Range("ORDEN").Find(Range("f5"), LookIn:=xlValues)
'If Not C Is Nothing Then
'pos = C.Address
'For x = 0 To 5
'Cells(2 * x + 9, 3) = Worksheets("CLIENTES").Range(pos).Offset(0, x + 1)
'Next x
'End If
'Range("f17") = Range("c13")
'Range("c9").Select
End Sub
CODIGO PARA INSERTAR DATO CON BUSCAR V
Private Sub CommandButton1_Click()
Dim codigo As String * 7
Dim alumno As String
Dim FechaNac As Date
Dim Edad As Byte
Dim Pago As Currency ' variable tipo moneda
Dim nota(3) As Integer
Dim Promedio As Single
Dim Datos As Range
'toma de datos
codigo = Range("b3")
alumno = Range("b4")
FechaNac = Range("b5")
Edad = Int((Date - FechaNac) / 365)
'obtencion del costo del curso
COSTO = Application.WorksheetFunction.VLookup(codigo, Sheets("Hoja2").Range("Cursos"), 3)
Pago = COSTO
Range("B7") = Pago
'toma de notas
nota(1) = Range("b8")
nota(2) = Range("b9")
nota(3) = Range("b10")
'calculo del promedio de notas
Promedio = (nota(1) + nota(2) + nota(3)) / 3
'copia de datos del alumno en el registroo de inscripccion
Range("a14").Select
N = ActiveCell.CurrentRegion.Rows.Count
ActiveCell.Offset(N, 0).Select
ActiveCell = codigo
ActiveCell.Offset(0, 1) = alumno
ActiveCell.Offset(0, 2) = FechaNac
ActiveCell.Offset(0, 3) = Edad
ActiveCell.Offset(0, 4) = Pago
ActiveCell.Offset(0, 5) = nota(1)
ActiveCell.Offset(0, 6) = nota(2)
ActiveCell.Offset(0, 7) = nota(3)
ActiveCell.Offset(0, 8) = Application.WorksheetFunction.Round(Promedio, 1)
ActiveCell.Range("c1:D1,G1:I1").HorizontalAlignment = xlCenter ' centrea pero aparit de nueva
celda ref
ActiveCell.Range("g1:i1").NumberFormat = "00"
'borrar los datos de la ficha de inscripcion
MsgBox "registro Realizado con esxito", , "aviso"
Range("B3:B10").ClearContents
Range("b3").Select
End Sub
CODIGO PARA MOSTAR Y OCULTAR CUANDO ESTAMOS SOBRE UNA
HOJA CELDA ACTIVA CON COLOR DE LETRAS
DEBERA DE ESTAR ACTIVADO EN LA HOJA QUE ESTAMOS TRABAJANADO
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Address = "$B$3" Then
Range("lista").Font.ColorIndex = 1 ' color de fuente negro
Else
Range("lista").Font.ColorIndex = 2 'color BLANCO , decir transparente
End If
End Sub
Class 06
Limpiar los valores dentro del cuadro de texto
Private Sub CommandButton1_Click()
For a = 1 To 6
Me("TextBox" & a).Value = Empty ‘en vez de Empty puede ser “ “
Next
TextBox1.SetFocus
End Sub
MANERA MAS LARGA E INCORRECTA
Private Sub CommandButton1_Click()
TextBox1.Text = Empty
TextBox2.Text = Empty
TextBox3.Text = Empty
TextBox4.Text = Empty
TextBox5.Text = Empty
TextBox6.Text = Empty
TextBox1.SetFocus
End Sub
Calculo ylo muestra dentro de un formulario con formato
Private Sub CommandButton3_Click()
MsgBox "el calculo se realizara", vbOKOnly + vbExclamation, "aviso"
TextBox5.Text = Format(0.1 * Val(TextBox4.Text), "0.00")
TextBox6.Text = Format(Val(TextBox4.Text) - Val(TextBox5.Text), "0.00")
End Sub
Suma de valores CON FOR de textbox
Private Sub CommandButton1_Click()
For a=1 to 4
Sum=sum+val(me(“textbox” & a))
Next a
Me.textbox5.value=sum & “.00”
End Sub
Código para ir ala ultima fila e insertar datos de un formularios
Sub pece()
Range("h6").Offset(Range("h6").CurrentRegion.Rows.Count, 0).Select
For x =0 to 1
ActiveCell.Offset(0, x + 1) = Range("B" & (x + 3))
Next x
End sub
Private Sub CommandButton1_Click()
For i = 1 To 4
Cells(4 + i, 9).Value = Me("textbox" & i).Text
'Cells(5, 9).Value = TextBox1.Text
'Cells(6, 9).Value = TextBox2.Text
'Cells(7, 9).Value = TextBox3.Text
'Cells(8, 9).Value = TextBox4.Text
Next i
MsgBox "DATOS ACTUALIZADOS"
End Sub
CODIGO PARA IMPRIMIR EN WORD
Private Sub CommandButton1_Click()
'crear nuevo obajeto de aplicacion word
Dim appWord As Word.Application
Set appWord = New Word.Application ' construcctor de la instancia
' en do donde nosotros ingresamos el rango a copiar
Txtrango = "B" & TextBox1 + 2 & ":" & "F" & TextBox2 + 2
MsgBox "rango establecido exitosamente..", , "aviso"
Range(Txtrango).Copy
With appWord
'co estec odigo se abrira word y se creara un documento nuevo
.Visible = True
.Activate
.Documents.Add
End With
appWord.Selection.PasteSpecial link:=True
'se pegara en el documento lo seleccioonado en la hja de calculo
'liberar objeto word
Set appWord = Nothing
End Sub
ASIGNAR VALOR A UN CUADRO DE TEXTO APARTIR DE UN BOTON
NUMERICO
Private Sub SpinButton2_Change()
TextBox2.Text = SpinButton2.Value
End Sub
GENERA ALEATORIO
Private Sub CommandButton1_Click()
Dim MIRANGO As Range
Set MIRANGO = Range("g5:g18")
MIRANGO.Formula = "=INT(16*RAND())" 'INT :TOMAR LA PARTE ENTERA
MIRANGO.Font.Bold = True
Range("G19").Formula = "=SUM(G5:G18)"
End Sub
USO DE CHECK BOX PARA IMPEDIR MOVERSE POR OTRO CELDAS
Private Sub CheckBox1_Click()
If CheckBox1 Then
Worksheets("Hoja5").ScrollArea = "a3:A14" ' scrollarea :area de desplazamiento
Else
Worksheets("Hoja5").ScrollArea = ""
End If
End Sub
ANEXO
Descargar