Está en la página 1de 12

SELECCIONA FINAL DE LA CELDA ACTIVA, ABAJO, IZQUIERDA, DERECHA Y ARRIBA Activecell.

end(xldown) Activecell end(xltoleft) Activecell end(xltoright) Activecell end(xlup) SELECCIONA LA LINEA SIGUIENTE Activecell.offset(1,0).select PARA RECORRER UN RANGO ESTABLECIDO POR EL USUARIO A TRAVES DE REFEDIT Dim <variable> As Range Set <variable> = Range(Refedit.value) SELECCIONA UNA CELDA O RANGO DE CELDAS Range(A1:B3).Select Range(B2).Activate AGREGAR NUEVA HOJA Y ESTABLECE NOMBRE DE LA HOJA Dim NuevaHoja as Objeto Set NuevaHoja = Worksheets.Add NuevaHoja.Name = Presupuesto GRABAR ARCHIVO Active.Workbook.Save SOLICITAR UN RANGO A TRAVES DE INPUTBOX Dim MiRango as Range Set MiRango = Application.inputbox(Prompt.:=Seleccione un Rango para Traspaso VERIFICA QUE EL RANGO SELECCIONADO SEA DE LA COLUMNA A If Mirando.column <> 1 Then Msgbox El Rango Seleccionado NO es Valido, VbCritical Exit Sub End if PONE NOMBRE DE RANGO A CELDA ACTIVA BAJA 5 LINEAS, COLOCA HOLA, VUELVE A CELDA NOMBRE Y ELIMINA NOMBRE ActiveCell.Name = Nombre ActiveCell.Offset(5,0).Activate ActiveCell.Value = Hola Application.GotoReference:= Nombre ActiveWorkbook.Names(Nombre).Delete

SELECCIONAR HOJA DENTRO DEL LIBRO Sheets(Nombre).Select BORRAR CONTENIDO DE LA CELDA Selection.ClearContents SELECCIONAR TODA LA HOJA Cells.Select ELIMINA COLUMNA, FILA, CELDA Selection.EntireColumn.Delete Selection.EntireRow.Delete Selection.Delete shift := xlup INSERTAR COLUMNA, FILA, CELDA Selection.Entirecolumn.Insert Selection.EntireRow.Insert Selection.Insert shift := XlDown ACTIVAR UN ARCHIVO ABIERTO Windows (NombreArchivo).Activate SOLICITA UNO O VARIOS RANGOS DEL MISMO LIBRO U OTROS LIBROS ABIERTOS Y PROCESAR EL RANGO SELECIONADO Dim MiCelda, MiProc as Range Set MiCelda = Application.IputBox(prompt:=Ingrese Rango ,Type:=8) For Each MiProc In MiCelda [instrucciones] Next SELECCIONA UNA CARPETA DE UN LIBRO ABIERTO Worksheets(nombre carpeta).Activate SELECCIONA UN RANGO Range(nombre rango).Activate INSERTA UNA LINEA SI LA FILA SIGUIENTE CUMPLE LA CONDICION If ActiveCell.Offset(1,0).Value=contenido celda then ActiveCell.EntireRow.Insert

IR AL FINAL DE LA SELECCION Y POSESIONARSE EN LA LINEA SIGUIENTE ActiveCell.End(xlDown).Select INSERTA LINEA SI DOS FILAS MAS ABAJO DE CELDA ACTIVA TIENE DATOS If ActiveCell.Offset(2,0)<> then Selection.EntireRow.Insert End if INGESA DATOS DE UN LISTVIEW A LA PLANILLA EXCEL Dim a as Integer For a= 1 to [nombre userform].[nombre listview].ListItem.Count ActiveCell.Offset(0,6).Value= [nombre userform].[nombre listview].ListItem(a).SubItem(2) Next a (2) corresponde a columna del Listview a traspasar, numero variable PONE UNA FORMULA EN LA CELDA ACTIVA ActiveCell.Offset(0, 12).FormulaR1C1 = "=r[-1]c+rc[-2]-rc[-1]" Pone la formula a 12 columnas de la posicin actual ActiveCell.FormulaR1C1 = ("=subtotal(9,r7c13:r10000c13)") Pone la formula en la celda activa PONE UNA FORMULA A PARTIR DE LA CELDA ACTIVA 5 COLUMNAS A LA DERECHA (SUMA HACIA ARRIBA) Dim fila as string fila = "=SUM(r[-" & ActiveCell.Row - 6 & "]c:r[-1]c)" ActiveCell.Offset(0, 5).FormulaR1C1 = fila

CAPTURA LA SELECCIN ACTUAL Y LA TRANSFORMA EN UN RANGO PARA TRABAJAR CELDA A CELDA


Public Sub PositivoNegativo() Dim Rs As String Dim Rg As Range Rs = ActiveWindow.RangeSelection.Address(False, False) For Each Rg In Range(Rs) If Rg.Value > 0 Then Rg.Value = Rg.Value * -1 End If Next End Sub 'DESPLIEGA TODOS LOS NOMBRES DE LAS HOJAS QUE CONTIENE EL LIBRO Sub NombredeHojas() Dim celda As Integer Dim Hoja As Worksheet celda = 1 For Each Hoja In Worksheets Sheets(1).Cells(celda, 1).Value = Hoja.Name celda = celda + 1

Next Hoja End Sub SUMA COLUMNAS 2 A 9 QUE ESTAN A LA DERECHA DE LA CELDA ACTIVA Y ELIMINA LA LINEA QUE SU SUMA ES CERO Public Sub SumaCero() Dim S As Double Dim i As Integer Do While ActiveCell.Value <> "" S=0 For i = 2 To 9 S = S + ActiveCell.Offset(0, i).Value Next i If S = 0 Then Selection.EntireRow.Delete Else ActiveCell.Offset(1, 0).Activate End If Loop End Sub

REDONDEAR CELDAS
'Redondea el contenido numerico de la celda a cero decimal Dim Rr As Range Dim Ss As Range Dim Zz As Double Set Rr = Selection For Each Ss In Rr Zz = Round(Ss, 0) Ss.Value = Zz Ss.NumberFormat = "#,##0" Next Ss

FORMATEAR FUENTE Cells.Select With Selection.Font .Name = "MS Sans Serif" .Size = 10 End With LNEAS DE DIVISIN ActiveWindow.DisplayGridlines = False INDICE DE COLORES ActiveWorkbook.Colors(44) = RGB(236, 235, 194) 'verde COLOREAR RANGO

Range("A1:B10").Interior.ColorIndex = 44 CAMBIAR ENTRE ESTILOS A1 / RC Application.ReferenceStyle = xlA1Application.ReferenceStyle = xlR1C1

Pregunta : Cmo puedo anular el efecto de la pulsacin de teclas como el RePag, AvPag, Esc o similares al trabajar con formularios? Respuesta : Si quieres anular la pulsacin de alguna tecla al trabajar con formularios, primero debes ir a la ventana de propiedades del formulario y poner la propiedad Tecla de vista previa (KeyPreview) a S. De esta manera, se fuerza a que el formulario sea el primero en detectar la pulsacin de cualquier tecla, antes de que lo haga el control activo en ese momento, que, de otra manera, sera el primero en hacerlo. Despus deberemos utilizar algn tipo de cdigo para detectar la pulsacin de la tecla en el evento Al bajar una tecla (KeyDown) y anularla. Este evento detecta prcticamente todas las pulsaciones de teclas, en detrimento del evento Al presionar una tecla (KeyPress) que slo detecta las teclas tpicas de la escritura como son los caracteres alfanumricos y los smbolos utilizados en los diferentes idiomas. En nuestro caso, podemos llamar a una funcin genrica que he construdo y que servir para anular cualquier tipo de tecla que le pasemos en su segundo parmetro, el cual tiene un nmero de elementos indeterminado. La funcin DeleteKeys tiene los siguientes Argumentos Nombre Descripcin KeyCode Requerido. El valor de la tecla pulsada y que est recogida en el primer argumento del evento KeyDown, del mismo nombre: KeyCode Keys Opcional. Lista separada por comas de los valores ASCII o las constantes Visual Basic (ver estas constantes en este enlace) de las teclas que se quieren anular.

Esta funcin tambin puede ser utilizada a travs del evento KeyDown de un control. Funcionar de la misma manera que para un formulario. Un ejemplo de uso: ' esta llamada a la funcin DeleteKeys anular la pulsacin de las ' teclas RePag y AvPag en el evento KeyDown de un formulario Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Call HelpKeys(KeyCode, vbKeyPageUp, vbKeyPageDown) End Sub Pega esta funcin en un mdulo estandar: '--------------------------------------------------------' ' DeleteKeys ' ' Cdigo escrito originalmente por Juan M Afn de Ribera. ' Ests autorizado a utilizarlo dentro de una aplicacin ' siempre que esta nota de autor permanezca inalterada. ' En el caso de querer publicarlo en una pgina Web, ' por favor, contactar con el autor en ' ' accessvbafaq@ya.com ' ' Este cdigo se brinda por cortesa de ' Juan M. Afn de Ribera ' Function DeleteKeys(KeyCode As Integer, ParamArray Keys() As Variant) As Integer Dim Key As Variant

For Each Key In Keys If KeyCode = Key Then KeyCode = 0 Exit Function End If Next End Function

Constantes de tecla Visual Basic Constante vbKeyLButton vbKeyRButton vbKeyCancel vbKeyMButton vbKeyBack vbKeyTab vbKeyClear vbKeyReturn vbKeyShift vbKeyControl vbKeyMenu vbKeyPause vbKeyCapital vbKeyEscape vbKeySpace vbKeyPageUp Valor 1 2 3 4 8 9 12 13 16 17 18 19 20 27 32 33 Descripcin botn izquierdo del ratn botn derecho del ratn tecla CANCEL botn central del ratn tecla Retroceso tecla Tabulador tecla CLEAR tecla Enter tecla Maysculas tecla Ctrl tecla Menu tecla Pausa tecla Bloq Mays tecla Esc tecla Espaciador tecla RePg tecla AvPg tecla Fin

vbKeyPageDown 34 vbKeyEnd 35

vbKeyHome vbKeyLeft vbKeyUp vbKeyRight vbKeyDown vbKeySelect vbKeyPrint vbKeyExecute vbKeySnapshot vbKeyInsert vbKeyDelete vbKeyHelp vbKey0 vbKey1 vbKey2 vbKey3 vbKey4 vbKey5 vbKey6 vbKey7 vbKey8 vbKey9 vbKeyA vbKeyB

36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 65 66

tecla Inicio tecla Flecha Izquierda tecla Flecha Arriba tecla Flecha Derecha tecla Flecha Abajo tecla SELECT tecla ImprPant tecla EXECUTE tecla SNAPSHOT tecla Insertar tecla Supr tecla HELP tecla 0 tecla 1 tecla 2 tecla 3 tecla 4 tecla 5 tecla 6 tecla 7 tecla 8 tecla 9 tecla A tecla B

vbKeyC vbKeyD vbKeyE vbKeyF vbKeyG vbKeyH vbKeyI vbKeyJ vbKeyK vbKeyL vbKeyM vbKeyN vbKeyO vbKeyP vbKeyQ vbKeyR vbKeyS vbKeyT vbKeyU vbKeyV vbKeyW vbKeyX vbKeyY

67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89

tecla C tecla D tecla E tecla F tecla G tecla H tecla I tecla J tecla K tecla L tecla M tecla N tecla O tecla P tecla Q tecla R tecla S tecla T tecla U tecla V tecla W tecla X tecla Y

vbKeyZ vbKeyNumpad0 vbKeyNumpad1 vbKeyNumpad2 vbKeyNumpad3 vbKeyNumpad4 vbKeyNumpad5 vbKeyNumpad6 vbKeyNumpad7 vbKeyNumpad8 vbKeyNumpad9 vbKeyMultiply vbKeyAdd vbKeySeparator vbKeySubtract vbKeyDecimal vbKeyDivide vbKeyF1 vbKeyF2 vbKeyF3 vbKeyF4 vbKeyF5 vbKeyF6

90 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

tecla Z tecla 0 del teclado numrico tecla 1 del teclado numrico tecla 2 del teclado numrico tecla 3 del teclado numrico tecla 4 del teclado numrico tecla 5 del teclado numrico tecla 6 del teclado numrico tecla 7 del teclado numrico tecla 8 del teclado numrico tecla 9 del teclado numrico tecla Smbolo Multiplicacin (*) del teclado numrico tecla Smbolo Suma (+) del teclado numrico tecla Intro del teclado numrico tecla Smbolo Resta (-) del teclado numrico tecla Smbolo decimal(.) del teclado numrico tecla Smbolo Divisin (/) del teclado numrico tecla F1 tecla F2 tecla F3 tecla F4 tecla F5 tecla F6

vbKeyF7 vbKeyF8 vbKeyF9 vbKeyF10 vbKeyF11 vbKeyF12 vbKeyF13 vbKeyF14 vbKeyF15 vbKeyF16 vbKeyNumlock

118 119 120 121 122 123 124 125 126 127 144

tecla F7 tecla F8 tecla F9 tecla F10 tecla F11 tecla F12 tecla F13 tecla F14 tecla F15 tecla F16 tecla BloqNum

Vamos a ello. Te podra dar una API que detecta tal hecho, pero lo mejor y ms sencillo -y por lo tanto lo ms adecuado- es emplear el evento KeyDown. Crea un formulario con un Text, y codifica lo siguiente: Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case vbKeyUp MsgBox "Tecla arriba" Case vbKeyDown MsgBox "Tecla abajo" Case vbKeyRight MsgBox "Tecla derecha" Case vbKeyLeft MsgBox "Tecla izquierda" End Select End Sub Comom vers se trata de capturar las teclas empleando las constantes que Visual Basic provee. Una vez capturadas las teclas, hacer que se mueva la imagen o cualquier control es bien sencillito En cada "CASE" adiciona o resta ms a la propiedad LEFT o TOP del control en cuestin.

Validacion de la fecha ingresada en un textbox Nombre textbox = TxtFechaComp (o el nombre que se asigno al textbox) If Not IsDate(TxtFechaComp.Text) Then 'validacion fecha

MsgBox "Fecha Incorrecta !!!", vbCritical + vbOKOnly, "Fecha Erronea" TxtFechaComp.Text = ""

PARA CREAR UN ARCHIVO DE TEXTO, SEPARADO POR TAB


Print # Text1.text & vbTab & Text2.Text

CARGAR COMBOS CON INFORMACION Y SELECCION PARALELA (se necesita un userform, dos combobox, un boton comando, en la planilla exel dos columnas con datos la primera columna con nombre asignado al rango plan ) Private Sub <nombrecombo1>_Change() <nombrecombo2>.ListIndex = <nombrecombo1>.ListIndex End Sub Private Sub <nombrecombo2>_Change() <nombrecombo1>.ListIndex = <nombrecombo2>.ListIndex End Sub Private Sub CmdSalir_Click() End End Sub

Private Sub UserForm_Initialize() 'Cargamos los nros de cuentas con sus nombres Dim c As Range For Each c In Range("plan") <nombrecombo1>.AddItem c.Value 'Agregamos el nro de cuenta <nombrecombo2>.AddItem c.Offset(0, 1).Value 'Agregamos el nombre de la cuenta Next Set c = Nothing 'Limpiamos el objeto 'c' End Sub CAPTURA EN UNA VARIABLE LA SELECCIN DE UN COMBOBOX <var> = combo.list(combo.listindex)

También podría gustarte