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 (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 el miércoles a las 22:47 1 día
Buenas tardes,
Adjunto archivo donde he hecho una macro para copiar datos de la hoja Plantilla a las siguientes hojas:
Resultados Bca Comercial, en esta hoja la información de la hoja plantilla 1 se ha pasado aqui en valores, lo he ordenado por el numero de operaciones ingresadas y el nº de operaciones observadas, de forma descendente pero hay celdas vacias que me aparecen al comienzo de la ordenacion, como hago para aparezcan al final
Resultados Colaboradores BC, en esta hoja no se copia toda la información de la plantilla 1 que empieza a partir de la celda k4
Resultados Colaboradores FV en esta hoja no aparece la información aparecen como REF
Aqui mi macro,
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
'Resultados Red de Oficinas
Sheets("Plantilla 1").Range("B4", ActiveSheet.Range("B4").End(xlDown).End(xlToRight)).Copy Destination:=Sheets("Resultados Bca Comercial").Range("B4")
Sheets("Resultados Bca Comercial").Select
ActiveSheet.Range("B4", ActiveSheet.Range("B4").End(xlDown).End(xlToRight)).Copy
ActiveSheet.Range("B4", ActiveSheet.Range("B4").End(xlDown).End(xlToRight)).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
ActiveSheet.Range("B4", ActiveSheet.Range("B4").End(xlDown).End(xlToRight)).Select
Sheets("Resultados Bca Comercial").Sort.SortFields.Clear
Sheets("Resultados Bca Comercial").Sort.SortFields.Add Key:=Range("D5: D91"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
Sheets("Resultados Bca Comercial").Sort.SortFields.Add Key:=Range("E5: E91"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Resultados Bca Comercial").Sort
.SetRange ActiveSheet.Range("B4", ActiveSheet.Range("B4").End(xlDown).End(xlToRight))
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sheets("Resultados Bca Comercial").Range("B4").Select
Sheets("Plantilla 1").Activate
'Resultados Colaboradores Fuerza de Ventas
Sheets("Plantilla 1").Range("K4", ActiveSheet.Range("K4").End(xlDown).End(xlToRight)).Copy Destination:=Sheets("Resultados Colaboradores BC").Range("B4")
Sheets("Resultados Colaboradores BC").Select
ActiveSheet.Range("B4", ActiveSheet.Range("B4").End(xlDown).End(xlToRight)).Copy
ActiveSheet.Range("B4", ActiveSheet.Range("B4").End(xlDown).End(xlToRight)).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Sheets("Resultados Colaboradores BC").Range("B4").Select
Sheets("Plantilla 1").Activate
'Resultados Colaboradores Bca Comercial
Sheets("Plantilla 1").Range("T4", ActiveSheet.Range("T4").End(xlDown).End(xlToRight)).Copy Destination:=Sheets("Resultados Colaboradores FV").Range("B4")
Sheets("Resultados Colaboradores FV").Select
ActiveSheet.Range("B4", ActiveSheet.Range("B4").End(xlDown).End(xlToRight)).Copy
ActiveSheet.Range("B4", ActiveSheet.Range("B4").End(xlDown).End(xlToRight)).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Sheets("Resultados Colaboradores FV").Range("B4").Select
Sheets("Plantilla 1").Activate
End Sub
Prueba 14.xlsm
Prueba 14.zip