Tips excel
activesheet.Protect password:="abc123"
activesheet.Unprotect password:="abc123"
1. Para cerrar cuadros de advertencia no deseados o necesarios
Application.DisplayAlerts = False
2. Selecciona rango comprendido por 2.000 filas y 10 columnas a partir de la celda activa
Range(ActiveCell.Offset(2000, 0), ActiveCell.Offset(0, 10)).Select
3. Ante unerror detectado (por ejemplo al presionar la tecla “Esc” mientras se ejecuta código:
On Error GoTo ReProtect
Código VBA
ReProtect:
Run "REPROTECT"
4. Selecciona todo elrango hacia abajo desde la seleccióninicial “s2:t2”
Range("s2:t2", ActiveCell.End(xlDown)).Select
5. Permite jecutar código en una Hoja protegida (cuidar de desprotejer celdas modificables o en las cualesdebe escribirse algo o incorporarse una fórmula). Permite además ejecutar filtro automático (AllowFiltering).
Sheets("DESC").Protect password:="abc123", UserInterfaceOnly:=True, AllowFiltering:=True
6. Bucle Goto (Ir a)
GoTo 1:
1: sheets(“desc”).select
7. Seleccionar una celda específica en un rango extendido asociado al N° de una fila (Indexación)
Range("O3").SelectCells(Sheets("ASIGNADOR").Cells(1, 1).Value + 3, ActiveCell.Offset(0, 0).Column).Select
ó
Cells(c.Value, ActiveCell.Offset(0, 0).Column).Select
Donde c.value es la variable que contiene el valor que se buscará. El cursor se detendrá en el valor encontrado.
8. Llama a otras macros para que se jecuten
Sub test_call()
Call Macro1
Call Macro2
Call Macro3
End sub
Crea Cuadro deDiálogo interactivo
Sub CuadroInteractivo()
'Donde y = 6 significa "SI"
Dim y
y = MsgBox("¿Esta seguro que desea borrar la información de EAC por intervalos de Toda la semana?", vbYesNo, "")
If y = 6 Then
MsgBox "SI"
Else
MsgBox "NO"
End If
End Sub
Otro cuadro de diálogo interactivo
Sub CALCULA_ORIGINAL()
Dim mensaje
Dim estilo
Dim titulo
Dim respuestamensaje = " ¿Desea reemplazar los datos Originales por los provenientes del MODELO? "
estilo = vbYesNo + vbDefaultButton2
titulo = "Validar datos finales"
respuesta = MsgBox(mensaje, estilo, titulo)
If respuesta = vbYes Then
On Error Resume Next
Range("h5:h52").Select
Selection.Copy
Range("i5").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,SkipBlanks:= _
False, Transpose:=False
Else
ActiveSheet.Select
Exit Sub
End If
End Sub
Asigna fórmulas a rango extendido
Sub asignaformulas()
With Range("a2:a14283")
.FormulaR1C1 = "=CONCATENATE(RC[1]&"" ""&RC[8])"
.Value = .Value
End With
End Sub
Ejecutar macro desde otro libro
Sub MacroUno()
****MsgBox "Hola!"
****Workbooks.Open Filename:="C:\(...ruta...) \Otrolibro.xlxm"
****Application.Run "Otrolibro.xls!MacroDos"
End Sub
Ejecuta 2 macros de distintos libros abiertos
Sub unoMacros()
Application.Run "Feedback.xlxm!buscamultiple"
Application.Run "Libro2.xlxm!nada"
End Sub
Selecciona rango paralelo acolumna A y genera un autofill
Public Sub FINAL()
uf = Range("A" & Cells.Rows.Count).End(xlUp).Row
Range("B2").SelectSelection.AutoFill Destination:=Range("B2" & ":B" & uf), Type:=xlFillDefault
End Sub
CELDA que cuando introduzca una segunda cantidad se sume a la cantidad que ya hay
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Range("C1") = Range("A1") + Range("C1")
Range("A1").Select
If Target.Address = "$A$1" And Target.Value = "" Then Range("C1").Value =0
End Sub
Ajusta automáticamente altura filas de acuerdo al texto
Sub EjecutarEnHojasSeleccionadas()
Dim ws As Worksheet
For Each ws In ActiveWindow.SelectedSheets
AutoFitMergedCellRowHeight ws.Range(ActiveCell.Address)
Next ws
End Sub
Abre PDF desde Excel
1. Sub Abrirreg()
2. ruta = ActiveWorkbook.Path & ""
3. arch = ruta &...
Regístrate para leer el documento completo.