Está en la página 1de 27

APUNTES DE PROGRAMACION EXEL CON VISUAL BASIC

REV

FECHA

BREVE DESCRIPCION DEL CAMBIO

PREPARADO POR

REVISADO POR

APROBADO POR

FIRMA DE APROBACION

A 0

00/00/00 00/00/00

XXXXX XXXX

X. Xxxxx X. Xxxxx

X. Xxxx X. Xxxxx

X. Xxxx X. Xxxxx

X. Xxxx X. Xxxxx

Pgina 1 de 27

TABLA DE CONTENIDO
1. CREAR UN NUEVO LIBRO EN EXCEL............................................................................................. 5 2. ESCRIBIR EN UNA CELDA............................................................................................................... 5 3. BORDE, COLOR Y GROSOR DE UNA CELDA..............................................................................5 4. CONSEGUIR EL TOTAL FILAS Y COLUMNAS DE UN ARCHIVO..................................................5 5. CONOCER EL NOMBRE DE LA LTIMA COLUMNA ESCRITA.....................................................6 6. AUTO AJUSTAR LA COLUMNA EN EXCEL....................................................................................6 7. GUARDAR UN ARCHIVO EXCEL CON EL OBJETO COMMONDIALOG........................................6 8. COPIAR TODOS LOS REGISTROS FILTRADOS DE QUERY EN UNA HOJA EXCEL...................6 8.1. Ejemplo:.................................................................................................................................. 7 9. IMPORTAR DATOS DE UNA HOJA EXCEL A UNA BASE DE DATOS ACCESS...........................8 9.1. Ejemplo:.................................................................................................................................. 8 10. COLOCAR COLOR DE FONDO A UNA CELDA EXCEL................................................................8 11. COMBINAR CELDAS EN EXCEL.................................................................................................... 8 12. CONTAR CANTIDAD HOJAS EXCEL............................................................................................. 8 13. AGREGAR HOJAS A ARCHIVO EXCEL......................................................................................... 8 14. ELIMINAR HOJAS DE ARCHIVO EXCEL.......................................................................................9 15. COLOCAR NOMBRE A LA HOJA EXCEL......................................................................................9 16. ACTIVAR HOJA EXCEL................................................................................................................... 9 17. INSERTAR UNA IMAGEN A UN ARCHIVO EXCEL........................................................................9 18. CONFIGURACIN DE LA ORIENTACIN DE LA HOJA EXCEL...................................................9 19. MOVER Y COPIAR UNA HOJA AL FINAL DE OTRA HOJA EN EXCEL.......................................9 20. TRANSPONER INFORMACIN DE EXCEL....................................................................................9 21. OBTENER LA ULTIMA COLUMNA FILA ESCRITA EN EXCEL...............................................10 22. SELECCIONA UNA CELDA........................................................................................................... 10 23. SELECCIONAR UNA COLUMNA.................................................................................................. 10 24. SELECCIONAR RANGOS DISCONTINUOS.................................................................................10 25. SELECCIONAR UNA CELDA DEL VALOR DE UNA VARIABLE.................................................10 26. SELECCIONAR UN RANGO INDICADO POR VARIABLES.........................................................11 27. SELECCIONAR COLUMNAS, FILAS Y CELDAS INDEPENDIENTES ........................................11 28. SELECCIONAR CELDAS EN RELACIN A OTRA......................................................................11 29. SELECCIONAR Y AMPLIAR UN RANGO.....................................................................................11 30. SELECCIONAR: COMBINA CELDAS...........................................................................................12

Pgina 2 de 27

31. SELECCIONAR: RANGO DE CELDA ACTIVA.............................................................................12 32. SELECCIONAR: DESDE HACIA ABAJO......................................................................................12 33. SELECCIONAR UN RANGO HACIA LA DERECHA.....................................................................12 34. SELECCIONAR UN RANGO HACIA LA IZQUIERDA...................................................................13 35. SELECCIONAR UN RANGO HACIA ARRIBA...............................................................................13 36. SELECCIONAR LA LTIMA CELDA CON DATOS......................................................................13 37. SELECCIONAR LA LTIMA CELDA CON DATOS Y GUARDA EL NMERO............................13 38. SELECCIONAR LA LTIMA CELDA CON DATOS Y GUARDA EL NRO. CASO 1.....................13 39. SELECCIONAR LA LTIMA CELDA CON DATOS Y GUARDA EL NRO. CASO 2.....................14 40. SELECCIONAR: LA LTIMA CELDA CON DATOS.....................................................................14 41. SELECCIONAR UNA CELDA E INDICA SU POSICIN RELATIVA Y ABSOLUTA....................14 42. SELECCIONAR UNA HOJA, PREVIA A LA ACTIVA....................................................................14 43. SELECCIONAR UNA HOJA, POSTERIOR A LA ACTIVA............................................................15 44. COPIAR: DADA UNA CONDICIN................................................................................................ 15 45. BORRAR: UNA CELDA................................................................................................................. 15 46. BORRA: UNA FILA........................................................................................................................ 16 47. RELLENAR CELDAS..................................................................................................................... 16 48. RELLENAR EN VARIAS HOJAS................................................................................................... 16 49. FORMATO A LAS CELDAS DEL RANGO SELECCIONADO (NEGRITA, CURSIVA, SUBRAYADO, COLOR, ALINEACIN)......................................................................................16 50. FORMATO DE MINSCULA A MAYSCULA. CASO 1...............................................................17 51. FORMATO DE MINSCULA A MAYSCULA. CASO 2...............................................................17 52. FORMATO DE MAYSCULA A MINSCULA. CASO 3...............................................................17 53. COLORES: COLOREAR LAS CELDAS DE UN RANGO SEGN SU VALOR.............................17 54. COLORES: RECORRE UN RANGO COLOREANDO LAS CELDAS SEGN SU VALOR .........18 55. COLORES: OCULTA FILA CON COLOR DETERMINADO..........................................................18 56. MOSTRAR: COLUMNA.................................................................................................................. 19 57. HOJA: DAR NOMBRE A LAS HOJAS...........................................................................................19 58. COMENTARIO: INSERTAR UN COMENTARIO............................................................................19 59. NOMBRE: INSERTAR NOMBRE A LA HOJA...............................................................................20 60. NOMBRE: INSERTAR NOMBRE A MAS DE UNA HOJA.............................................................20 61. INSERTAR UNA COLUMNA.......................................................................................................... 20 62. INSERTAR UN NOMBRE A UNA CELDA.....................................................................................20 63. ORDENAR: ORDENAR DATOS DE UN RANGO POR UNA COLUMNA.....................................20 64. COMPARAR: 2 COLUMNAS ORDENADAS ( DE DISTINTAS HOJAS).......................................21 65. COMPARAR: 2 COLUMNAS, COPIAR EN OTRO DESTINO SOLO REGISTROS NICOS.......21 66. PROTEGER Y DESPROTEGER: UNA HOJA Y COPIAR LOS DATOS EN OTRA.......................22

Pgina 3 de 27

67. IMPRIMIR: HOJA ACTIVA............................................................................................................. 22 68. IMPRIMIR: SELECCIONAR REA DE IMPRESIN......................................................................22 69. IMPRIMIR: CONFIGURAR IMPRESIN........................................................................................23 70. ABRIR: LIBRO................................................................................................................................ 23 71. CERRAR: CERRAR LIBRO SIN GUARDAR.................................................................................23 72. CERRAR: CERRAR LIBRO Y GUARDAR.....................................................................................23 73. GUARDAR: LIBRO Y DESACTIVA ALARMA DE AVISO.............................................................24 74. SELECCIONAR CELDAS EN RELACIN A OTRA......................................................................24 75. ACTIVA LAS OPCIONES DE ALERTA.......................................................................................... 24 76. INPUTBOX Y MSGBOX: INGRESAR DATOS Y TENER RESPUESTA........................................24 77. MENSAJE: ESTRUCTURA SIMPLE.............................................................................................. 25 78. MENSAJE: CON AVISOS DE OPCIONES.....................................................................................25 79. MENSAJE: REDONDEO DE VALORES DENTRO DEL MENSAJE..............................................25 80. BOTONES: BARRA DE HERRAMIENTAS....................................................................................25 81. LLAMAR A UNA MACRO DENTRO DE UNA RUTINA.................................................................26 82. EJECUTAR MACRO SEGN EL VALOR DE UNA CELDA..........................................................26 83. POSICION DE LA COLUMNA DE LA CELDA ACTIVA.................................................................26

Pgina 4 de 27

1.

CREAR UN NUEVO LIBRO EN EXCEL

Set objExcel = New Excel.Application Set Libro = objExcel.Workbooks.Add giHojaActual = 1 Set Hoja = objExcel.Worksheets(giHojaActual) objExcel.Visible = True 2. ESCRIBIR EN UNA CELDA

Hoja.Cells(fila , columna) = 3. BORDE, COLOR Y GROSOR DE UNA CELDA

Hoja.Cells(fila, Columna).Borders(xlEdgeBottom).LineStyle = xlContinuous Hoja.Cells(fila, Columna).Borders(xlEdgeBottom).ColorIndex = 14 Hoja.Cells(fila, Columna).Borders(xlEdgeBottom).Weight = xlThick ****Con rango de columnas rango = "A1:C4" Hoja.Range(rango).Borders(xlEdgeBottom).LineStyle = xlContinuous Hoja.Range(rango).Borders(xlEdgeBottom).ColorIndex = 14 Hoja.Range(rango).Borders(xlEdgeBottom).Weight = xlThick 4. CONSEGUIR EL TOTAL FILAS Y COLUMNAS DE UN ARCHIVO

'***Da el numero de filas del archivo i=1 Do While Trim(Hoja.Cells(i, 1)) <> "" DoEvents i=i+1 Loop i=i-1 '***Da el numero de columnas del archivo

Pgina 5 de 27

j=1 Do While Trim(Hoja.Cells(1, j)) <> "" DoEvents j=j+1 Loop 5. CONOCER EL NOMBRE DE LA LTIMA COLUMNA ESCRITA

'***Procedimiento donde se obtiene el nombre de la columna final*** j=j-1 sValor = Cells(1, j).EntireColumn.Address iPos = InStr(1, sValor, ":") If Not iPos = 0 Then sNombre = Left(sValor, iPos - 1) sNombre = Mid(sNombre, 2, Len(sNombre) - 1) End If sOrigen = Trim(sNombre) & Trim(Str(i)) 6. AUTO AJUSTAR LA COLUMNA EN EXCEL

Hoja.Range("A:B").EntireColumn.AutoFit 7. GUARDAR UN ARCHIVO EXCEL CON EL OBJETO COMMONDIALOG

CmDialogGuardar.CancelError = True On Error GoTo ErrHandler CmDialogGuardar.DialogTitle = "GUARDAR EN" CmDialogGuardar.FileName = "Reporte de " & Trim(Proyecto) CmDialogGuardar.ShowSave Ruta = CmDialogGuardar.FileName Hoja.SaveAs Ruta 8. COPIAR TODOS LOS REGISTROS FILTRADOS DE QUERY EN UNA HOJA EXCEL

Pgina 6 de 27

' activo la hoja y la celda en que quiero dejar los datos objExcel.ActiveSheet.Range("A2").Activate Hoja.Application.ActiveCell.CopyFromRecordset Rss3 8.1. Ejemplo:

Set objExcel = New Excel.Application Set Libro = objExcel.Workbooks.Add Set Hoja = objExcel.Worksheets(1) Hoja.Activate

sql2 = "SELECT MUESTRA.CODIGO_CLIENTES, MUESTRA.STATUS, " sql2 = sql2 & "MUESTRA.RAZON_SOCIAL, MUESTRA.DIRECCION, MUESTRA.DISTRIBUIDORA, " sql2 = sql2 & "MUESTRA.RUTA, MUESTRA.JEFATURA, MUESTRA.MERCADEO, " sql2 = sql2 & "MUESTRA.LONGITUD, MUESTRA.LATITUD, MUESTRA.GEOREF From MUESTRA " sql2 = sql2 & "WHERE (((MUESTRA.FECHA)=#" & Format(gsFecha, "mm/dd/yyyy") & "#) AND " sql2 = sql2 & "((MUESTRA.DISTRIBUIDORA)='" & sDistribuidora & "') AND" sql2 = sql2 & "((MUESTRA.RUTA)='" & sRuta & "'));" Rss3.Open sql2, GSC, adOpenDynamic, adLockOptimistic If Not Rss3.EOF Then For i = 0 To Rss3.Fields.Count - 1 Hoja.Cells(1, i + 1) = Rss3.Fields(i).Name Hoja.Cells(1, i + 1).Interior.Color = &HC0C0C0 Next i

' activo la hoja y la celda en que quiero dejar los datos objExcel.ActiveSheet.Range("A2").Activate Hoja.Application.ActiveCell.CopyFromRecordset Rss3 End If Rss3.Close Hoja.SaveAs sArchivoExcel objExcel.Quit
Pgina 7 de 27

9.

IMPORTAR DATOS DE UNA HOJA EXCEL A UNA BASE DE DATOS ACCESS

9.1.

Ejemplo: Dim sRutaXLS As String

sRutaXLS = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & ruta & "\" & nombre del archive excel & _ ";Extended Properties=Excel 8.0" dbs.Open sRutaXLS dbs.CursorLocation = adUseClient

sCadena = "INSERT INTO [nombre tabla] IN '" & ruta y nombre de la BD & _ "' SELECT [" & nombre del archivo Excel sin extensin & _ "$].* FROM [" & nombre del archivo Excel sin extensin & "$]" dbs.Execute sCadena dbs.Close 10. COLOCAR COLOR DE FONDO A UNA CELDA EXCEL

Hoja.Cells(Fila, columna).Interior.Color = &HFFFF& 11. COMBINAR CELDAS EN EXCEL

Hoja.Range("E1:I1").MergeCells = True Hoja.Cells(fila, columna) .MergeCells = True 12. CONTAR CANTIDAD HOJAS EXCEL

objExcel.Sheets.Count 13. AGREGAR HOJAS A ARCHIVO EXCEL

Worksheets.Add

Pgina 8 de 27

14.

ELIMINAR HOJAS DE ARCHIVO EXCEL

objExcel.Sheets(numero de hoja).Delete 15. COLOCAR NOMBRE A LA HOJA EXCEL

Hoja.Name=Prueba 16. ACTIVAR HOJA EXCEL

giHojaActual = 2 Set Hoja = objExcel.Worksheets(giHojaActual) Hoja.Activate 17. INSERTAR UNA IMAGEN A UN ARCHIVO EXCEL

'***Inserta una imagen en el archivo excel*** objExcel.ActiveSheet.Pictures.Insert(App.Path & "\EMEVENCA.JPG").Select 18. CONFIGURACIN DE LA ORIENTACIN DE LA HOJA EXCEL

'***Configura la pgina de excel y la coloca de forma Horizontal**** objExcel.ActiveSheet.PageSetup.Orientation = xlLandscape 19. MOVER Y COPIAR UNA HOJA AL FINAL DE OTRA HOJA EN EXCEL

Worksheets("Hoja1").Copy After:=Libro.Worksheets("Hoja1") 20. TRANSPONER INFORMACIN DE EXCEL

'******* codigo para transponer un rango en excel lastcol = Hoja.Cells(12, Columns.Count).End(xlToLeft).Column With Hoja .Range(.Cells(12, 1), .Cells(i, lastcol)).SpecialCells(xlCellTypeConstants).Copy .Range("A26").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _

Pgina 9 de 27

SkipBlanks:=False, Transpose:=True End With Application.CutCopyMode = False 21. OBTENER LA ULTIMA COLUMNA FILA ESCRITA EN EXCEL

***para la fila Hoja.Cells(Rows.Count, 1).End(xlUp).Row ***para la columna Hoja.Cells(1, Columns.Count).End(xlToLeft).Column 22. SELECCIONA UNA CELDA

Sub selecciono01() Range("B7").Select 'selecciona la celda B7 End Sub 23. SELECCIONAR UNA COLUMNA

Sub selecciono02() Range("B:B").Select 'selecciona toda la columna B End Sub 24. SELECCIONAR RANGOS DISCONTINUOS

Sub selecciono03() Range("A4:A10, D10, B5:B20").Select 'selecciona rangos discontinuos End Sub 25. SELECCIONAR UNA CELDA DEL VALOR DE UNA VARIABLE

Sub selecciono04() Dim variable As Integer variable = 5

Pgina 10 de 27

Range("A" & variable).Select 'selecciona la celda cuya fila ser el valor de la variable End Sub 26. SELECCIONAR UN RANGO INDICADO POR VARIABLES

Sub selecciono05() variable = 5 rango = ("B2" & ":E" & variable) Range(rango).Select 'selecciona el rango B2:E hasta la fila indicada en la variable End Sub 27. SELECCIONAR COLUMNAS, FILAS Y CELDAS INDEPENDIENTES

Sub selecciono06() Range("A:A, D:F").Select 'selecciona las columnas A, D, E y F End Sub Sub selecciono061() Range("2:2, 4:7").Select 'selecciona las filas 2 y desde 4 hasta la 7. End Sub Sub selecciono07() Sheets(1).Range("A1").Offset(2, 3).Select 'selecciona la celda D3 End Sub 28. SELECCIONAR CELDAS EN RELACIN A OTRA

Sub selecciono08() Range("D3").Select ActiveCell.Offset(-2, 1).Select 'selecciona la celda que se encuentra 2 filas por encima 'y 1 columna a la derecha de la celda activa (=D3) End Sub 29. SELECCIONAR Y AMPLIAR UN RANGO

Sub selecciono09()

Pgina 11 de 27

'ampliar el rango de seleccin Range("A1:B5").Select Selection.Resize(10, 4).Select '(en total sern 10 filas, 4 columnas) 'el resultado ser A1:D10 End Sub 30. SELECCIONAR: COMBINA CELDAS

Sub selecciono10() 'combina celdas seleccionadas Range("B1:E1").Select Selection.Merge End Sub

31.

SELECCIONAR: RANGO DE CELDA ACTIVA

Sub selecciono11() 'selecciona la regin o rango de la celda activa Range("B2").CurrentRegion.Select End Sub

32.

SELECCIONAR: DESDE HACIA ABAJO

Sub selecciono12() Range("A2", Range("A2").End(xlDown)).Select 'seleciona desde A2 hacia abajo End Sub

33.

SELECCIONAR UN RANGO HACIA LA DERECHA Sub selecciono13() Range("A2", Range("A2").End(xlToRight)).Select 'selecciona desde A2 hacia la derecha End Sub

Pgina 12 de 27

34.

SELECCIONAR UN RANGO HACIA LA IZQUIERDA Sub selecciono14() Range("C2", Range("C2").End(xlToLeft)).Select 'selecciona desde C2 hacia la izquierda End Sub

35.

SELECCIONAR UN RANGO HACIA ARRIBA Sub selecciono15() Range("A15", Range("A15").End(xlUp)).Select 'selecciona desde A15 hacia arriba End Sub

36.

SELECCIONAR LA LTIMA CELDA CON DATOS Sub selecciono16() 'para seleccionar solo la ltima celda con datos Range("A1").End(xlDown).Select End Sub

37.

SELECCIONAR LA LTIMA CELDA CON DATOS Y GUARDA EL NMERO Sub selecciono17() Dim filalibre As Integer ActiveWorkbook.Sheets(1).Activate 'selecciona la Hoja 1 Range("A1").Select 'el control se har sobre la columna A, a partir de la fila While ActiveCell.Value <> "" ActiveCell.Offset(1, 0).Select 'si la celda contiene datos, pasa a la fila siguiente Wend filalibre = ActiveCell.Row 'guarda en la variable filalibre el nmero de la primer fila sin datos. 'muestra el valor en celda "B2" Range("B2") = filalibre End Sub

38.

SELECCIONAR LA LTIMA CELDA CON DATOS Y GUARDA EL NRO. CASO 1 Sub selecciono118() Dim filalibre As Integer Worksheets("Hoja1").Select filalibre = Range("A1").End(xlDown).Offset(1, 0).Row 'la variable filalibre guarda el nro. de la primer celda vaca. 'muestra el valor en celda "B2" Range("B2") = filalibre End Sub

Pgina 13 de 27

39.

SELECCIONAR LA LTIMA CELDA CON DATOS Y GUARDA EL NRO. CASO 2 Sub ActualizaHoja() 'Buscar la ltima celda con datos, en una columna Sheets(1).Select 'selecciona la Hoja 1 Range("A2").Select 'el control se har sobre la columna A, a partir de la fila While ActiveCell.Value <> "" ActiveCell.Offset(1, 0).Select 'si la celda contiene datos, pasa a la fila siguiente Wend fila1 = ActiveCell.Row 'guarda en la variable fila1 el nmero de la primer fila sin datos. End Sub

40.

SELECCIONAR: LA LTIMA CELDA CON DATOS Sub buscaultima() 'Buscar la ltima celda con datos, en una columna Sheets("Hoja3").Select If Range("A2").Value <> "" Then filalibre = Range("A1").End(xlDown).Offset(1, 0).Row + 1 Else filalibre = 2 End If 'la variable filalibre guarda el nro. de la primer celda vaca. End Sub

41.

SELECCIONAR UNA CELDA E INDICA SU POSICIN RELATIVA Y ABSOLUTA Sub guardadirecc() Dim lugar1 As String, lugar2 As String Range("B3").Select lugar1 = ActiveCell.Address 'guarda la referencia absoluta lugar2 = ActiveCell.Address(False, False) 'guarda la referencia relativa 'devuelve en C3 las 2 direcciones concatenadas Range("C3").Value = lugar1 & "-" & lugar2 End Sub

42.

SELECCIONAR UNA HOJA, PREVIA A LA ACTIVA Sub seleccion1() Sheets("Hoja2").Select ActiveSheet.Previous.Select 'hoja anterior a la activa Range("A2") = ActiveSheet.Name 'nombre de la hoja
Pgina 14 de 27

Range("A3") = ActiveSheet.Index 'nmero de hoja End Sub 43. SELECCIONAR UNA HOJA, POSTERIOR A LA ACTIVA Sub seleccion2() Sheets("Hoja2").Activate ActiveSheet.Next.Select 'hoja posterior a la activa End Sub 44. COPIAR: DADA UNA CONDICIN Sub Copiando() 'copia los registros de la hoja Hoja2 cuyo mes = celda A1 de la Hoja3 Dim nromes As Integer, mes As Integer Dim filadestino As Integer Dim dato As String 'la variable nromes indica el mes de los registros a copiar nromes = Sheets("Hoja3").Range("A1").Value 'variable que indica a partir de qu fila se copiar filadestino = 2 'busca registros cuya fecha tiene por mes el valor de la variable nromes Sheets("Hoja2").Activate Range("A1").Select While ActiveCell.Value <> "" dato = ActiveCell.Value 'obtiene el nmero de mes del campo fecha mes = Month(dato) If mes = nromes Then Selection.EntireRow.Copy ActiveSheet.Paste Destination:=Worksheets(3).Cells(filadestino, 1) filadestino = filadestino + 1 End If ActiveCell.Offset(1, 0).Select Wend Application.CutCopyMode = False End Sub 45. BORRAR: UNA CELDA Sub borrando() 'borra el contenido de las celdas selecciondas Range("C2").Select Selection.ClearContents End Sub

Pgina 15 de 27

46.

BORRA: UNA FILA Sub eliminando() 'elimina las filas seleccionadas Selection.EntireRow.Delete End Sub

47.

RELLENAR CELDAS Sub llenando_celdas() Dim valor As String Dim celdita As Range For Each celdita In ActiveSheet.Range("A10:B13") valor = InputBox("Ingrese valor: ") celdita.Value = valor Next celdita End Sub

48.

RELLENAR EN VARIAS HOJAS Sub llenando_hojas() Dim hoja As Worksheet For Each hoja In Sheets hoja.Range("E13").Value = Date hoja.Range("F13").Value = Time Next hoja End Sub

49.

FORMATO A LAS CELDAS DEL RANGO SELECCIONADO (NEGRITA, CURSIVA, SUBRAYADO, COLOR, ALINEACIN)

Sub formato() 'dando formato a las celdas del rango seleccionado Range("A1:D10").Select With Selection Font.Bold = True 'formato negrita Font.Italic = True 'formato cursiva Font.Underline = xlUnderlineStyleSingle 'subrayado simple Font.Color = RGB(255, 0, 0) 'color de fuente (para estos valores ser rojo) HorizontalAlignment = xlCenter 'alineacin central (Right=derecha, Left=izquierda)

Pgina 16 de 27

End With End Sub 50. FORMATO DE MINSCULA A MAYSCULA. CASO 1 Sub menorAmayor() Dim cell As Range Dim rango As Object 'convierte texto en maysculas Set rango = Selection For Each cell In rango cell.Value = UCase(cell.Value) Next End Sub 51. FORMATO DE MINSCULA A MAYSCULA. CASO 2 Sub menorAmayor() 'Pasar de minsculas a maysculas Set rango = Range("a1:a3") For Each Cell In rango Cell.Value = UCase(Cell.Value) Next End Sub 52. FORMATO DE MAYSCULA A MINSCULA. CASO 3 Sub mayorAmenor() 'Pasar de maysculas a minsculas Set rango = Range("a1:a3") For Each Cell In rango Cell.Value = LCase(Cell.Value) Next End Sub 53. COLORES: COLOREAR LAS CELDAS DE UN RANGO SEGN SU VALOR Sub colores1() Dim fila1 As Integer, fila2 As Integer Dim col1 As Integer, col2 As Integer Dim fila As Integer, columna As Integer 'recorre el rango A1:E20 de la hoja activa coloreando las celdas segn su valor fila1 = 1 fila2 = 20 col1 = 1 col2 = 5 For fila = fila1 To fila2

Pgina 17 de 27

For columna = col1 To col2 If Cells(fila, columna).Value < 1000 Then Cells(fila, columna).Font.ColorIndex = 5 'azul Else If Cells(fila, columna).Value < 1500 Then Cells(fila, columna).Font.ColorIndex = 3 'rojo Else Cells(fila, columna).Font.ColorIndex = 9 'marrn End If End If Next columna Next fila End Sub 54. COLORES: RECORRE UN RANGO COLOREANDO LAS CELDAS SEGN SU VALOR Sub colores2() Dim fila1 As Integer, fila2 As Integer Dim col1 As Integer, col2 As Integer Dim fila As Integer, columna As Integer, valor As Integer 'recorre el rango A1:E20 de la hoja activa coloreando las celdas segn su valor fila1 = 4 fila2 = 20 col1 = 1 col2 = 5 For fila = fila1 To fila2 For columna = col1 To col2 valor = Cells(fila, columna).Value Select Case valor Case Is < 1000 Cells(fila, columna).Font.ColorIndex = 5 'azul Case 1000 To 1499 Cells(fila, columna).Font.ColorIndex = 3 'rojo Case 1500 To 1999 Cells(fila, columna).Font.ColorIndex = 9 'marrn Case 2000 To 2999 Cells(fila, columna).Font.ColorIndex = 7 'fucsia Case Else Cells(fila, columna).Font.ColorIndex = 6 'amarillo End Select Next columna Next fila End Sub 55. COLORES: OCULTA FILA CON COLOR DETERMINADO

Pgina 18 de 27

Sub OcultaPorColor() 'recorre la col A de la hoja activa, si encuentra celda con color de fuente automtica oculta la fila Range("A3").Select While ActiveCell.Value <> "" If ActiveCell.Font.ColorIndex = xlColorIndexAutomatic Then ActiveCell.EntireRow.Hidden = True End If ActiveCell.Offset(1, 0).Select Wend 'para ocultar filas con color de fuente rojo ser: 'If ActiveCell.Font.ColorIndex = 3 Then 'buscar la lista de colores en la Ayuda End Sub 56. MOSTRAR: COLUMNA Sub MuestraTodas() 'muestra filas ocultas de la hoja Colores Application.ScreenUpdating = False 'Desactive la actualizacin de la pantalla para acelerar el cdigo de la macro Sheets("Hoja1").Select Rows("2:1000").Select Selection.EntireRow.Hidden = False Range("C3").Select Application.ScreenUpdating = True 'Recuerde que debe volver a establecer la propiedad ScreenUpdating como True cuando finalice la macro. End Sub 57. HOJA: DAR NOMBRE A LAS HOJAS Sub nombre_hoja() Dim MiNombre As String Dim hoja As Worksheet For Each hoja In Worksheets MiNombre = InputBox("Ingrese nombre de hoja") hoja.Name = MiNombre Next hoja End Sub 58. COMENTARIO: INSERTAR UN COMENTARIO Sub comentarios() Range("B2").Select 'previamente inserte un comentario en la celda "B2" ActiveCell.Offset(0, 1).Value = ActiveCell.Comment.Text 'copia el comentario de la celda activa en la celda que
Pgina 19 de 27

'se encuentra en la columna siguiente. End Sub 59. NOMBRE: INSERTAR NOMBRE A LA HOJA Sub nombre_hoja() Dim MiNombre As String MiNombre = InputBox("Ingrese nombre de hoja") ActiveSheet.Name = MiNombre End Sub 60. NOMBRE: INSERTAR NOMBRE A MAS DE UNA HOJA Sub nombres_hojas() Dim MiNombre As String Dim hoja As Worksheet For Each hoja In Worksheets MiNombre = InputBox("Ingrese nombre de hoja") hoja.Name = MiNombre Next hoja End Sub 61. INSERTAR UNA COLUMNA Sub insertando() 'inserta una columna por delante de la seleccin Selection.EntireColumn.Insert End Sub 62. INSERTAR UN NOMBRE A UNA CELDA Sub nominar() Worksheets("BALANCE").Range("e3").Name = "AC" Worksheets("BALANCE").Range("e19").Name = "PC" Worksheets("BALANCE").Range("e4").Name = "AC_Disponibilides" Worksheets("BALANCE").Range("e5").Name = "AC_Inversiones" Worksheets("BALANCE").Range("e7").Name = "AC_Cred_Ventas" Worksheets("METODO").Range("C14").Name = "r_1" End Sub 63. ORDENAR: ORDENAR DATOS DE UN RANGO POR UNA COLUMNA Sub Ordenando() 'ordena la hoja Orden por la col A en forma ascendente teniendo la primera fila como encabezado Sheets("Hoja1").Range("A1").Select Selection.Sort key1:=Range("a1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom End Sub
Pgina 20 de 27

64.

COMPARAR: 2 COLUMNAS ORDENADAS ( DE DISTINTAS HOJAS) Sub comparando() Si las celdas coinciden se copia toda la fila en una tercer hoja. copiada = 2 Sheets("Hoja1").Range("A2").Select final = Range("A2").End(xlDown).Row For fila = 2 To final 'compara la col 1 de la hoja1 y la col 2 de la hoja 2 If Cells(fila, 1) = ActiveSheet.Next.Cells(fila, 2).Value Then ActiveCell.EntireRow.Copy Destination:=Sheets("Hoja3").Cells(copiada, 1) ActiveSheet.Next.Cells(fila, 1).EntireRow.Copy Destination:=Sheets("Hoja3")._ Cells(copiada + 1, 1) 'quitar si no se copia lo de la hoja2 copiada = copiada + 2 'ms 1 si no se copia lo de la hoja 2 End If ActiveCell.Offset(1, 0).Select Next End Sub

65.

COMPARAR: 2 COLUMNAS, COPIAR EN OTRO DESTINO SOLO REGISTROS NICOS Sub comparando() Cada columna debe estar ordenada de menor a mayor Dim fila1 As Integer, fila2 As Integer, fila3 As Integer 'compara a partir de la fila2, las columnas 1 y 2 de una misma hoja fila1 = 2 fila2 = 2 fila3 = 2 Range("A2").Select While Cells(fila1, 1).Value <> "" 'compara las col 1 y 2, copiando en la 4 If Cells(fila1, 1).Value = Cells(fila2, 2).Value Then fila1 = fila1 + 1 fila2 = fila2 + 1 Cells(fila1, 1).Select Else If Cells(fila1, 1).Value < Cells(fila2, 2).Value Or Cells(fila2, 2).Value = "" Then Cells(fila1, 1).Copy Destination:=Cells(fila3, 4) fila3 = fila3 + 1 fila1 = fila1 + 1 Cells(fila1, 1).Select Else If Cells(fila2, 2).Value <> "" Then Cells(fila2, 2).Copy Destination:=Cells(fila3, 4) fila3 = fila3 + 1

Pgina 21 de 27

fila2 = fila2 + 1 End If End If End If Wend While Cells(fila2, 2).Value <> "" Cells(fila2, 2).Copy Destination:=Cells(fila3, 4) fila3 = fila3 + 1 fila2 = fila2 + 1 Cells(fila2, 2).Select Wend End Sub 66. PROTEGER Y DESPROTEGER: UNA HOJA Y COPIAR LOS DATOS EN OTRA Sub copiandoYprotegiendo() 'protege la hoja ActiveSheet.Protect "contrasea" 'copia el contenido del rango en la hoja siguiente, en rango D1 Range("A2:A3").Select Selection.Copy 'previamente se habr seleccionado algo ActiveSheet.Paste Destination:=ActiveSheet.Next.Cells(1, 4) Application.CutCopyMode = False 'desprotege la hoja para poder ocultar una columna ActiveSheet.Unprotect "contrasea" 'oculta la col 1 de la hoja activa ActiveCell.EntireColumn.Hidden = True End Sub 67. IMPRIMIR: HOJA ACTIVA Sub imprimiendo() 'vista previa de la hoja activa ActiveSheet.PrintPreview 'imprime la hoja activa ActiveSheet.PrintOut Copies:=1, Collate:=True End Sub 68. IMPRIMIR: SELECCIONAR REA DE IMPRESIN Sub AreaImpresion() Dim primera, ultima As Variant Range("A1").Select If ActiveCell.Value = "" Then Selection.End(xlToRight).Select End If primera = ActiveCell.Address

Pgina 22 de 27

ActiveCell.SpecialCells(xlLastCell).Select ultima = ActiveCell.Address ActiveSheet.PageSetup.PrintArea = (primera & ":" & ultima) End Sub 69. IMPRIMIR: CONFIGURAR IMPRESIN Sub Configurando() With ActiveSheet.PageSetup 'para el encabezado LeftHeader = "Nombre Empresa" 'ingresar un texto CenterHeader = "&T" 'Time u hora RightHeader = "&D" 'Date o fecha 'para el pie de pgina LeftFooter = "&A" 'nombre de hoja CenterFooter = "&F" 'File o nombre de libro RightFooter = "&P" 'Page o nmero de pgina End With End Sub 70. ABRIR: LIBRO Sub AbriendoLibros() 'oculta la ejecucin de los siguientes pasos de la macro Application.ScreenUpdating = False 'abre un segundo librolibro (ajustar la ruta) Application.Workbooks.Open "C:\Mis documentos\Libro2.xls" 'activa el segundo libro Workbooks("Libro2.xls").Worksheets("Hoja2").Activate 'abriendo un libro y deshabilitando la actualizacin de vnculos 'Workbooks.Open Filename:="C:\Mis documentos\Vinculado.xls", UpdateLinks:=0 'se vuelve al estado normal de ejecucin Application.ScreenUpdating = True End Sub 71. CERRAR: CERRAR LIBRO SIN GUARDAR Sub CerrandoLibros_1() 'cierra el libro sin guardar los cambios Workbooks("Libro2.xls").Close False End Sub 72. CERRAR: CERRAR LIBRO Y GUARDAR Sub CerrandoLibros_2() 'guarda y cierra el libro activo ActiveWorkbook.Save

Pgina 23 de 27

ActiveWorkbook.Close End Sub 73. GUARDAR: LIBRO Y DESACTIVA ALARMA DE AVISO Sub GuardandoLibros() 'oculta mensajes de alerta, ejecutando la opcin predeterminada Application.DisplayAlerts = False 'guardando el segundo libro Workbooks("Libro2.xls").SaveAs Filename:="C:\Mis documentos\Libro2.xls", FileFormat:=xlNormal, Password:="clave", ReadOnlyRecommended:=False 'omitiendo algunas opciones Workbooks("Vinculado.xls").SaveAs Filename:="C:\Mis documentos\Vinculado.xls" 'cerrando un libro guardado Workbooks("Vinculado.xls").Close 'guardando el libro activo con nombre = valor de celda ActiveWorkbook.SaveAs Filename:=Range("A2").Value End Sub 74. SELECCIONAR CELDAS EN RELACIN A OTRA Sub selecciono08() Range("D3").Select ActiveCell.Offset(-2, 1).Select 'selecciona la celda que se encuentra 2 filas por encima 'y 1 columna a la derecha de la celda activa (=D3) End Sub 75. ACTIVA LAS OPCIONES DE ALERTA Sub avisos() 'volver al estado normal la ejecucin de los mensajes de alerta Application.DisplayAlerts = True End Sub 76. INPUTBOX Y MSGBOX: INGRESAR DATOS Y TENER RESPUESTA Sub Main() Dim strNombre As String Dim strApellido As String Dim strMsg As String strNombre = InputBox("Ingrese su nombre:", "Datos Personales") strApellido = InputBox("Ingrese su nombre:", "Datos Personales") strMsg = "Bienvenido " & strNombre & " " & strApellido MsgBox strMsg End Sub

Pgina 24 de 27

77.

MENSAJE: ESTRUCTURA SIMPLE Sub mensaje() MsgBox "Texto del mensaje", vbOKOnly + vbInformation, "Titulo del Mensaje" End Sub

78.

MENSAJE: CON AVISOS DE OPCIONES Sub pregunta() intRespuesta = MsgBox("Desea terminar el proceso?", vbYesNo + vbQuestion, "MsgBox como funcin") If intRespuesta = vbYes Then MsgBox ("guarde previamente la planilla") ' Terminar el proceso Else MsgBox ("guarde la planilla y luego salga del sistema") ' Continuar con el proceso End If End Sub

79.

MENSAJE: REDONDEO DE VALORES DENTRO DEL MENSAJE Sub redondeado() Dim Fraccion As Single Fraccion = 3.8 MsgBox "El nmero redondeado es: " & CInt(Fraccion), vbOKOnly, "Ejemplo" End Sub

80.

BOTONES: BARRA DE HERRAMIENTAS Sub Herramientas() Dim EnMenu As CommandBar Dim miboton As CommandBarButton Dim micontrol As CommandBarControl 'estas son para los botones de la barra de herramientas o Standard Set EnMenu = Application.CommandBars("Standard") For Each miboton In EnMenu.Controls On Error Resume Next 'para conocer los nmeros de cada botn MsgBox miboton.Caption & " - " & miboton.ID 'esto es para saber el nmero de control 'If miboton.ID = 3 Then miboton.Enabled = False 'inhabilita el botn de Guardar 'volverla a True antes de cerrar el libro Next Set EnMenu = Nothing 'estas son para las opciones del men Edicin Set EnMenu = Application.CommandBars("Edit") For Each micontrol In EnMenu.Controls On Error Resume Next 'para conocer los nmeros de cada opcin del men MsgBox micontrol.Caption & " - " & micontrol.ID 'esto es para saber el nmero de control
Pgina 25 de 27

'If micontrol.ID = 19 Then micontrol.Enabled = false 'inhabilita la opcin Copiar 'volverla a True antes de cerrar el libro Next Set EnMenu = Nothing End Sub

81.

LLAMAR A UNA MACRO DENTRO DE UNA RUTINA

Call Carlos

donde Carlos es el nombre de la macro

82.

EJECUTAR MACRO SEGN EL VALOR DE UNA CELDA


Es bastante simple. Desde Excel , tipea ALT+F11 para ir a Visual Basic (Herramientas\Macro\Editor de VisualBasic) En el "explorador de Proyectos", ver el libro (Ej VBProject (Libro1)) que te interesa , haz "doble click" en "Hoja1". El cursor se posicionar en la ventana de "Cdigo", pulsalo y selecciona Worksheet. All vuelca alli, el siguiente cdigo : '*********** Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Address = "$A$1" And Target.Value = 2 Then MsgBox "Es un 2 en A1" macro1 End If End Sub '*********** Vuelve a Excel y prueba diferentes valores en la celda A1 de la hoja 1 . Cuando introduzcas un 2 , se genera un mensaje. Y luego se ejecuta la "macro1"

83.

POSICION DE LA COLUMNA DE LA CELDA ACTIVA


La siguiente macro te lo dice

Public Sub ColumnaActual() Dim Col As Integer

Pgina 26 de 27

Col = ActiveCell.Column If Col > 27 Then MsgBox "Estas despues de la columna AA" End If

Pgina 27 de 27