Mejoras organizativas y de gestión en el Departamento de Ofertas de una empresa para el tratamiento del agua ANEXO IVIV- Macros Macros para la mejora en la subcontratación Pablo Espinar López Universidad de Sevilla 122 Mejoras organizativas y de gestión en el Departamento de Ofertas de una empresa para el tratamiento del agua ANEXO IVIV- Macros para la mejora en la subcontratación En el archivo Excel encargado de llevar la subcontratación, existen tres macros, una para realizar subtotales por proveedores (en la hoja llamada Sub. Por proveedor Control+p) pues se ejecuta pulsando Control+p, otra para realizar un resumen y un subtotal por los responsables de las ofertas (en la hoja llamada Subtotales Control+e) pues igualmente se ejecuta pulsando Control+e, y finalmente una en la hoja principal Subcontrat que se ejecuta al pulsar sobre la imagen del calendario y oredna la hoja por fecha. Así la macro que ordena la hoja principal por fecha sería: Sub Fecha() ' ' Acceso directo: CTRL+f ' Sheets("Subcontrat").Select Range("A8:HJ13030").Select Selection.Sort Key1:=Range("M9"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom ActiveWindow.ScrollColumn = 10 ActiveWindow.ScrollColumn = 5 Range("F4").Select End Sub La que realiza los subtotales por proveedor: Sub Proveedor() ' ' Acceso directo: CTRL+p ' Sheets("Sub. por proveedor (Control+p)").Select Pablo Espinar López Universidad de Sevilla 123 Mejoras organizativas y de gestión en el Departamento de Ofertas de una empresa para el tratamiento del agua Cells.Select Selection.Delete Shift:=xlUp Range("B22").Select Sheets("Subcontrat").Select Range("A1:D4").Select Selection.Copy Sheets("Sub. por proveedor (Control+p)").Select Range("A1").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("A4").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "Subcontratación 2007. Resumen por proveedores" Range("A5").Select Sheets("Subcontrat").Select Rows("8:10338").Select Selection.Copy Sheets("Sub. por proveedor (Control+p)").Select Rows("8:8").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("A8:E15535").Select Application.CutCopyMode = False Selection.Delete Shift:=xlToLeft Range("C8:IV15331").Select Selection.Delete Shift:=xlToLeft Range("C15").Select Columns("A:A").ColumnWidth = 21.29 Columns("B:B").ColumnWidth = 12.14 Pablo Espinar López Universidad de Sevilla 124 Mejoras organizativas y de gestión en el Departamento de Ofertas de una empresa para el tratamiento del agua Range("A8:B957").Select ActiveWindow.SmallScroll Down:=-21 ActiveWindow.ScrollRow = 1 Sheets("Subcontrat").Select Range("F7:G7").Select Selection.Copy Sheets("Sub. por proveedor (Control+p)").Select Range("A7").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("B7").Select Selection.Font.ColorIndex = 50 Range("E8").Select Sheets("Subcontrat").Select Range("F4").Select Sheets("Sub. por proveedor (Control+p)").Select Range("A8:B17484").Select Selection.Sort Key1:=Range("A9"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(2), _ Replace:=True, PageBreaks:=False, SummaryBelowData:=True ActiveSheet.Outline.ShowLevels RowLevels:=2 Range("E14").Select End Sub Y la que realiza un resumen general y por responsable de ofertas es la siguiente: Sub Subtotales() ' ' Subtotales Macro Pablo Espinar López Universidad de Sevilla 125 Mejoras organizativas y de gestión en el Departamento de Ofertas de una empresa para el tratamiento del agua ' ' Acceso directo: CTRL+e ' Sheets("Subcontrat").Select ActiveWindow.SmallScroll Down:=-102 Rows("8:5154").Select Selection.Copy Sheets("Subtotales (Contrl+e)").Select ActiveWindow.SmallScroll Down:=51 Rows("70:70").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Rows("70:70").Select Application.CutCopyMode = False Selection.AutoFilter Sheets("Subcontrat").Select Range("G7").Select Selection.Copy Sheets("Subtotales (Contrl+e)").Select Range("G69").Select ActiveSheet.Paste Range("H68").Select Sheets("Subcontrat").Select Range("H7").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "" Range("H6").Select Sheets("Subtotales (Contrl+e)").Select Range("G69").Select ActiveWindow.SmallScroll Down:=0 Selection.AutoFilter Field:=5, Criteria1:="Alberto Gómez" Selection.AutoFilter Field:=9, Criteria1:="=" Pablo Espinar López Universidad de Sevilla 126 Mejoras organizativas y de gestión en el Departamento de Ofertas de una empresa para el tratamiento del agua Selection.Copy Range("E65").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.AutoFilter Field:=9, Criteria1:="DT" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E66").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("E65:E66").Select Application.CutCopyMode = False Selection.Copy ActiveWindow.SmallScroll Down:=-54 Range("C10").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False ActiveWindow.SmallScroll Down:=42 Selection.AutoFilter Field:=5, Criteria1:="Gabriel Fuentes" Selection.AutoFilter Field:=9, Criteria1:="=" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E65").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.AutoFilter Field:=9, Criteria1:="DT" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E66").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Pablo Espinar López Universidad de Sevilla 127 Mejoras organizativas y de gestión en el Departamento de Ofertas de una empresa para el tratamiento del agua Range("E65:E66").Select Application.CutCopyMode = False Selection.Copy ActiveWindow.SmallScroll Down:=-54 Range("C13").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.AutoFilter Field:=5, Criteria1:="Rosa B." Selection.AutoFilter Field:=9, Criteria1:="=" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E65").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.AutoFilter Field:=9, Criteria1:="DT" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E66").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.AutoFilter Field:=9 Range("E65:E66").Select Application.CutCopyMode = False Selection.Copy ActiveWindow.SmallScroll Down:=-45 Range("C16").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False ActiveWindow.SmallScroll Down:=42 Selection.AutoFilter Field:=5, Criteria1:="Francisco López" Range("J70").Select Selection.AutoFilter Field:=9, Criteria1:="=" Pablo Espinar López Universidad de Sevilla 128 Mejoras organizativas y de gestión en el Departamento de Ofertas de una empresa para el tratamiento del agua Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E65").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.AutoFilter Field:=9, Criteria1:="DT" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E66").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.AutoFilter Field:=9 Range("E65:E66").Select Application.CutCopyMode = False Selection.Copy ActiveWindow.SmallScroll Down:=-36 Range("C19").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False ActiveWindow.SmallScroll Down:=36 Selection.AutoFilter Field:=5, Criteria1:="Juan Castaño" Selection.AutoFilter Field:=9, Criteria1:="=" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E65").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.AutoFilter Field:=9, Criteria1:="DT" Range("G69").Select Application.CutCopyMode = False Selection.Copy Pablo Espinar López Universidad de Sevilla 129 Mejoras organizativas y de gestión en el Departamento de Ofertas de una empresa para el tratamiento del agua Range("E66").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.AutoFilter Field:=9 Range("E65:E66").Select Application.CutCopyMode = False Selection.Copy ActiveWindow.SmallScroll Down:=-33 Range("C22").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False ActiveWindow.SmallScroll Down:=33 Selection.AutoFilter Field:=5, Criteria1:="Laura Esteban" Selection.AutoFilter Field:=9, Criteria1:="=" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E65").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.AutoFilter Field:=9, Criteria1:="DT" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E66").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.AutoFilter Field:=9 Range("E65:E66").Select Application.CutCopyMode = False Selection.Copy ActiveWindow.SmallScroll Down:=-33 Range("C25").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ Pablo Espinar López Universidad de Sevilla 130 Mejoras organizativas y de gestión en el Departamento de Ofertas de una empresa para el tratamiento del agua False, Transpose:=False ActiveWindow.SmallScroll Down:=33 Selection.AutoFilter Field:=5, Criteria1:="María Sanz" Selection.AutoFilter Field:=9, Criteria1:="=" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E65").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.AutoFilter Field:=9, Criteria1:="DT" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E66").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.AutoFilter Field:=9 Range("E65:E66").Select Application.CutCopyMode = False Selection.Copy ActiveWindow.SmallScroll Down:=-27 Range("C28").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False ActiveWindow.SmallScroll Down:=33 Selection.AutoFilter Field:=5, Criteria1:="Roberto Flores" Selection.AutoFilter Field:=9, Criteria1:="=" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E65").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Pablo Espinar López Universidad de Sevilla 131 Mejoras organizativas y de gestión en el Departamento de Ofertas de una empresa para el tratamiento del agua Selection.AutoFilter Field:=9, Criteria1:="DT" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E66").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("E65:E66").Select Application.CutCopyMode = False Selection.Copy ActiveWindow.SmallScroll Down:=-33 Range("C31").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K70").Select Selection.AutoFilter Field:=5 Selection.AutoFilter Field:=11, Criteria1:="Pedidos" Selection.AutoFilter Field:=9, Criteria1:="=" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E65").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.AutoFilter Field:=9, Criteria1:="DT" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E66").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False ActiveWindow.SmallScroll Down:=-3 Range("E65:E66").Select Application.CutCopyMode = False Pablo Espinar López Universidad de Sevilla 132 Mejoras organizativas y de gestión en el Departamento de Ofertas de una empresa para el tratamiento del agua Selection.Copy ActiveWindow.SmallScroll Down:=-57 Range("H10").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False ActiveWindow.SmallScroll Down:=54 Selection.AutoFilter Field:=9 Selection.AutoFilter Field:=11, Criteria1:="Solic Pedidos" ActiveWindow.SmallScroll Down:=-3 Selection.AutoFilter Field:=9, Criteria1:="=" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E65").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.AutoFilter Field:=9, Criteria1:="DT" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E66").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("E65:E66").Select Application.CutCopyMode = False Selection.Copy ActiveWindow.SmallScroll Down:=-51 Range("H13").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False ActiveWindow.SmallScroll Down:=57 Selection.AutoFilter Field:=9 Selection.AutoFilter Field:=11, Criteria1:="Conf, Pte solic Ped" Selection.AutoFilter Field:=9, Criteria1:="=" Pablo Espinar López Universidad de Sevilla 133 Mejoras organizativas y de gestión en el Departamento de Ofertas de una empresa para el tratamiento del agua Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E65").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.AutoFilter Field:=9, Criteria1:="DT" Range("G69").Select Application.CutCopyMode = False Selection.Copy Range("E66").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("E65:E66").Select Application.CutCopyMode = False Selection.Copy ActiveWindow.SmallScroll Down:=-54 Range("H16").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False ActiveWindow.SmallScroll Down:=45 Selection.AutoFilter Field:=9 Selection.AutoFilter Field:=11 Rows("64:64").RowHeight = 13.5 Rows("65:8440").Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp ActiveWindow.SmallScroll Down:=-45 Range("J21").Select ActiveWindow.SmallScroll Down:=-6 Range("E6").Select End Sub Pablo Espinar López Universidad de Sevilla 134