Members Login
-
Still not a Member? Join our Community
-
-
Total de Mensajes: 15 Total de Secciones: 1 Total de Temas: 16 Total de Categorías: 4
-
Abiertos hoy: 0 Total de Respuestas de Hoy: 0 Abiertos ayer: 0 Total de Respuestas de Ayer: 0
-
-
Total de usuarios conectados :: 0 Miembros y 17 Invitados ConectadoLeyenda :: Administrador del Sitio, Moderador Global, Moderador, Sancionado, Usuario, Invitado
Tiempo de carga de la página: 0.126 segundos
Macros en Excell (Algunos ejemplos mas comunes)
En este tema del foro iremos insertando macros y códigos que puedan servirnos de ayuda.
Macro para solicitar confirmación de salir de Excel.
‘macro que solicita al usuario que confirme salir de Excel
Private Sub salir()
If msgbox(“¿Desea salir de Excel?”,vbQuestion+ vbYesNo)=vbYes Then
Application.quit
End If
End Sub
Macro para guardar archivo seleccionando ubicación
Sub guardar_archivo()
Dim stArchivo
stArchivo = Application.GetOpenFilename(“Hoja de Excel , *.xls*”, _
, “Seleccione archivo “)
End Sub
Macro para guardar archivos en otro formato
Sub guardar_archivo_otro()
‘con esta macro guardamos el archivo con la fecha y hora actual y formato csv
Dim nombre, nombrearch, hoja, ruta
nombre = Format(Now, “dd-mm-yy hh.mm.ss”)
ruta = ActiveWorkbook.Path
nombrearch = ActiveWorkbook.Name
hoja = ActiveSheet.Name
ActiveWorkbook.SaveAs Filename:=ruta & “\” & hoja & nombre & “.csv”, FileFormat:=xlCSV
ActiveSheet.SaveAs ruta & “\” & nombrearch & nombre & “.xlsm”
End Sub
Copiar rango de una hoja a otra
Si queremos que se quiera copiar los rangos de la hoja activa de una hoja a otra ejecutariamos la macro siguiente:
Option Explicit
Dim f, c
Public Sub CopiarRango()
ActiveCell.CurrentRegion.Select
f = ActiveCell.Row
c = ActiveCell.Column
Selection.Copy
Sheets(“Hoja2″).Activate
Cells(f, c).Activate
ActiveSheet.Paste
End Sub
Cerrar libro Excel (guardar cambios)
ActiveWorkbook.Close
ActiveWorkbook.Close Savechanges:=True
ActiveWorkbook.Close(True)
Cerrar libro Excel (sin guardar cambios)
ActiveWorkbook.Close(False)
ActiveWorkbook.Close Savechanges:=False
Cerrar libro Excel (variable, sin guardar cambios)
Application.DisplayAlerts = False Windows(Libro_mayor).Close Application.DisplayAlerts = True Abrir libro Excel (ruta fija) Workbooks.Open FileName:=”C:\Trabajo\Informe.xls”
Desplazarnos a la última hoja del libro
Sub ultima_hoja()
Sheets(Sheets.Count).Select
End Sub
Desplazarnos a la primera hoja del libro
Sub primera_hoja()
Sheets(1).Select
End Sub
Copiar el contenido seleccionado en otra hoja
Sub CopiaColumnas()
Dim mirango As Range
Dim col As Range
Dim NuevaHoja As Worksheet
Dim i As Integer
Set mirango = Selection
Worksheets.Add
i = 0
For Each col In mirango.Columns
col.Copy ActiveSheet.Range(“A1″).Offset(, i)
i = i + 1
Next col
End Sub
Macro para crear índices de hojas en libros
Private Sub Worksheet_Activate()
Dim cHoja As Worksheet
Dim L As Long
L = 1
With Me
.Columns(1).ClearContents
.Cells(1, 1) = “INDICE”
.Cells(1, 1).Name = “Indice”
End With
For Each cHoja In Worksheets
If cHoja.Name <> Me.Name Then
L = L + 1
With cHoja
.Range(“A1″).Name = “Inicio” & cHoja.Index
.Hyperlinks.Add Anchor:=.Range(“A1″), Address:=” “, SubAddress:=”Indice”, TextToDisplay:=”Volver al índice”
End With
Me.Hyperlinks.Add Anchor:=Me.Cells(L, 1), Address:=” “, SubAddress:=”Inicio” & cHoja.Index, TextToDisplay:=cHoja.Name
End If
Next cHoja
End Sub
Macro para imprimir hoja activa con datos
Sub macro imprimir_ha()
Range(“A1″) = “Lo que sea”
‘Imprimimos la hoja de excel con una sola copia
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub
Buscar la última fila vacía
Sub ultimafila()
‘variable donde almacenamos el número de fila
Dim ultima As Long
‘vamos subiendo por la columna A desde la última fila
ultima = Range(“A65536″).End(xlUp).Row
‘le sumamos una porque queremos la 1ª fila vacía
ultima = ultima + 1
‘seleccionamos si queremos otra columna cambiar el número
Cells(ultima, 1).Select
End Sub
Encontrar última fila (en columna especificada)
Dim intUltimaFila As Range
If WorksheetFunction.CountA(Columns(1)) > 0 Then
Set intUltimaFila = Range(“65536″).End(xlUp)
MsgBox intUltimaFila.Address
End If
Suprimir filas vacías
intLastRow = Columns(“A:A”).Range(“A65536″).End(xlUp).Row
For r = intLastRow To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
Suprimir filas vacías
Dim intNumDeFilas As Long
Selection.SpecialCells(xlCellTypeLastCell).Select
intNumDeFilas = Selection.Row
For i = 1 To intNumDeFilas
If Application.WorksheetFunction.CountA(Rows(i)) = 0 Then
Rows(i).Delete
End If
Next
Suprimir filas vacías
intUltimaFila = ActiveSheet.UsedRange.Row – 1 + ActiveSheet.UsedRange.Rows.Count
For r = intUltimaFila To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
Suprimir filas por condición
Dim rngString As Range
Do
Set rngString = Cells.Find(“Aglis”, MatchCase:=False, _
LookAt:=xlPart, LookIn:=xlValues)
If Not rngString Is Nothing Then
rngString.EntireRow.Delete
End If
Loop Until rngString Is Nothing
Suprimir filas vacías por dos condiciónes X, Y
For i = intUltimaFila To 1 Step -1
Let strTest= Application.Cells(i, 2)
If strTest <> “X” And strTest <> “Y” Then Rows(i).Delete
Next i
Métodos abreviados de teclado en Excel
Límites de Excel
Número total de columnas disponibles en Excel.
Límite Excel 2003: 256 (2^
Límite Excel 2007: 16.384 (2^14)
Número total de filas disponibles en Excel.
Límite Excel 2003: 65.536 (2^16)
Límite Excel 2007: el 1.048.576 (2^20)
Las celdas por hoja es la multiplicación de las filas por las columnas.
Un libro puede tener un número variable de hojas, según nuestras necesidades. El límite estaba en 256 y está ahora en 1024.
Número total de hojas disponibles en Excel.
Límite Excel 2003: 256 (2^
Límite Excel 2007: 1.024 (2^10)
Cantidad total de memoria del PC que Excel puede utilizar.
Límite Excel 2003: 1GB.
Límite Excel 2007: 2 GB.
Número de colores únicos permitido en un solo libro de trabajo.
Límite Excel 2003: 56 (color puesto en un índice)
Límite Excel 2007: 4.294.967.296 (casi 4300 millones, color 32-bit)
Número de condiciones condicionales del formato en una celda.
Límite Excel 2003: 3 condiciones
Límite Excel 2007: Limitado por memoria disponible
Número de niveles para ordenar en una lista o una tabla.
Límite Excel 2003: 3
Límite Excel 2007: 64
Número de datos mostrados en el Autofiltro.
Límite Excel 2003: 1.000
Límite Excel 2007: 10.000
Número total de caracteres que puede exhibir una celda.
Límite Excel 2003: 1.024 (cuando se ajusta a formato el texto)
Límite Excel 2007: 32.768 o tanto como quepa en la celda (sin importar el formato)
Número de caracteres por celda que el Excel puede imprimir.
Límite Excel 2003: 1.024
Límite Excel 2007: 32.768
Número total de los estilos únicos de la celda en un libro de trabajo (combinaciones de todo el formato de la celda).
Límite Excel 2003: 4000
Límite Excel 2007: 65.536
Longitud máxima de fórmulas (en caracteres).
Límite Excel 2003: carácteres 1.024
Límite Excel 2007: carácteres 8.192
Número de niveles de anidación que Excel permite en fórmulas.
Límite Excel 2003: 7
Límite Excel 2007: 64
Número máximo de discusiones a una función.
Límite Excel 2003: 30
Límite Excel 2007: 255
Número máximo de artículos que encuentra el comando “buscar todos”.
Límite Excel 2003: ~64k (65472)
Límite Excel 2007: ~2 mil millones
Número de filas permitidos en una tabla dinámica.
Límite Excel 2003: 65.536
Límite Excel 2007: 1.048.576
Número de columnas permitidoen una tabla dinámica.
Límite Excel 2003: 255
Límite Excel 2007: 16.384
Número máximo de artículos únicos dentro de un solo campo de una tabla dinámica.
Límite Excel 2003: 32.768
Límite Excel 2007: 1.048.576
Longitud del nombre de MDX para un artículo de una tabla dinámica; también la longitud de la secuencia para una tabla dinámica emparentada.
Límite Excel 2003: 255 caracteres
Límite Excel 2007: 32.768
Longitud a la cual se truncan los campos que etiquetan una tabla dinámica; esto también incluye limitaciones de la longitud del subtítulo.
Límite Excel 2003: 255
Límite Excel 2007: 32.768
El número de campos (según lo visto en la lista del campo) que una sola tabla dinámica puede tener.
Límite Excel 2003: 255
Límite Excel 2007: 16.384
Número de celdas que pueden depender de un solo rango antes que Excel necesite hacer cálculos completos en vez de cálculos parciales (porque no puede seguir las dependencias requeridas para hacer cálculos parciales).
Límite Excel 2003: 8.192
Límite Excel 2007: Limitado por memoria disponible
El número de rangos diversos en una hoja que pueden tener dependencias antes de que Excel necesite hacer cálculos completos en vez de cálculos parciales (porque no puede seguir las dependencias requeridas para hacer cálculos parciales).
Límite Excel 2003: 65.536
Límite Excel 2007: Limitado por memoria disponible
Número de fórmulas en conjunto en una hoja de trabajo que pueden referir a otra hoja de trabajo.
Límite Excel 2003: 65.536
Límite Excel 2007: Limitado por memoria disponible
Número de categorías que las funciones personalizadas pueden encapsular.
Límite Excel 2003: 32
Límite Excel 2007: 255
Número de caracteres que se pueden actualizar en una referencia externa que no pertenece al libro de trabajo.
Límite Excel 2003: 255
Límite Excel 2007: 32.768
Número de filas de una o varias columnas que se pueden referir en una fórmula matricial (array formula).
Límite Excel 2003: 65.335
Límite Excel 2007: No hay límites.
Número de caracteres que se pueden almacenar y exhibir en una celda ajustada a formato de texto.
Límite Excel 2003: 255
Límite Excel 2007: 32.768
Macro que elimina las barras de desplazamiento
Sub elimina_barra()
With ActiveWindow
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False
End With
End Sub
Macro que protege el libro y la hoja
Sub proteger()
ActiveWorkbook.Protect Password:=”1234″
Sheets(“Hoja1″).Protect Password:=”1234″
End Sub
Calculo del NIF
Esta función calcula el NIF (Número de Identificación Fiscal).
Function nif(dni As Long) As String
nif = Mid(“TRWAGMYFPDXBNJZSQVHLCKE”, (dni Mod 23) + 1, 1)
End Function