Buenas tardes! Como están?
Les comento, tengo una planilla que utilizo para emitir recibos de pago de las propiedades de las que administro el alquiler en mi inmobiliaria. Actualmente la planilla funciona bien, pero cuando tengo que imprimir los recibos, tengo que ir haciéndolos de a uno y me resultaría más practico escribir una lista de las propiedades de las que ya estoy en condiciones de realizar los recibos y que la macro se vaya repitiendo hasta que haya emitido todos los recibos (ya que la macro es bastante lenta y tengo que esperar unos 10 segundos entre recibo y recibo y son como 120 los que tengo que hacer)
Actualmente el recibo se completa cambiando el valor de una celda (que es el que identifica a cada inmueble), por lo que entiendo que lo unico que tendría que hacer el loop, es imprimir el primer recibo, copiar de una lista el número de identificacion de la siguiente propiedad de la lista, copiarlo en la celda que completa el recibo, volver a ejecutar la macro para generar el siguiente recibo y así sucesivamente hasta finalizar toda la lista. Eventualmente estaría bueno que aparezca un aviso cuando ya haya finalizado de emitir todos los recibos.
Adjunto el archivo en donde dejé indicado donde pondría la lista de codigos de propiedad a emitir, el boton que ejecuta las macros y cual es la celda que la macro iría modificando para completar los recibos con los datos de cada uno de los inmuebles a imprimir
La hojas se desbloquean con la clave 4324 o con el boton rojo que hay en las mismas (cada vez que se ejecuta la macro se vuelve a bloquear)
Desde ya les agradezco la ayuda!
Anexo:
La macro individual actual es la siguiente (en la planilla se ejecuta con un boton amarillo que está en la hoja consultas).
Sub Imagen13_Haga_clic_en()
Dim Izq As Single, Arr As Single, Ancho As Single, Alto As Single
Application.DisplayAlerts = False
Application.ScreenUpdating = False
ActiveSheet.Unprotect "4324"
With Range("H7:R34")
Izq = .Left: Arr = .Top: Ancho = .Width: Alto = .Height: .CopyPicture
End With
With ActiveSheet.ChartObjects.Add(Izq, Arr, Ancho, Alto)
.Activate
.Chart.Paste
.Chart.Export "C:\Users\Usuario\Google Drive\LOCACIONES\REC. PROPIETARIOS\" & Format(Range("q20"), "mmmYY") & " - " & Range("Q9") & " - " & Range("P17") & " - " & Range("K19") & ".JPG"
.Delete
End With
'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ (desactivé esto para que no imprima en papel)
'IgnorePrintAreas:=False
Range("AH6").Select
Selection.Copy
Range("AH9").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("Y7:AI33").Select
Selection.Copy
Range("H7").Select
ActiveSheet.Paste
Range("a4").Select
ActiveSheet.Protect "4324"
ActiveWorkbook.Save
Dim Email As CDO.Message
Set Email = New CDO.Message
correo_origen = "nqn.negocios@gmail.com"
Clave_correo_origen = "wkfhaapcnjljbwju"
correo_destino = Range("ak27").Value
Asunto = Range("ak28")
Mensaje = Range("ak29")
'correo_copia = "envioacorreocopia@gmail.com"
'correo_copia_oculta = "enviocopiaoculta@gmail.com"
Email.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com"
Email.Configuration.Fields(cdoSendUsingMethod) = 2
With Email.Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = CLng(465)
.Item("http://schemas.microsoft.com/cdo/" & "configuration/smtpauthenticate") = Abs(1)
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = correo_origen
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = Clave_correo_origen
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
End With
With Email
.To = correo_destino
.From = correo_origen
.Subject = Asunto
.TextBody = Mensaje
.Configuration.Fields.Update
If (Trim(correo_copia) = "") Then
.CC = correo_copia
End If
.AddAttachment (Range("ak30").Value)
On Error Resume Next
.Send
End With
End Sub
Sub powerbuttonINQ()
Dim Izq As Single, Arr As Single, Ancho As Single, Alto As Single
Application.DisplayAlerts = False
Application.ScreenUpdating = False
ActiveSheet.Unprotect "4324"
With Range("H7:R33")
Izq = .Left: Arr = .Top: Ancho = .Width: Alto = .Height: .CopyPicture
End With
With ActiveSheet.ChartObjects.Add(Izq, Arr, Ancho, Alto)
.Activate
.Chart.Paste
.Chart.Export "C:\Users\Usuario\Google Drive\LOCACIONES\REC. INQUILINOS\" & Format(Range("q20"), "mmmYY") & " - " & Range("Q9") & " - " & Range("P17") & " - " & Range("J17") & ".JPG"
.Delete
End With
'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
'IgnorePrintAreas:=False
Range("AH6").Select
Selection.Copy
Range("AH9").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("Y7:AI33").Select
Selection.Copy
Range("H7").Select
ActiveSheet.Paste
Range("a4").Select
ActiveSheet.Protect "4324"
ActiveWorkbook.Save
Dim Email As CDO.Message
Set Email = New CDO.Message
correo_origen = "nqn.negocios@gmail.com"
Clave_correo_origen = "wkfhaapcnjljbwju"
correo_destino = Range("ak27").Value
Asunto = Range("ak28")
Mensaje = Range("ak29")
'correo_copia = "envioacorreocopia@gmail.com"
'correo_copia_oculta = "enviocopiaoculta@gmail.com"
Email.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com"
Email.Configuration.Fields(cdoSendUsingMethod) = 2
With Email.Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = CLng(465)
.Item("http://schemas.microsoft.com/cdo/" & "configuration/smtpauthenticate") = Abs(1)
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = correo_origen
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = Clave_correo_origen
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
End With
With Email
.To = correo_destino
.From = correo_origen
.Subject = Asunto
.TextBody = Mensaje
.Configuration.Fields.Update
If (Trim(correo_copia) = "") Then
.CC = correo_copia
End If
.AddAttachment (Range("ak30").Value)
On Error Resume Next
.Send
End With
End Sub
ALQUILERES L - para POL.xlsm
Por
Corvette, · publicado
Vocabulario, Glosario o Definiciones y Ayuda VBA
Las definiciones presentadas se incrementarán a media que pase el tiempo
ActiveCell.FormulaR1C1 = "Recurso" : Escribe en la celda activa "Recurso"
ActiveCell.Offset(0, 1).Select : Muevete una columna a la derecha
ActiveCell.Offset(0, -1).Select : Muevete una columna a la izquierda
ActiveCell.Offset(1, 0).Select : Muevete 1 fila hacia abajo
ActiveCell.Offset(-1, 0).Select : Muevete 1 fila hacia arriba
ActiveSheet.Paste : Pega en la Hoja activa (En la hoja q este ubicado)
ActiveWindow.DisplayGridlines = False : Ocultar el borde de las celdas
ActiveWindow.DisplayGridlines = True : Mostrar el borde de las celdas
ActiveWindow.DisplayHeadings = False : Ocultar las columnas
ActiveWindow.DisplayHeadings = True : Mostrar las columnas
ActiveWindow.WindowState = xlMaximized : Maximiza
ActiveWindow.WindowState = xlMinimized : Minimiza
ActiveWorkbook.Close : Cerrar Libro Activo
ActiveWorkbook.Save : Guardar Libro Activo
Application.CutCopyMode = False : Desahabilita copiar
Application.DisplayAlerts = False : Desacativar alertas de Excel
Application.DisplayAlerts = True : Activar alertas de Excel
Application.ScreenUpdating = False : Quitar parpadeo pantalla cuando se ejecuta la macro
Application.ScreenUpdating = True : Activar parpadeo pantalla cuando se ejecuta la macro
Call : Llamar un Procedimiento o Macro
Cells : Celda
Cells(7,2).Select : Selecciona la celda B7
Cells.Delete : Elimina todas las celdas
Cells.Select : Selecciona todas las celdas
Columns("A:I").EntireColumn.AutoFit : Margen automático desde las columnas A a la I
Columns("D:D").Select : Selecciona la Columna D
Hoja1.Name = "Inventario" : El nombre de la Hoja1 será "Inventario"
Hoja1.Visible = xlSheetVisible : Muestra la Hoja1
Hoja1.Visible =xlSheetHidden : Oculta la Hoja1
Hoja2.Cells(1, 3) = "Cantidad" : Escribe en la celda C1 "Cantidad"
Hoja2.select : Selecciona la Hoja2
Range : Rango
Range("A2:F2").Select : Selecciona de la celda A2 a la F2
Range("B7").Select : Selecciona la celda B7
Select : Seleccionar
Selection.ClearContents : Limpiar contenido o información de la celda
Selection.Copy : Copiar selección
Selection.Cut : Cortar selección
Selection.EntireColumn.Delete : Elimina la columna selecciona
Selection.Font.Bold = True : Selecciona y pone la letra en Negrita
Selection.NumberFormat = "#,##0.00" : El formato seleccionado númerico es 20.000,54
Sheets("Hoja2").select : Selecciona la Hoja2
Hoja2.select : Selecciona la Hoja2
Windows("Macros Excel.xls").Activate : Selecciona o Activa el libro "Macros Excel.xls"
Alinear el contenido al Centro With Selection
: .HorizontalAlignment = xlCenter
End With
Alinear el contenido al Izquierda With Selection
: .HorizontalAlignment = xlLeft
End With
Alinear el contenido al Derecha With Selection
: .HorizontalAlignment = xlRight
End With
MsgBox : Mensaje
MsgBox Configuración : MsgBox Mensaje, Icono, Titulo
InputBox : Caja de Texto para Introducir valores con Aceptar y Cancelar
Empty : Limpiar
End Sub