Anexo 1. Macros. Proyectista: Anabel Martín Martínez Director: Dr. José Manuel Gómez Soberón Convocatoria: Junio de 2011 ANEXO 1. MACROS. La obra se distribuye bajo los términos y condiciones de la presente licencia pública de Creative Commons (“ccpl” o “licencia”). La obra está protegida por la ley del derecho de autor y/o por cualquier otra ley que resulte aplicable. Cualquier uso distinto del autorizado por la presente licencia o por la ley del derecho de autor está prohibido. Se entiende que por el mero ejercicio de cualquiera de los derechos aquí previstos sobre la obra, usted acepta y se obliga bajo los términos y condiciones de la presente licencia. El licenciante le otorga los derechos aquí descritos considerando la aceptación por su parte de dichos términos y condiciones. Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación INDICE. 1. MACROS DEL PROGRAMA. .............................................................................................. 7 2. 1.1. Recorrido_capítulos. .................................................................................................... 7 1.2. Recorrido_subcapítulos. .............................................................................................. 8 1.3. Recorrido_partidas. .................................................................................................... 10 1.4. Importe_capítulos. ..................................................................................................... 11 1.5. Importe_subcapítulos. ................................................................................................ 12 1.6. Importe_partidas. ....................................................................................................... 13 1.7. Importe_parcial_mediciones. ..................................................................................... 14 1.8. Importe_filtrardatos. .................................................................................................. 16 1.9. Datos_resumen. .......................................................................................................... 18 1.10. Datos_resumen_multinivel..................................................................................... 20 1.11. Datos_certificación................................................................................................. 26 1.12. Datos_resumen_certificación. ................................................................................ 26 1.13. Datos_resumenmultin_certif. ................................................................................. 45 1.14. Función_conversión_letras..................................................................................... 62 1.15. Agrupar_niveles. .................................................................................................... 64 1.16. Columnas_filas_visibles......................................................................................... 66 1.17. Eliminar_presupuesto. ............................................................................................ 66 1.18. Formato imprimir. .................................................................................................. 67 USERFORM DEL PROGRAMA. .................................................................................... 71 2.1. UserForm1: Instrucciones. ............................................................................................. 71 2.2. UserForm2: Información. .............................................................................................. 71 2.3. UserForm3: Datos de proyecto. ..................................................................................... 71 2.4. UserForm4: Niveles presupuestarios. ............................................................................ 75 2.5. UserForm5: Capítulos. ................................................................................................... 76 2.6. UserForm6: Subcapítulos. ............................................................................................. 78 2.7. UserForm7: Partidas. ..................................................................................................... 80 2.8. UserForm8: Añadir conceptos a presupuesto. ............................................................... 84 2.9. UserForm9: Suprimir conceptos a presupuesto. ............................................................ 89 2.10. UserForm10: Nuevo concepto. .................................................................................... 90 2.11. UserForm11: Partida alzada. ........................................................................................ 93 5 6 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 2.12. UserForm12: Partida con descomposición. ................................................................. 94 2.13. UserForm13: Precio descompuesto. ............................................................................ 97 2.14. UserForm14: Fórmula alternativa. ............................................................................. 100 2.15. UserForm15: Ajustar presupuesto. ............................................................................ 101 2.16. UserForm16: Nueva certificación. ............................................................................. 104 2.17. UserForm17: Certificaciones. .................................................................................... 110 2.18. UserForm18: Certificaciones resumen. ..................................................................... 130 2.19. UserForm19: Certificaciones multinivel. .................................................................. 143 2.20. UserForm20: Carátula certificación. .......................................................................... 155 2.21. UserForm21: Introducir fórmulas en certificación. ................................................... 160 2.22. UserForm22: Comparativo certificación actual y a origen. ....................................... 160 2.23. UserForm23: Imprimir listados. ................................................................................ 192 Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación 1. MACROS DEL PROGRAMA. El titulo de cada macro corresponde al nombre de módulo en Visual Basic. Los comentarios adicionales para una mayor comprensión de las instrucciones se indican en letra cursiva. 1.1. Recorrido_capítulos. Option Explicit Sub recorrido() Dim i As Integer Dim ran As Range Dim col As Integer, fila As Integer Dim capitulos As Integer '-----------------------------------------------------------'Selecciona rango de celdas según capitulos insertados Range("B8").Select fila = Range("B8").Value ActiveCell.Resize(fila, 1).Select Set ran = ActiveCell.Resize(fila, 1) 'Recorrido numérico de capítulos en rango seleccionado For i = 1 To ran.Count ran(i).Value = i Next i '-----------------------------------------------------------'Añadir datos de capítulos para crear la lista de combobox en userform3 ran.Select ran.copy Sheets("Hoja1").Select Range("A2").Select ActiveSheet.Paste Destination:=Range("A2") '-----------------------------------------------------------'Texto de rango seleccionado en negrita Sheets("presupuesto").Select ran.Select ran.Font.Bold = True ran.Font.Color = RGB(0, 0, 0) '-----------------------------------------------------------'Rellena datos de valor uno para F (cantidad) Range("f8").Select ActiveCell.Resize(fila, 1).Select Dim h As Object For Each h In Selection.Cells h.Value = 1 Val (h = FormatNumber(h, 2)) Next h '-----------------------------------------------------------'Rellena datos de valor uno para L (UDS) Range("l8").Select ActiveCell.Resize(fila, 1).Select For Each h In Selection.Cells 7 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 8 h.Value = 1 Val (h = FormatNumber(h, 2)) Next h '-----------------------------------------------------------'Inserta filas en blanco después de cada capítulo Range("B8").Select Selection.End(xlDown).Select Do ActiveCell.EntireRow.Insert Shift:=xlDown ActiveCell.Offset(-1, 0).Select Loop Until ActiveCell.Row = 8 End Sub 1.2. Recorrido_subcapítulos. Sub recorrido2_caso2() Dim i As Integer Dim rg As Range Dim col As Integer, fila As Integer Dim mynum As Variant Dim rangenum As Range Dim numer As Range '-----------------------------------------------------------'Busca el numero de capitulo donde irán los subcapitulos mynum = Range("B6").Value Set rangenum = Range("B8:B200").find(What:=mynum, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False) If rangenum Is Nothing Then Exit Sub '-----------------------------------------------------------‘Selecciona el rango de celdas según el nº de subcapítulos fila = Range("C6").Value rangenum.Select ActiveCell.Offset(1, 0).Select ActiveCell.Resize(fila - 1, 1).Select Selection.EntireRow.Insert Shift:=xlDown Set rg = ActiveCell.Resize(fila, 1) 'Recorrido númerico de subcapítulos For i = 1 To rg.Count rg(i).Value = i Next i '-----------------------------------------------------------'Valor numérico con formato 1.1,1.2,1.3... rangenum.Select ActiveCell.Offset(1, 0).Select ActiveCell.Resize(fila, 1).Select Dim e As Object For Each e In Selection.Cells If e.Value <= 9 Then e.Value = (e.Value * 0.1 + rangenum.Value) End If Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación If e.Value > 10 Then e.Value = (e.Value * 0.01 + rangenum.Value) End If If e.Value = 10 Then e.Value = (e.Value * 0.01 + rangenum.Value) e = FormatNumber(e, 2) End If Next e '-----------------------------------------------------------'Añadir datos de capítulos para crear la lista de combobox en userform3 rg.Select rg.copy Sheets("Hoja1").Select Set x = Range("B1:u1").find(What:=mynum, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False) If x Is Nothing Then Exit Sub ActiveSheet.Paste Destination:=x.Offset(1, 0) '-----------------------------------------------------------'Rellena la columna F (cantidad) con valor 1 Sheets("presupuesto").Select rangenum.Select ActiveCell.Offset(1, 4).Select ActiveCell.Resize(fila, 1).Select Dim h As Object For Each h In Selection.Cells h.Value = 1 Val (h = FormatNumber(h, 2)) Next h '-----------------------------------------------------------'Rellena la columna L (UDS) con valor 1 rangenum.Select ActiveCell.Offset(1, 10).Select ActiveCell.Resize(fila, 1).Select For Each h In Selection.Cells h.Value = 1 Val (h = FormatNumber(h, 2)) Next h '-----------------------------------------------------------'Pone en rojo el texto de las celdas seleccionadas rg.Select rg.Font.Color = RGB(255, 0, 0) '-----------------------------------------------------------'Inserta filas en blanco entre subcapítulos rg.Select Selection.End(xlDown).Select Do ActiveCell.EntireRow.Insert Shift:=xlDown ActiveCell.Offset(-1, 0).Select Loop Until rangenum.Offset(1, 0) = ActiveCell '------------------------------------------------------------ 9 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 10 'Borra el valor de datos introducidos en celda b6-c6 Range("B6").Value = "" Range("C6").Value = "" End Sub 1.3. Recorrido_partidas. Sub recorrido_part() Dim i As Single Dim rg As Range Dim col As Integer, fila As Integer Dim rangenum2 As Range Dim numer As Range Dim mynum2 As Variant '-----------------------------------------------------------'Busca el numero de subcapítulo donde irán las partidas mynum2 = Range("b6").Value Set rangenum2 = Range("B8:B200").find(What:=mynum2, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False) If rangenum2 Is Nothing Then Exit Sub '-----------------------------------------------------------'Selecciona el rango de celdas según el nº de subcapítulos fila = Range("c6").Value rangenum2.Select ActiveCell.Offset(1, 1).Select ActiveCell.Resize(fila - 1, 1).Select Selection.EntireRow.Insert Shift:=xlDown Set rg = ActiveCell.Resize(fila, 1) '-----------------------------------------------------------'Recorrido númerico de partidas For i = 1 To rg.Count rg(i).Value = i Next i '-----------------------------------------------------------'Pone en rojo el texto de las celdas seleccionadas rg.Select rg.Font.Color = RGB(0, 0, 255) 'Valor numérico con formato 11.1,11.2,11.3... rangenum2.Select ActiveCell.Offset(1, 1).Select ActiveCell.Resize(fila, 1).Select Dim e As Object For Each e In Selection.Cells If e.Value <= 9 Then e.Value = e.Value * 0.1 + Str(rangenum2.Value) Else If e.Value > 10 Then e.Value = e.Value * 0.01 + Str(rangenum2.Value) End If If e.Value = 10 Then Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación e.Value = e.Value * 0.01 + Str(rangenum2.Value) e = FormatNumber(e, 2) End If End If Next e '-----------------------------------------------------------'Borra el valor de datos introducidos en celda b6-c6 Range("b6").Value = "" Range("c6").Value = "" End Sub 1.4. Importe_capítulos. Sub calcresumen() Dim fila As Integer Dim a, b, c, d As Integer Dim n As Integer '-----------------------------------------------------------For Each cell In Range("b8:b300") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(1, 0).Select a = ActiveCell.Row b = ActiveCell.Column Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 600 Then ActiveCell.Offset(0, 13).Select ActiveCell.End(xlUp).Select c1 = ActiveCell.Row d1 = ActiveCell.Column fila2 = Range(Cells(a, b), Cells(c1, d1)).Count ActiveCell.Offset(1, 0).Select ActiveCell.FormulaR1C1 = "=SUM(R[-1]C:R[-" & fila2 & "]C)" Selection.Cut Destination:=ActiveCell.Offset(0, 1) ActiveCell.Offset(0, 1).Font.Bold = True ActiveCell.Offset(0, 1).Font.Underline = True Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.Select c = ActiveCell.Row - 1 d = ActiveCell.Column Range(Cells(a, b), Cells(c, d)).Select fila = Range(Cells(a, b), Cells(c, d)).Count Selection.Offset(0, 13).Select Selection(fila, 1).Select ActiveCell.Offset(1, 0).Select ActiveCell.EntireRow.Insert Shift:=xlDown 11 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 12 ActiveCell.FormulaR1C1 = "=SUM(R[-1]C:R[-" & fila & "]C)" Selection.Cut Destination:=ActiveCell.Offset(0, 1) ActiveCell.Offset(0, 1).Font.Bold = True ActiveCell.Offset(0, 1).Font.Underline = True Else End If Next cell End Sub 1.5. Importe_subcapítulos. Sub calcularimporte() Dim fila As Integer Dim fila2 As Integer Dim rg As Range Dim ranx As Range Dim cont As Integer Dim contador As Integer Dim a, b, c, d As Integer Dim ultimafila As Long Dim a1, b1, c1, d1 As Integer '-----------------------------------------------------------For Each cell In Range("b8:b300") If Not cell = Empty And cell.Font.Color = RGB(255, 0, 0) Then cell.Select ActiveCell.Offset(1, 0).Select a = ActiveCell.Row b = ActiveCell.Column c = ActiveCell.End(xlDown).Row d = ActiveCell.End(xlDown).Column If c < 600 Then fila = Range(Cells(a, b), Cells(c, d)).Count Set rg = ActiveCell.Resize(fila - 1, 1) rg.Select cont = rg.Count Set ranx = rg.Offset(0, 12) ranx.Select ranx(cont, 1).Select ActiveCell.Offset(1, 0).Select ActiveCell.EntireRow.Insert Shift:=xlDown ActiveCell.FormulaR1C1 = "=SUM(R[-1]C:R[-" & cont & "]C)" Selection.Cut Destination:=ActiveCell.Offset(0, 1) ActiveCell.Offset(0, 1).Font.Bold = True ActiveCell.Offset(0, 1).Font.Underline = False Else cell.Select ActiveCell.Offset(1, 12).Select a1 = ActiveCell.Row b1 = ActiveCell.Column ultimafila = Range("N65536").End(xlUp).Row Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Cells(ultimafila, 14).Select c1 = ActiveCell.Row d1 = ActiveCell.Column fila2 = Range(Cells(a1, b1), Cells(c1, d1)).Count ActiveCell.Offset(1, 0).Select ActiveCell.FormulaR1C1 = "=SUM(R[-1]C:R[-" & fila2 & "]C)" Selection.Cut Destination:=ActiveCell.Offset(0, 1) ActiveCell.Offset(0, 1).Font.Bold = True ActiveCell.Offset(0, 1).Font.Underline = False End If Else End If Next cell End Sub 1.6. Importe_partidas. Sub sumamedic() Dim fila As Integer '-----------------------------------------------------------For Each cell In Range("c8:c200") If Not cell = Empty Then cell.Select ActiveCell.Offset(2, 8).Select Do ActiveCell.Offset(1, 0).Select Loop Until ActiveCell.Value <= 0 contador = Range(Selection, Selection.End(xlDown)).Count Selection.EntireRow.Insert Shift:=xlDown ActiveCell.FormulaR1C1 = "=SUM(R[-1]C:R[-" & contador & "]C)" Selection.Cut Destination:=ActiveCell.Offset(0, 1) '-----------------------------------------------------------'mover valor del precio si no está en la misma linea del sumatorio conceptos ActiveCell.Offset(0, 2).Select If ActiveCell = Empty Then referencia = 0 Do referencia = referencia + 1 ActiveCell.Offset(-1, 0).Select Loop Until ActiveCell <> 0 ActiveCell.Select Selection.Cut Destination:=ActiveCell(referencia + 1, 1) '-----------------------------------------------------------'Obtener valor importe de cada partida ActiveCell(referencia + 1, 1).Offset(0, 1).Select ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]" ActiveCell.Font.Underline = True Else ActiveCell.Offset(0, 1).Select ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]" 13 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 14 ActiveCell.Font.Underline = True End If Else End If Next cell End Sub 1.7. Importe_parcial_mediciones. Sub calcular() Dim cantidad As Integer Dim largo As Single Dim alto As Single Dim otros As Single Dim ancho As Single '-----------------------------------------------------------ActiveCell.Offset(0, -2).Select cantidad = ActiveCell.Offset(0, -5).Value largo = ActiveCell.Offset(0, -4).Value ancho = ActiveCell.Offset(0, -3).Value alto = ActiveCell.Offset(0, -2).Value otros = ActiveCell.Offset(0, -1).Value '-----------------------------------------------------------'''Todos los casos que se pueden dar si hay celdas vacías '''Para que la fórmula no tome como 0 la celda vacía '''No pondremos esa celda en la fórmula MsgBox "La fórmula introducida por defecto es: " & Chr(13) & Chr(13) & "Cantidad x Largo x Ancho x Alto x Otros", vbOKOnly + vbInformation, "Cálculo mediciones" y = MsgBox("Desea introducir otra fórmula alternativa?", vbYesNo + vbQuestion, "Cálculo mediciones") If y = vbYes Then ActiveCell.Offset(0, -4).Value = "" ActiveCell.Offset(0, -3).Value = "" ActiveCell.Offset(0, -2).Value = "" Formulas.Show Else '-----------------------------------------------------------'Para 4 celdas ocupadas If Not cantidad = Empty And Not ancho = Empty And Not alto = Empty And Not otros = Empty And largo = Empty Then ActiveCell.FormulaR1C1 = "=RC[-5] * RC[-3] * RC[-2] * RC[-1]" Else End If If Not cantidad = Empty And Not largo = Empty And Not alto = Empty And Not otros = Empty And ancho = Empty Then ActiveCell.FormulaR1C1 = "=RC[-5] * RC[-4] * RC[-2] * RC[-1]" Else End If If Not cantidad = Empty And Not largo = Empty And Not ancho = Empty And Not otros = Empty And alto = Empty Then Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación ActiveCell.FormulaR1C1 = "=RC[-5] * RC[-4] * RC[-3] * RC[-1]" Else End If If Not cantidad = Empty And Not largo = Empty And Not ancho = Empty And Not alto = Empty And otros = Empty Then ActiveCell.FormulaR1C1 = "=RC[-5] * RC[-4] * RC[-3] * RC[-5]" Else End If '-----------------------------------------------------------'Para 3 celdas ocupadas If Not cantidad = Empty And Not alto = Empty And Not otros = Empty And largo = Empty And ancho = Empty Then ActiveCell.FormulaR1C1 = "=RC[-5] * RC[-2] * RC[-1]" Else End If If Not cantidad = Empty And Not largo = Empty And Not ancho = Empty And alto = Empty And otros = Empty Then ActiveCell.FormulaR1C1 = "= RC[-5] * RC[-4] * RC[-3]" Else End If If Not cantidad = Empty And Not ancho = Empty And Not otros = Empty And largo = Empty And alto = Empty Then ActiveCell.FormulaR1C1 = "=RC[-5] * RC[-3] * RC[-1]" Else End If If Not cantidad = Empty And Not ancho = Empty And Not alto = Empty And largo = Empty And otros = Empty Then ActiveCell.FormulaR1C1 = "=RC[-5] * RC[-3] * RC[-2]" Else End If If Not cantidad = Empty And Not largo = Empty And Not otros = Empty And ancho = Empty And alto = Empty Then ActiveCell.FormulaR1C1 = "=RC[-5] * RC[-4] * RC[-1]" Else End If If Not cantidad = Empty And Not largo = Empty And Not alto = Empty And ancho = Empty And otros = Empty Then ActiveCell.FormulaR1C1 = "=RC[-5] *RC[-4] * RC[-2]" Else End If '-----------------------------------------------------------'Para 2 celdas ocupadas If Not cantidad = Empty And Not otros = Empty And largo = Empty And ancho = Empty And alto = Empty Then ActiveCell.FormulaR1C1 = "=RC[-5] * RC[-1]" Else End If If Not cantidad = Empty And Not largo = Empty And otros = Empty And ancho = Empty And alto = Empty Then ActiveCell.FormulaR1C1 = "=RC[-5] * RC[-4]" 15 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 16 Else End If If Not cantidad = Empty And ancho = Empty And otros = Empty And largo = Empty And alto = Empty Then ActiveCell.FormulaR1C1 = "=RC[-5] * RC[-3]" Else End If If Not cantidad = Empty And alto = Empty And otros = Empty And largo = Empty And ancho = Empty Then ActiveCell.FormulaR1C1 = "=RC[-5] * RC[-2]" Else End If '-----------------------------------------------------------'Para 1 celda ocupada If Not cantidad = Empty And largo = Empty And ancho = Empty And alto = Empty And otros = Empty Then ActiveCell.Formula = "=RC[-5]" Else End If '-----------------------------------------------------------'si todas las celdas están llenas If Not cantidad = Empty And Not largo = Empty And Not ancho = Empty And Not alto = Empty And Not otros = Empty Then ActiveCell.FormulaR1C1 = "=RC[-5] * RC[-4] * RC[-3] * RC[-2] * RC[-1]" Else End If End If End Sub 1.8. Importe_filtrardatos. Sub sumaunitario() Dim vincular As Range Dim col As Integer Dim fila As Integer Dim col2 As Integer Dim fila2 As Integer Dim tanger As Range Dim a, b, c, d As Integer Dim contador As Integer '-----------------------------------------------------------x = MsgBox("Antes de iniciar el cálculo debe seleccionar código de partida al cual hace referencia el precio descompuesto." & "¿Está seguro de que desea continuar?", vbYesNo + vbExclamation, "Comprobación") If x = vbYes Then End If If x = vbNo Then Exit Sub End If '------------------------------------------------------------ Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación 'Insertar filas en blanco para después sumar parciales For Each cell In Range("b8:b300") If Not cell = Empty Then cell.Select Do ActiveCell.Offset(1, 0).Select If ActiveCell.Row > 300 Then Exit For Loop Until Not ActiveCell = Empty ActiveCell.Select ActiveCell.EntireRow.Insert Shift = xlDown Else End If Next cell '-----------------------------------------------------------'sumar conceptos para obtener unitario contador = 0 For Each cell In Range("B8:b200") If Not cell = Empty Then contador = contador + 1 cell.Select refer = cell.Value ActiveCell.Offset(0, 6).Select a = ActiveCell.Row b = ActiveCell.Column Do ActiveCell.Offset(1, 0).Select Loop Until ActiveCell = Empty ActiveCell.Select c = ActiveCell.Row d = ActiveCell.Column rowfila = Range(Cells(a, b), Cells(c, d)).Count ActiveCell.FormulaR1C1 = "=SUM(R[-1]C:R[-" & rowfila - 1 & "]C)" Selection.Cut Destination:=ActiveCell.Offset(0, 1) ActiveCell.Offset(0, 1).Select ActiveCell.Name = "precio" & contador col = ActiveCell.Column fila = ActiveCell.Row '-----------------------------------------------------------'Igualar precio unitario en la hoja presupuesto Set vincular = Sheets("presupuesto").Range("C8:C200").find(What:=refer, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False) Sheets("presupuesto").Activate vincular.Offset(3, 10).Select fila2 = Selection.Row col2 = Selection.Column vincular.Offset(3, 10).FormulaR1C1 = "='Filtrar datos'!R[" & fila - fila2 & "]C[" & col - col2 & "]" If ActiveCell.Offset(0, -1) = Empty Then ActiveCell.Offset(0, -1).Select 17 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 18 Do ActiveCell.Offset(1, 0).Select Loop Until ActiveCell.Value <> 0 ActiveCell.Offset(0, 1).Select vincular.Offset(3, 10).Cut Destination:=ActiveCell Else End If '-----------------------------------------------------------'Vincular precio unitario de hoja presupuesto con hoja filtrar datos ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="precio" & contador Sheets("filtrar datos").Activate Else End If Next cell End Sub 1.9. Datos_resumen. Sub pasardatos() Dim cell As Range Application.StatusBar = "Espera estoy trabajando..." Application.ScreenUpdating = False '********* 'Pasar dato código a hoja resumen Sheets("presupuesto").Select For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select Selection.copy Sheets("Resumen").Select If Range("b8").Value = Empty Then Range("b8").Select Else Range("B7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste Sheets("presupuesto").Select Else End If Next cell '-----------------------------------------------------------'Pasar dato descripción a hoja resumen For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 3).copy If ActiveCell.Offset(0, 3).Value = Empty Then Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Sheets("Resumen").Select If Range("c8").Value = Empty Then Range("c8").Select Else Range("c7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste ActiveCell.Value = "sin descripción" Else Sheets("Resumen").Select If Range("c8").Value = Empty Then Range("c8").Select Else Range("c7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste End If Sheets("presupuesto").Select Else End If Next cell '-----------------------------------------------------------'Pasar dato total capitulo a hoja resumen For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 14).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then Exit Sub Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen").Select If Range("d8").Value = Empty Then Range("d8").Select Else Range("d7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("presupuesto").Select Else End If Next cell 19 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 20 Sheets("Resumen").Select For Each cell In Range("c8:c23") If cell.Value = "no dato" Then cell.Value = "" Else End If Next cell '********* Application.ScreenUpdating = True Application.StatusBar = False End Sub 1.10. Datos_resumen_multinivel. Sub pasardatos2() Application.StatusBar = "Espera estoy trabajando..." Application.ScreenUpdating = False '********* Dim cell As Range Dim contador As Integer Dim a, b As Integer '----------------------------------------------------------'Pasar dato código a hoja resumen Dim i As Integer Dim counter As Integer Sheets("presupuesto").Select Range("b8:c500").Select Range("b8:c500").copy Sheets("hoja2").Select Range("a1").Select ActiveSheet.Paste 'eliminar filas en blanco counter = 1000 For i = 1 To counter If ActiveCell = "" And ActiveCell.Offset(0, 1) = "" Then Selection.EntireRow.Delete counter = counter - 1 Else ' Selects the next cell. ActiveCell.Offset(1, 0).Select End If Next i a = Range("B11500").End(xlUp).Row b = Range("A11500").End(xlUp).Row If a > b Then Range(Cells(1, 1), Cells(a, 2)).Select Else Range(Cells(1, 1), Cells(b, 2)).Select End If Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación '-----------------------------------------------------------'Pasar datos a hoja resumen multinivel Selection.copy Sheets("Resumen multinivel").Select If Range("b8").Value = Empty Then Range("b8").Select ActiveSheet.Paste Else y = MsgBox("El listado resumen ya existe." & vbCrLf & "Desea volver a establecer/actualizar listado?", vbQuestion + vbYesNo, "Listado resumen multinivel") If y = vbYes Then Range("b8:e98") = "" MsgBox "El listado previo ha sido eliminado." & vbCrLf & "Para establecer/actualizar el nuevo listado deberá clicar al botón LISTADO RESUMEN MULTINIVEL que aparece en la hoja.", vbOKOnly + vbInformation Else Exit Sub End If End If '----------------------------------------------------------'Pasar dato descripción a hoja resumen Sheets("presupuesto").Select For Each cell In Range("b8:c500") If Not cell = Empty Then cell.Select If cell.Font.Color = RGB(0, 0, 0) Or cell.Font.Color = RGB(255, 0, 0) Then ActiveCell.Offset(0, 3).copy If ActiveCell.Offset(0, 3).Value = Empty Then Sheets("Resumen multinivel").Select If Range("d8").Value = Empty Then Range("d8").Select Else Range("d7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste ActiveCell.Value = "sin descripción" Else Sheets("Resumen multinivel").Select If Range("d8").Value = Empty Then Range("d8").Select Else Range("d7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste End If Else 'si los datos son de partidas ActiveCell.Offset(0, 2).copy 21 22 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón If ActiveCell.Offset(0, 2).Value = Empty Then Sheets("resumen multinivel").Select If Range("d8").Value = Empty Then Range("d8").Select Else Range("d7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste ActiveCell.Value = "sin descripción" Else Sheets("Resumen multinivel").Select If Range("d8").Value = Empty Then Range("d8").Select Else Range("d7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste End If End If Sheets("presupuesto").Select Else End If Next cell '--------------------------------------------------------------'Pasar dato total capitulo subcapitulo o partida a hoja resumen Dim an, bn As Integer Dim contar As Integer Dim contar2 As Integer Dim contar3 As Integer Dim ordenar As Integer Sheets("presupuesto").Select Range("n8", Range("P65536").End(xlUp)).copy Sheets("hoja2").Select Range("f1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Range("F65536").Select Selection.End(xlUp).Select an = ActiveCell.Row bn = ActiveCell.Column Range(Cells(1, 6), Cells(an, bn)).Select contar = Range(Cells(1, 6), Cells(an, bn)).Count For i = 1 To contar If ActiveCell = "" Then ActiveCell.Delete contar = contar - 1 Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Else ActiveCell.Offset(1, 0).Select End If Next i Range("G65536").Select Selection.End(xlUp).Select an = ActiveCell.Row bn = ActiveCell.Column Range(Cells(1, 7), Cells(an, bn)).Select contar2 = Range(Cells(1, 7), Cells(an, bn)).Count For i = 1 To contar2 If ActiveCell = "" Then ActiveCell.Delete contar2 = contar2 - 1 Else ActiveCell.Offset(1, 0).Select End If Next i Range("H65536").Select Selection.End(xlUp).Select an = ActiveCell.Row bn = ActiveCell.Column Range(Cells(1, 8), Cells(an, bn)).Select contar3 = Range(Cells(1, 8), Cells(an, bn)).Count For i = 1 To contar3 If ActiveCell = "" Then ActiveCell.Delete contar3 = contar3 - 1 Else ActiveCell.Offset(1, 0).Select End If Next i '------------------------------------------------------Dim contadore As Integer Dim contador2 As Integer Dim contador3 As Integer Dim r, a1 As Integer '-----------------------------------------------------------contadore = 0 For Each cell In Range("b1:b2000") If Not cell = Empty Then contadore = contadore + 1 cell.Select r = ActiveCell.Row If contadore = 1 Then Range("f1").Select ActiveCell.copy ActiveCell.Offset(r - 1, -3).Select ActiveSheet.Paste Else 23 24 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Range("f1").Offset(contadore - 1, 0).Select a1 = ActiveCell.Row ActiveCell.copy If a > a1 Then ActiveCell.Offset(r - a1, -3).Select ActiveSheet.Paste Else ActiveCell.Offset(a1 - r, -3).Select ActiveSheet.Paste End If End If Else End If Next cell contador2 = 0 For Each cell In Range("a1:a2000") If Not cell = Empty And cell.Font.Color = RGB(255, 0, 0) Then contador2 = contador2 + 1 cell.Select r = ActiveCell.Row If contador2 = 1 Then Range("g1").Select ActiveCell.copy ActiveCell.Offset(r - 1, -4).Select ActiveSheet.Paste Else Range("G1").Offset(contador2 - 1, 0).Select a1 = ActiveCell.Row ActiveCell.copy If a > a1 Then ActiveCell.Offset(r - a1, -4).Select ActiveSheet.Paste Else ActiveCell.Offset(a1 - r, -4).Select ActiveSheet.Paste End If End If Else End If Next cell contador3 = 0 For Each cell In Range("a1:a2000") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then contador3 = contador3 + 1 cell.Select r = ActiveCell.Row If contador = 1 Then Range("H1").Select ActiveCell.copy Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación ActiveCell.Offset(r - 1, -5).Select ActiveSheet.Paste Else Range("H1").Offset(contador3 - 1, 0).Select a1 = ActiveCell.Row ActiveCell.copy If a > a1 Then ActiveCell.Offset(r - a1, -5).Select ActiveSheet.Paste Else ActiveCell.Offset(a1 - r, -5).Select ActiveSheet.Paste End If End If Else End If Next cell Range("c1", Range("c1").End(xlDown)).copy Sheets("resumen multinivel").Select Range("e8").Select ActiveSheet.Paste '-----------------------------------------------------------'Pasa el sumatorio total de capitulo a la columna f For Each cell In Range("b8:b98") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 3).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) Else End If Next cell '-----------------------------------------------------------'Resaltar la linea de capitulo For Each cell In Range("b8:b98") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select Range(ActiveCell, ActiveCell.Offset(0, 4)).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorDark1 .TintAndShade = -0.149998474074526 .PatternTintAndShade = 0 End With Else End If Next cell '-----------------------------------------------------------'Borra el contenido de todas las celdas que hay "sin descripción" For Each cell In Range("c8:c98") 25 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 26 If cell.Value = "sin descripción" Then cell.Value = "" Else End If Next cell '-----------------------------------------------------------'Borra el contenido de todas las celdas de la hoja 2 Sheets("hoja2").Select Range("a1:h2000").Value = "" '-----------------------------------------------------------'Activa la hoja de resumen multinivel Sheets("Resumen multinivel").Select '********* Application.ScreenUpdating = True Application.StatusBar = False End Sub 1.11. Datos_certificación. Sub pasar_datos_certif() Application.StatusBar = "Espera estoy trabajando..." Application.ScreenUpdating = False '********* 'Trasladar datos de presupuesto inicial Sheets("presupuesto").Select Range("b8").Select Range(Selection, Range("p3000").End(xlUp)).Select Selection.copy Sheets("certificación").Select Range("b8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '********* Application.ScreenUpdating = True Application.StatusBar = False End Sub 1.12. Datos_resumen_certificación. Sub pasardatos_res_cert() Application.StatusBar = "Espera estoy trabajando..." Application.ScreenUpdating = False '********* Dim cell As Range Sheets("Resumen certif").Select If Range("b8").Value = Empty Then Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Else y = MsgBox("El listado resumen ya existe." & vbCrLf & "Desea volver a establecer/actualizar listado?", vbQuestion + vbYesNo, "Listado resumen multinivel") If y = vbYes Then Range("b8:D25").Clear Range("F8:F25").Clear Range("H8:H25").Clear Range("J8:J25").Clear Range("L8:L25").Clear Range("N8:N25").Clear Range("P8:P25").Clear Range("R8:R25").Clear Range("T8:T25").Clear Range("V8:V25").Clear Range("X8:X25").Clear Range("Z8:Z25").Clear Range("AB8:AB25").Clear Range("AD8:AD25").Clear Range("AF8:AF25").Clear Range("AH8:AH25").Clear Range("AJ8:AJ25").Clear Range("AL8:AL25").Clear Range("AN8:AN25").Clear Range("AP8:AP25").Clear Range("AR8:AR25").Clear Range("AT8:AT25").Clear Range("AV8:AV25").Clear Range("AX8:AX25").Clear Range("AZ8:AZ25").Clear MsgBox "El listado previo ha sido eliminado." & vbCrLf & "Para establecer/actualizar el nuevo listado deberá clicar al botón LISTADO RESUMEN CERTIF. CAPITULOS que aparece en la hoja.", vbOKOnly + vbInformation Exit Sub Else Exit Sub End If End If '-----------------------------------------------------------'Pasar dato código a hoja resumen Sheets("certificación").Select For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select Selection.copy Sheets("Resumen certif").Select If Range("b8").Value = Empty Then Range("b8").Select Else Range("B7").End(xlDown).Select ActiveCell.Offset(1, 0).Select 27 28 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón End If ActiveSheet.Paste Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'Pasar dato descripción a hoja resumen For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 3).copy If ActiveCell.Offset(0, 3).Value = Empty Then Sheets("Resumen certif").Select If Range("c8").Value = Empty Then Range("c8").Select Else Range("c7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste ActiveCell.Value = "sin descripción" Else Sheets("Resumen certif").Select If Range("c8").Value = Empty Then Range("c8").Select Else Range("c7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste End If Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'Pasar dato total capitulo a hoja resumen Sheets("certificación").Select '-----------------------------------------------------------'PRESUP. INICIAL For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 14).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la hoja de certificación se encuentre vacía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("d8").Value = Empty Then Range("d8").Select Else Range("d7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 1 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 25).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 1 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("F8").Value = Empty Then Range("F8").Select Else Range("F7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 29 30 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 2 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 36).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 2 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("H8").Value = Empty Then Range("H8").Select Else Range("H7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 3 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 47).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 3 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("J8").Value = Empty Then Range("J8").Select Else Range("J7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 4 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 58).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 4 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("L8").Value = Empty Then Range("L8").Select Else Range("L7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False 31 32 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 5 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 69).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 5 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("N8").Value = Empty Then Range("N8").Select Else Range("N7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 6 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 80).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 6 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("P8").Value = Empty Then Range("P8").Select Else Range("P7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 7 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 91).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 7 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("R8").Value = Empty Then Range("R8").Select Else Range("R7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else 33 34 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 8 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 102).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 8 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("T8").Value = Empty Then Range("T8").Select Else Range("T7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 9 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 113).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 9 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación ActiveCell.copy Sheets("Resumen certif").Select If Range("V8").Value = Empty Then Range("V8").Select Else Range("V7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 10 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 124).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 10 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("X8").Value = Empty Then Range("X8").Select Else Range("X7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 11 35 36 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 135).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 11 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("Z8").Value = Empty Then Range("Z8").Select Else Range("Z7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 12 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 146).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 12 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("AB8").Value = Empty Then Range("AB8").Select Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Else Range("AB7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 13 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 157).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 13 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("AD8").Value = Empty Then Range("AD8").Select Else Range("AD7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 14 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then 37 38 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón cell.Select ActiveCell.Offset(0, 168).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 14 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("AF8").Value = Empty Then Range("AF8").Select Else Range("AF7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 15 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 179).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 15 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("AH8").Value = Empty Then Range("AH8").Select Else Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Range("AH7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 16 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 190).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 16 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("AJ8").Value = Empty Then Range("AJ8").Select Else Range("AJ7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 17 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 201).Select Do 39 40 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 17 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("AL8").Value = Empty Then Range("AL8").Select Else Range("AL7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 18 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 212).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 18 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("AN8").Value = Empty Then Range("AN8").Select Else Range("AN7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 19 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 223).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 19 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("AP8").Value = Empty Then Range("AP8").Select Else Range("AP7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 20 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 234).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then 41 42 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 20 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("AR8").Value = Empty Then Range("AR8").Select Else Range("AR7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 21 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 245).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 21 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("AT8").Value = Empty Then Range("AT8").Select Else Range("AT7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 22 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 256).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 22 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("AV8").Value = Empty Then Range("AV8").Select Else Range("AV7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 23 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 267).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then 43 44 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 23 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("AX8").Value = Empty Then Range("AX8").Select Else Range("AX7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell '-----------------------------------------------------------'CERTIFICACIÓN 24 For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(0, 278).Select Do ActiveCell.Offset(1, 0).Select 'Limitar el bucle si no encuentra celda con algún valor If ActiveCell.Row > 500 Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 24 no se haya creado todavía.", vbOKOnly + vbInformation Sheets("Resumen certif").Select Exit Sub End If Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.copy Sheets("Resumen certif").Select If Range("AZ8").Value = Empty Then Range("AZ8").Select Else Range("AZ7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación SkipBlanks:=False, Transpose:=False Sheets("certificación").Select Else End If Next cell Sheets("Resumen certif").Select For Each cell In Range("c8:c23") If cell.Value = "sin descripción" Then cell.Value = "" Else End If Next cell '********* Application.ScreenUpdating = True Application.StatusBar = False End Sub 1.13. Datos_resumenmultin_certif. For Each cell In Range("b8:b500") If Not cell = Empty Then cell.Select ActiveCell.Offset(0, 10).Select ActiveCell.Value = 1 Else End If Next cell Range("b8:c1000").Select Range("b8:c1000").copy Sheets("hoja2").Select Range("a1").Select ActiveSheet.Paste '-----------------------------------------------------------'eliminar filas en blanco Dim i As Integer Dim counter As Integer counter = 1000 For i = 1 To counter If ActiveCell = "" And ActiveCell.Offset(0, 1) = "" Then Selection.EntireRow.Delete counter = counter - 1 Else ActiveCell.Offset(1, 0).Select End If Next i a = Range("B11500").End(xlUp).Row b = Range("A11500").End(xlUp).Row If a > b Then Range(Cells(1, 1), Cells(a, 2)).Select 45 46 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Else Range(Cells(1, 1), Cells(b, 2)).Select End If '-----------------------------------------------------------'Pasar datos a hoja resumen multinivel certif Selection.copy Sheets("Resumen multinivel certif").Select If Range("b8").Value = Empty Then Range("b8").Select ActiveSheet.Paste Else y = MsgBox("El listado resumen ya existe." & vbCrLf & "Desea volver a establecer/actualizar listado?", vbQuestion + vbYesNo, "Listado resumen multinivel") If y = vbYes Then Range("b8:do98").Clear MsgBox "El listado previo ha sido eliminado." & vbCrLf & "Para establecer/actualizar el nuevo listado deberá clicar al botón LISTADO RESUMEN MULTINIVEL que aparece en la hoja.", vbOKOnly + vbInformation Exit Sub Else Exit Sub End If End If '----------------------------------------------------------'Pasar dato descripción a hoja resumen Sheets("certificación").Select For Each cell In Range("b8:c500") If Not cell = Empty Then cell.Select If cell.Font.Color = RGB(0, 0, 0) Or cell.Font.Color = RGB(255, 0, 0) Then ActiveCell.Offset(0, 3).copy If ActiveCell.Offset(0, 3).Value = Empty Then Sheets("Resumen multinivel certif").Select If Range("d8").Value = Empty Then Range("d8").Select Else Range("d7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste ActiveCell.Value = "sin descripción" Else Sheets("Resumen multinivel certif").Select If Range("d8").Value = Empty Then Range("d8").Select Else Range("d7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación End If Else 'si los datos son de partidas ActiveCell.Offset(0, 2).copy If ActiveCell.Offset(0, 2).Value = Empty Then Sheets("resumen multinivel certif").Select If Range("d8").Value = Empty Then Range("d8").Select Else Range("d7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste ActiveCell.Value = "sin descripción" Else Sheets("Resumen multinivel certif").Select If Range("d8").Value = Empty Then Range("d8").Select Else Range("d7").End(xlDown).Select ActiveCell.Offset(1, 0).Select End If ActiveSheet.Paste End If End If Sheets("certificación").Select Else End If Next cell '--------------------------------------------------------------'Pasar dato total capitulo, subcapitulo o partida a hoja resumen 'Presupuesto inicial Sheets("certificación").Select Range("L8", Range("P1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("e8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear '------------------------------------------------------------ 47 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 48 'Certificación 1 Sheets("certificación").Select If Range("q8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 1 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("W8", Range("AA1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("i8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '-----------------------------------------------------------'Certificación 2 Sheets("certificación").Select If Range("AB8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 2 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("AH8", Range("AL1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("M8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '------------------------------------------------------------ Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación 'Certificación 3 Sheets("certificación").Select If Range("AM8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 3 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("AS8", Range("AW1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("Q8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '-----------------------------------------------------------'Certificación 4 Sheets("certificación").Select If Range("AX8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 4 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("BD8", Range("BH1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("U8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '------------------------------------------------------------ 49 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 50 'Certificación 5 Sheets("certificación").Select If Range("BI8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 5 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("BO8", Range("BS1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("Y8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '-----------------------------------------------------------'Certificación 6 Sheets("certificación").Select If Range("BT8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 6 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("BZ8", Range("CD1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("AC8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '------------------------------------------------------------ Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación 'Certificación 7 Sheets("certificación").Select If Range("CE8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 7 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("CK8", Range("CO1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("AG8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '-----------------------------------------------------------'Certificación 8 Sheets("certificación").Select If Range("CP8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 8 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("CV8", Range("CZ1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("AK8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '------------------------------------------------------------ 51 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 52 'Certificación 9 Sheets("certificación").Select If Range("DA8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 9 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("DG8", Range("DK1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("AO8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '-----------------------------------------------------------'Certificación 10 Sheets("certificación").Select If Range("DL8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 10 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("DR8", Range("DV1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("AS8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '------------------------------------------------------------ Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación 'Certificación 11 Sheets("certificación").Select If Range("DW8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 11 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("EC8", Range("EG1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("AW8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '-----------------------------------------------------------'Certificación 12 Sheets("certificación").Select If Range("EH8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 12 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("EN8", Range("ER1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("BA8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '------------------------------------------------------------ 53 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 54 'Certificación 13 Sheets("certificación").Select If Range("ES8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 13 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("EY8", Range("FC1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("BE8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '-----------------------------------------------------------'Certificación 14 Sheets("certificación").Select If Range("FD8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 14 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("FJ8", Range("FN1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("BI8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '------------------------------------------------------------ Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación 'Certificación 15 Sheets("certificación").Select If Range("FO8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 15 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("FU8", Range("FY1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("BM8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '-----------------------------------------------------------'Certificación 16 Sheets("certificación").Select If Range("FZ8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 16 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("GF8", Range("GJ1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("BQ8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '------------------------------------------------------------ 55 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 56 'Certificación 17 Sheets("certificación").Select If Range("GK8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 17 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("GQ8", Range("GU1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("BU8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '-----------------------------------------------------------'Certificación 18 Sheets("certificación").Select If Range("GV8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 18 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("HB8", Range("HF1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("BY8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '------------------------------------------------------------ Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación 'Certificación 19 Sheets("certificación").Select If Range("HG8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 19 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("HM8", Range("HQ1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("CC8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '-----------------------------------------------------------'Certificación 20 Sheets("certificación").Select If Range("HR8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 20 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("HX8", Range("IB1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("CG8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '------------------------------------------------------------ 57 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 58 'Certificación 21 Sheets("certificación").Select If Range("IC8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 21 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("II8", Range("IM1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("CK8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '-----------------------------------------------------------'Certificación 22 Sheets("certificación").Select If Range("IN8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 22 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("IT8", Range("IX1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("CO8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '------------------------------------------------------------ Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación 'Certificación 23 Sheets("certificación").Select If Range("IY8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 23 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("JE8", Range("JI1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("CS8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '-----------------------------------------------------------'Certificación 24 Sheets("certificación").Select If Range("JJ8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 24 no se haya creado todavía.", vbOKOnly + vbInformation Else Range("JP8", Range("JT1000").End(xlUp)).copy Sheets("hoja2").Select Range("e1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Call pasardatos_res_multcert2 Sheets("resumen multinivel certif").Select Sheets("hoja2").Select Range("c1", Range("d1").End(xlDown)).copy Sheets("resumen multinivel certif").Select Range("CW8").Select ActiveSheet.Paste Sheets("hoja2").Range("c1:i2000").Clear End If '------------------------------------------------------------ 59 60 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 'Pasa el sumatorio total de capitulo a la columna f Sheets("Resumen multinivel certif").Select For Each cell In Range("b8:b98") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then 'Presup inicial cell.Select ActiveCell.Offset(0, 4).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 1 cell.Select ActiveCell.Offset(0, 8).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 2 cell.Select ActiveCell.Offset(0, 12).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 3 cell.Select ActiveCell.Offset(0, 16).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 4 cell.Select ActiveCell.Offset(0, 20).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 5 cell.Select ActiveCell.Offset(0, 24).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 6 cell.Select ActiveCell.Offset(0, 28).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 7 cell.Select ActiveCell.Offset(0, 32).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 8 cell.Select ActiveCell.Offset(0, 36).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 9 cell.Select ActiveCell.Offset(0, 40).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 10 cell.Select ActiveCell.Offset(0, 44).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 11 cell.Select Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación ActiveCell.Offset(0, 48).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 12 cell.Select ActiveCell.Offset(0, 52).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 13 cell.Select ActiveCell.Offset(0, 56).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 14 cell.Select ActiveCell.Offset(0, 60).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 15 cell.Select ActiveCell.Offset(0, 64).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 16 cell.Select ActiveCell.Offset(0, 68).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 17 cell.Select ActiveCell.Offset(0, 72).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 18 cell.Select ActiveCell.Offset(0, 76).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 19 cell.Select ActiveCell.Offset(0, 80).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 20 cell.Select ActiveCell.Offset(0, 84).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 21 cell.Select ActiveCell.Offset(0, 88).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 22 cell.Select ActiveCell.Offset(0, 92).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 'certif 23 cell.Select ActiveCell.Offset(0, 96).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) 61 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 62 'certif 24 cell.Select ActiveCell.Offset(0, 100).Select Selection.Cut Destination:=ActiveCell.Offset(0, 1) Else End If Next cell For Each cell In Range("c8:c98") If cell.Value = "sin descripción" Then cell.Value = "" Else End If Next cell Sheets("hoja2").Cells.Clear '********* Application.ScreenUpdating = True Application.StatusBar = False End Sub 1.14. Función_conversión_letras. Public Function Con_Deci(valor, Optional ByVal Tipo As Byte = 1) _ As String 'funcion Principal ' If Not IsNumeric(valor) Then Con_Deci = "¡ La referencia no es valor numérico !": Exit Function End If: Dim Moneda As String, Fracs As String, _ Cents As Integer If Int(Abs(valor)) = 1 Then Moneda = "" _ Else Moneda = " " If Right(Letras(Abs(Int(valor))), 6) = "illón " Or _ Right(Letras(Abs(Int(valor))), 8) = "illones " _ Then Moneda = " " & Moneda Cents = Application.Round(Abs(valor) _ - Int(Abs(valor)), 2) * 100 If Cents = 1 Then Fracs = "" _ Else Fracs = "" If Cents = 0 Then Fracs = "" _ Else Fracs = " punto " & Letras(Cents) & Fracs Con_Deci = Letras(Int(Abs(valor))) & Moneda & Fracs If valor < 0 Then Con_Deci = "menos " & Con_Deci If Tipo = 2 Then Con_Deci = UCase(Con_Deci) ' TODO EN MAYUSCULAS ' If Tipo = 3 Then Con_Deci = _ StrConv(EnLetras, vbProperCase) ' Todo Como Nombre Propio ' If Tipo = 4 Then Con_Deci = UCase(Left(Con_Deci, 1)) _ & Mid(Con_Deci, 2) 'Primera letra en mayuscula SOLAMENTE ' Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Con_Deci = "(" & Con_Deci & ")" End Function Function Moneda_Cent(valor, Optional ByVal Tipo As Byte = 1) _ As String 'funcion Principal ' If Not IsNumeric(valor) Then Moneda_Cent = "¡ La referencia no es valor numérico !": Exit Function End If: Dim Moneda As String, Fracs As String, _ Cents As Integer If Int(Abs(valor)) = 1 Then Moneda = " Euros " _ Else Moneda = " Euros " If Right(Letras(Abs(Int(valor))), 6) = "illón " Or _ Right(Letras(Abs(Int(valor))), 8) = "illones " _ Then Moneda = " de " & Moneda Cents = Application.Round(Abs(valor) _ - Int(Abs(valor)), 2) * 100 If Cents = 1 Then Fracs = " céntimos " _ Else Fracs = " céntimos " If Cents = 0 Then Fracs = "" _ Else Fracs = " con " & Letras(Cents) & Fracs Moneda_Cent = Letras(Int(Abs(valor))) & Moneda & Fracs If valor < 0 Then Moneda_Cent = "menos " & Moneda_Cent If Tipo = 2 Then Moneda_Cent = UCase(Moneda_Cent) ' TODO EN MAYUSCULAS ' If Tipo = 3 Then Moneda_Cent = _ StrConv(Moneda_Cent, vbProperCase) ' Todo Como Nombre Propio ' If Tipo = 4 Then Moneda_Cent = UCase(Left(EnLetras, 1)) _ & Mid(Moneda_Cent, 2) 'Primera letra en mayuscula SOLAMENTE ' Moneda_Cent = "(" & Moneda_Cent & ")" End Function Private Function Letras(valor) As String ' Función Auxiliar [uso exclusivo 'de la funcion'principal'] Select Case Int(valor) Case 0: Letras = "cero" Case 1: Letras = "un" Case 2: Letras = "dos" Case 3: Letras = "tres" Case 4: Letras = "cuatro" Case 5: Letras = "cinco" Case 6: Letras = "seis" Case 7: Letras = "siete" Case 8: Letras = "ocho" Case 9: Letras = "nueve" Case 10: Letras = "diez " Case 11: Letras = "once " Case 12: Letras = "doce " Case 13: Letras = "trece " Case 14: Letras = "catorce " 63 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 64 Case 15: Letras = "quince " Case Is < 20: Letras = "dieci" & Letras(valor - 10) Case 20: Letras = "veinte " Case Is < 30: Letras = "veinti" & Letras(valor - 20) Case 30: Letras = "treinta " Case 40: Letras = "cuarenta " Case 50: Letras = "cincuenta " Case 60: Letras = "sesenta " Case 70: Letras = "setenta " Case 80: Letras = "ochenta " Case 90: Letras = "noventa " Case Is < 100: Letras = Letras(Int(valor \ 10) * 10) _ & " y " & Letras(valor Mod 10) Case 100: Letras = " cien" Case Is < 200: Letras = "ciento " & Letras(valor - 100) Case 200, 300, 400, 600, 800: Letras = _ Letras(Int(valor \ 100)) & "cientos " Case 500: Letras = "quinientos" Case 700: Letras = "setecientos" Case 900: Letras = "novecientos" Case Is < 1000: Letras = Letras(Int(valor \ 100) * 100) _ & " " & Letras(valor Mod 100) Case 1000: Letras = " mil " Case Is < 2000: Letras = " mil " & Letras(valor Mod 1000) Case Is < 1000000: Letras = Letras(Int(valor \ 1000)) _ & " mil" If valor Mod 1000 Then Letras = Letras & " " _ & Letras(valor Mod 1000) Case 1000000: Letras = " un millón " Case Is < 2000000: Letras = " un millón " _ & Letras(valor Mod 1000000) Case Is < 1000000000000#: Letras = _ Letras(Int(valor / 1000000)) & " millones " If (valor - Int(valor / 1000000) * 1000000) _ Then Letras = Letras & _ Letras(valor - Int(valor / 1000000) * 1000000) Case 1, 0#: Letras = " un billón " Case Is < 2000000000000# Letras = " un billón " & Letras(valor _ - Int(valor / 1000000000000#) * 1000000000000#) Case Else: Letras = Letras(Int(valor / 1000000000000#)) _ & " billones " If (valor - Int(valor / 1000000000000#) * 1000000000000#) _ Then Letras = Letras & " " & Letras(valor _ - Int(valor / 1000000000000#) * 1000000000000#) End Select End Function 1.15. Agrupar_niveles. Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Sub agruparniveles() Dim fila As Integer Dim rg As Range Dim rgp As Range Dim rgc As Range Dim a, b, c, d As Integer '-----------------------------------------------------------'Comprobar si están agrupadas las partidas 'Agrupar partidas For Each cell In Range("c8:c200") If Not cell = Empty Then cell.Select ActiveCell.Offset(1, 0).Select a = ActiveCell.Row b = ActiveCell.Column Do ActiveCell.Offset(1, 0).Select If ActiveCell.Row > 300 Then Exit For Loop Until Not ActiveCell = Empty ActiveCell.Select c = ActiveCell.Row - 1 d = ActiveCell.Column Range(Cells(a, b), Cells(c, d)).Select fila = Range(Cells(a, b), Cells(c, d)).Count Set rgp = ActiveCell.Resize(fila - 1, 1) rgp.EntireRow.Select Selection.Rows.Group Else End If Next cell '-----------------------------------------------------------'Agrupar subcapitulos For Each cell In Range("b8:b300") If Not cell = Empty And cell.Font.Color = RGB(255, 0, 0) Then cell.Select ActiveCell.Offset(1, 0).Select fila = Range(Selection, Selection.End(xlDown)).Count Set rg = ActiveCell.Resize(fila - 2, 1) rg.EntireRow.Select Selection.Rows.Group Else End If Next cell '-----------------------------------------------------------'Agrupar capitulos For Each cell In Range("b8:b300") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select ActiveCell.Offset(1, 0).Select 65 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 66 a = ActiveCell.Row b = ActiveCell.Column Do ActiveCell.Offset(1, 0).Select If ActiveCell.Row > 300 Then Exit For Loop Until ActiveCell.Font.Color = RGB(0, 0, 0) And Not ActiveCell = Empty ActiveCell.Select c = ActiveCell.Row - 1 d = ActiveCell.Column Range(Cells(a, b), Cells(c, d)).Select fila = Range(Cells(a, b), Cells(c, d)).Count Set rgc = ActiveCell.Resize(fila, 1) rgc.EntireRow.Select Selection.Rows.Group Else End If Next cell '-----------------------------------------------------------'Agrupar detalle de las mediciones,coste estimado y resumen subcapitulo Columns("F:O").Select Selection.Columns.Group '-----------------------------------------------------------'Agrupar detalle de las mediciones y coste estimado Columns("F:N").Select Selection.Columns.Group '-----------------------------------------------------------'Agrupar detalle de las mediciones Columns("F:K").Select Selection.Columns.Group End Sub 1.16. Columnas_filas_visibles. Sub mostartodascolumnas() '-----------------------------------------------------------' Mostrar todas las columnas que se ocultaron al imprimir alguna certificación Columns("E:QN").Select Selection.EntireColumn.Hidden = False '-----------------------------------------------------------' Mostrar todas las filas que se ocultaron al imprimir alguna certificación Rows("8:2000").Select Selection.EntireRow.Hidden = False End Sub 1.17. Eliminar_presupuesto. Sub restaurar_cap() Dim i As Integer i = MsgBox("¿Está seguro de que desea eliminar el presupuesto creado?", vbYesNo + vbExclamation, "Eliminar presupuesto") Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación If i = vbYes Then Range("b8:q300").Value = "" With Range("b8:q300") .Font.Bold = False .Font.ColorIndex = xlAutomatic .Font.TintAndShade = 0 End With Worksheets("filtrar datos").Range("b8:i300").Value = "" Worksheets("hoja1").Range("a2:u25").Value = "" Else If i = vbNo Then Exit Sub End If End Sub 1.18. Formato imprimir. Sub formatoimprimir() For Each cell In Range("b8:b500") If Not cell = Empty And cell.Font.Color = RGB(0, 0, 0) Then cell.Select '-----------------------------------------------------------'Relleno color celdas capitulos Range(Selection, Selection.Offset(0, 14)).Select ActiveWindow.SmallScroll ToRight:=-10 With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorDark1 .TintAndShade = -0.249977111117893 .PatternTintAndShade = 0 End With '-----------------------------------------------------------'Nombrar los totales capitulos cell.Select Numero = cell.Value ActiveCell.Offset(0, 14).Select ActiveCell.End(xlDown).Select ActiveCell.Offset(0, -4).Select ActiveCell.FormulaR1C1 = "Total" & Space$(1) & Numero With ActiveCell.Characters(Start:=1, Length:=9).Font .Name = "Calibri" .FontStyle = "Negrita" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic 67 68 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón .TintAndShade = 0 .ThemeFont = xlThemeFontMinor End With '-----------------------------------------------------------'Linea bordes de los totales capitulos Range(Selection, Selection.Offset(0, 4)).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlMedium End With Else '-----------------------------------------------------------'Relleno color celdas subcapitulos If Not cell = Empty Then cell.Select ActiveWindow.SmallScroll Down:=-9 Range(Selection, Selection.Offset(0, 14)).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorDark1 .TintAndShade = -0.149998474074526 .PatternTintAndShade = 0 End With '-----------------------------------------------------------'Nombrar los subtotales cell.Select Numero = cell.Value ActiveCell.Offset(0, 13).Select ActiveCell.End(xlDown).Select ActiveCell.Offset(0, -3).Select ActiveCell.FormulaR1C1 = "Total" & Space$(1) & Numero With ActiveCell.Characters(Start:=1, Length:=9).Font .Name = "Calibri" .FontStyle = "Negrita" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .TintAndShade = 0 .ThemeFont = xlThemeFontMinor End With Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación '-----------------------------------------------------------'Linea bordes de los subtotales Range(Selection, Selection.Offset(0, 3)).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlMedium End With End If End If Next cell For Each cell In Range("c8:c500") If Not cell = Empty Then cell.Select ActiveCell.Offset(0, 11).Select ActiveCell.End(xlDown).Select ActiveCell.Offset(-1, -3).Select '-----------------------------------------------------------'Linea bordes de las mediciones Range(Selection, Selection.Offset(0, -5)).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With Else End If Next cell End Sub 69 70 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación 2. USERFORM DEL PROGRAMA. Se insertan las hojas de trabajo de Visual Basic que aparecen como resultado de pulsar dos veces sobre el UserForm (instrucciones). Seguidamente se adjunta el modulo que activa los userforms. 2.1. UserForm1: Instrucciones. Módulo: muestra_instrucciones Sub instrucciones_alhacerclick() Instrucciones.Show End Sub 2.2. UserForm2: Información. Módulo: muestra_identificación Sub userform4_alhacerclick() Información.Show End Sub 2.3. UserForm3: Datos de proyecto. Instrucciones Private Sub barqnombre_Change() 'limitar la longitud de carácteres btitulo.MaxLength = 60 End Sub Private Sub barqtel_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." ' solamente permite estos caracteres If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub bencartel_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." ' solamente permite estos caracteres If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If 71 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 72 End Sub Private Sub bjefetel_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." ' solamente permite estos caracteres If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub btitulo_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii = 13 Then KeyAscii = 0 SendKeys "{tab}" ElseIf KeyAscii <> 8 Then If KeyAscii < 58 And KeyAscii > 47 Then Beep KeyAscii = 0 End If End If End Sub Private Sub bpromotor_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii = 13 Then KeyAscii = 0 SendKeys "{tab}" ElseIf KeyAscii <> 8 Then If KeyAscii < 58 And KeyAscii > 47 Then Beep KeyAscii = 0 End If End If End Sub Private Sub bdobra_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii = 13 Then KeyAscii = 0 SendKeys "{tab}" ElseIf KeyAscii <> 8 Then If KeyAscii < 58 And KeyAscii > 47 Then Beep KeyAscii = 0 End If End If End Sub Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Private Sub bresponsable_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii = 13 Then KeyAscii = 0 SendKeys "{tab}" ElseIf KeyAscii <> 8 Then If KeyAscii < 58 And KeyAscii > 47 Then Beep KeyAscii = 0 End If End If End Sub Private Sub barqnombre_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii = 13 Then KeyAscii = 0 SendKeys "{tab}" ElseIf KeyAscii <> 8 Then If KeyAscii < 58 And KeyAscii > 47 Then Beep KeyAscii = 0 End If End If End Sub Private Sub bencarnombre_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii = 13 Then KeyAscii = 0 SendKeys "{tab}" ElseIf KeyAscii <> 8 Then If KeyAscii < 58 And KeyAscii > 47 Then Beep KeyAscii = 0 End If End If End Sub Private Sub bjefenombre_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii = 13 Then KeyAscii = 0 SendKeys "{tab}" ElseIf KeyAscii <> 8 Then If KeyAscii < 58 And KeyAscii > 47 Then Beep KeyAscii = 0 End If End If End Sub Private Sub binicio_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789/" ' solamente permite estos caracteres 73 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 74 If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub bfin_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789/" ' solamente permite estos caracteres If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub Calendar1_Click() binicio.Text = CDate(Calendar1) End Sub Private Sub cbaceptar_Click() Range("Título").Value = btitulo.Text Range("Promotor").Value = bpromotor.Text Range("finicio").Value = binicio.Text Range("ffin").Value = bfin.Text Range("dmeses").Value = bduracion.Text Range("dobra").Value = bdobra.Text Range("responsable").Value = bresponsable.Text Range("arqnombre").Value = barqnombre.Text Range("arqtel").Value = barqtel.Text Range("encarnombre").Value = bencarnombre.Text Range("encartel").Value = bencartel.Text Range("jefenombre").Value = bjefenombre.Text Range("jefetel").Value = bjefetel.Text If Not IsDate(binicio.Text) Or Not IsDate(bfin.Text) Then MsgBox "Error en fecha. Insertar formato dd/mm/yyyy ", vbCritical, "ERROR EN DATOS" binicio.SetFocus End If If Not IsNumeric(barqtel.Text) Or Not IsNumeric(bencartel.Text) Or Not IsNumeric(barqtel.Text) Then MsgBox "Los datos introducidos en el campo Tel. no son numéricos", vbCritical, "ERROR EN DATOS" barqtel.SetFocus End If Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Unload Me datos1.Show End Sub Private Sub calendar1_DblClick() bfin.Text = CDate(Calendar1) End Sub Private Sub cbcancelar_Click() Unload Me End Sub Private Sub MESES_Click() Const Formato As String = "#,##0" bduracion.Value = Format(DateDiff("m", binicio.Value, bfin.Value), Formato) End Sub Private Sub userform_initialize() btitulo.Text = Range("Título").Value bpromotor.Text = Range("Promotor").Value binicio.Text = Range("finicio").Value bfin.Text = Range("ffin").Value bduracion.Text = Range("dmeses").Value bdobra.Text = Range("dobra").Value bresponsable.Text = Range("responsable").Value barqnombre.Text = Range("arqnombre").Value barqtel.Text = Range("arqtel").Value bencarnombre.Text = Range("encarnombre").Value bencartel.Text = Range("encartel").Value bjefenombre.Text = Range("jefenombre").Value bjefetel.Text = Range("jefetel ").Value 'binicio.Value = Format("dd/mm/yyyy") 'bfin.Value = Format("dd/mm/yyyy") End Sub Módulo: muestra_datos Sub Datos_AlHacerClic() datos1.Show End Sub 2.4. UserForm4: Niveles presupuestarios. Instrucciones Private Sub CommandButton1_Click() If OptionButton1 Then presupuesto.Show If OptionButton2 Then presupuesto2.Show If OptionButton3 Then presupuesto3.Show End Sub 75 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 76 Private Sub CommandButton2_Click() Unload Me End Sub Private Sub OptionButton1_Click() If Not IsEmpty(Range("b8")) Then y = MsgBox("El número de capítulos ya ha sido introducido" & Chr(13) & "Desea volver a introducir capítulos?", vbYesNo + vbExclamation, "Error") If y = vbYes Then Range("b8:q300").Value = "" If y = vbNo Then Exit Sub End Sub Private Sub OptionButton2_Click() If IsEmpty(Range("b8")) Then MsgBox "Debe introducir primero el número de capítulos", vbOKOnly + vbExclamation, "Error" If Not IsEmpty(Range("b8")) Then UserForm1.Show End Sub Private Sub OptionButton3_Click() If IsEmpty(Range("b8")) Then MsgBox "Debe introducir primero el número de capítulos", vbOKOnly + vbExclamation, "Error" If Not IsEmpty(Range("b8")) Then UserForm1.Show End Sub Módulo: muestra_nivelespresup Sub mostraruserform1() UserForm1.Show End Sub 2.5. UserForm5: Capítulos. Instrucciones Private Sub CheckBox1_Click() Range("B8").Value = TextBox3.Text End Sub Sub B8() Dim col As Integer, fila As Integer If col = Range("B8").Value Then ActiveCell.Resize(1, col).Select End If End Sub Private Sub CommandButton1_Click() If Range("B8").Value = TextBox3.Text Then Call recorrido Unload Me Call tal Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Else: MsgBox "No se han validado los datos." & Chr(13) & "Valide datos introducidos.", vbCritical + vbOKOnly, "Error" TextBox3.SetFocus End If End Sub Private Sub CommandButton2_Click() Unload Me End Sub Private Sub TextBox3_Change() If TextBox3.Value > 20 Then MsgBox "El valor máximo de capítulos a introducir es 20" & Chr(13) & "Vuelva a introducir capitulos comprendidos entre valores del 1 al 20", vbCritical + vbOKOnly, "Error" If TextBox3.Value = 0 Or TextBox3.Value = "" Then MsgBox "No se ha introducido ningún valor" & Chr(13) & "Vuelva a introducir datos", vbCritical + vbOKOnly, "Error" TextBox3.SetFocus End Sub Private Sub ToggleButton1_Click() If ToggleButton1 = True Then 'recorremos todos los controles en el userform llamado presupuesto With TextBox3 .BorderStyle = 1 .MousePointer = 14 .backColor = &HFFC0C0 .ControlTipText = "A introducir el número total de capítulos del nuevo presupuesto." End With With CheckBox1 .backColor = &HFFC0C0 .MousePointer = 14 .ControlTipText = "Verifica número introducido correcto.Tiene que estar activada." End With End If If ToggleButton1 = False Then With TextBox3 .BorderStyle = 0 .MousePointer = 0 .backColor = &H80000005 .SpecialEffect = 2 .ControlTipText = "" End With With CheckBox1 .backColor = &HFFFFFF .MousePointer = 0 .ControlTipText = "" End With End If End Sub 77 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 78 Private Sub userform_initialize() presupuesto.Picture = LoadPicture() End Sub Private Sub textbox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789" If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Módulo: muestra_presupuesto1 Sub presupuesto_AlHacerClic() presupuesto.Show End Sub 2.6. UserForm6: Subcapítulos. Instrucciones Private Sub aceptar_Click() If Range("B6").Value = TextBox5.Text And Range("C6").Value = subcapitulos.Text Then Call recorrido2_caso2 y = MsgBox("¿Desea continuar insertando subcapitulos?", vbYesNo + vbQuestion, "Añadir subcapítulos") If y = vbYes Then TextBox5.SetFocus If y = vbNo Then Unload Me End If If Not Range("B6").Value = TextBox5.Text And Range("C6").Value = subcapitulos.Text Then MsgBox "No se han validado los datos." & Chr(13) & "Valide datos introducidos.", vbCritical + vbOKOnly, "Error" TextBox5.SetFocus End If End Sub Private Sub CheckBox1_Click() Range("C6").Value = subcapitulos.Text If subcapitulos.Value = "" Or subcapitulos.Value = 0 Then MsgBox "No se ha introducido ningún valor o el nº de subcapítulos no es válido." & Chr(13) & "Vuelva a introducir datos", vbCritical + vbOKOnly, "Error" TextBox5.SetFocus End Sub Private Sub CheckBox2_Click() Range("B6").Value = TextBox5.Text Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación If TextBox5.Value = "" Or TextBox5.Value = 0 Then MsgBox "No se ha introducido ningún valoro el nº de subcapítulos no es válido." & Chr(13) & "Vuelva a introducir datos", vbCritical + vbOKOnly, "Error" TextBox5.SetFocus End Sub Private Sub CommandButton2_Click() Unload Me End Sub Private Sub SpinButton1_Change() TextBox5.Text = SpinButton1.Value End Sub Private Sub subcapitulos_Change() If subcapitulos.Value > 15 Then MsgBox "El valor máximo de subcapítulos a introducir es 15" & Chr(13) & "Vuelva a introducir capitulos comprendidos entre valores del 1 al 20", vbCritical + vbOKOnly, "Error" If subcapitulos.Value = "" Or subcapitulos.Value = 0 Then MsgBox "No se ha introducido ningún valor" & Chr(13) & "Vuelva a introducir datos", vbCritical + vbOKOnly, "Error" subcapitulos.SetFocus End Sub Private Sub ToggleButton1_Click() If ToggleButton1 = True Then 'recorremos todos los controles en el userform llamado presupuesto With TextBox5 .BorderStyle = 1 .MousePointer = 14 .backColor = &HFFC0C0 .ControlTipText = "Seleccionar el nº de capítulo donde se añadirán subcapítulos." End With With subcapitulos .BorderStyle = 1 .MousePointer = 14 .backColor = &HFFC0C0 .ControlTipText = "A introducir cuántos subcapitulos se desean añadir." End With With CheckBox1 .backColor = &HFFC0C0 .MousePointer = 14 .ControlTipText = "Verifica número introducido correcto.Tiene que estar activada." End With With CheckBox2 .backColor = &HFFC0C0 .MousePointer = 14 .ControlTipText = "Verifica número introducido correcto.Tiene que estar activada." End With End If If ToggleButton1 = False Then 79 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 80 With TextBox5 .BorderStyle = 0 .MousePointer = 0 .backColor = &H80000005 .SpecialEffect = 2 .ControlTipText = "" End With With subcapitulos .BorderStyle = 0 .MousePointer = 0 .backColor = &H80000005 .SpecialEffect = 2 .ControlTipText = "" End With With CheckBox1 .backColor = &HFFFFFF .MousePointer = 0 .ControlTipText = "" End With With CheckBox2 .backColor = &HFFFFFF .MousePointer = 0 .ControlTipText = "" End With End If End Sub Private Sub subcapitulos_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789" If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Módulo: muestra_presupuesto2 Sub presupuesto_2() presupuesto2.Show End Sub 2.7. UserForm7: Partidas. Instrucciones Private Sub aceptar_Click() Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Range("b6").Value = Replace(Range("b6"), ",", ".") If Range("b6").Value = ComboBox2.Text And Range("c6").Value = partidas.Text Then Call recorrido_part y = MsgBox("¿Desea continuar insertando partidas?", vbYesNo + vbQuestion, "Añadir partidas") If y = vbYes Then partidas.SetFocus If y = vbNo Then Unload Me End If If Not Range("b6").Value = ComboBox2.Value And Range("c6").Value = partidas.Value Then MsgBox "No se han validado los datos." & Chr(13) & "Valide datos introducidos.", vbCritical + vbOKOnly, "Error" partidas.SetFocus End If End Sub Private Sub CheckBox1_Click() Range("b6").Value = ComboBox2.Value If ComboBox2.Value = "" Or ComboBox2.Value = 0 Then MsgBox "No se ha introducido ningún valoro el nº de subcapítulos no es válido." & Chr(13) & "Vuelva a introducir datos", vbCritical + vbOKOnly, "Error" ComboBox2.SetFocus End Sub Private Sub CheckBox2_Click() Range("c6").Value = partidas.Value If partidas.Value = "" Or partidas.Value = 0 Then MsgBox "No se ha introducido ningún valoro el nº de subcapítulos no es válido." & Chr(13) & "Vuelva a introducir datos", vbCritical + vbOKOnly, "Error" partidas.SetFocus End Sub Private Sub CommandButton2_Click() Unload Me End Sub Private Sub ToggleButton1_Click() If ToggleButton1 = True Then 'recorremos todos los controles en el userform llamado presupuesto With ComboBox1 .BorderStyle = 1 .MousePointer = 14 .backColor = &HFFC0C0 .ControlTipText = "Seleccionar el capítulo donde se introducirán las partidas." End With With ComboBox2 .BorderStyle = 1 .MousePointer = 14 .backColor = &HFFC0C0 .ControlTipText = "Seleccionar el subcapítulo donde se introducirán las partidas." 81 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 82 End With With partidas .BorderStyle = 1 .MousePointer = 14 .backColor = &HFFC0C0 .ControlTipText = "A introducir cuántas partidas se desean añadir." End With With CheckBox1 .backColor = &HFFC0C0 .MousePointer = 14 .ControlTipText = "Verifica número introducido correcto.Tiene que estar activada." End With With CheckBox2 .backColor = &HFFC0C0 .MousePointer = 14 .ControlTipText = "Verifica número introducido correcto.Tiene que estar activada." End With End If If ToggleButton1 = False Then With ComboBox1 .BorderStyle = 0 .MousePointer = 0 .backColor = &H80000005 .SpecialEffect = 2 .ControlTipText = "" End With With ComboBox2 .BorderStyle = 0 .MousePointer = 0 .backColor = &H80000005 .SpecialEffect = 2 .ControlTipText = "" End With With partidas .BorderStyle = 0 .MousePointer = 0 .backColor = &H80000005 .SpecialEffect = 2 .ControlTipText = "" End With With CheckBox1 .backColor = &HFFFFFF .MousePointer = 0 .ControlTipText = "" End With With CheckBox2 Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .backColor = &HFFFFFF .MousePointer = 0 .ControlTipText = "" End With End If End Sub Private Sub userform_initialize() 'Al inciar el formulario, 'seleccionamos la hoja con los datos Sheets("Hoja1").Select 'Seleccionamos la celda A2 Range("A2").Select 'Hasta que no encuentre una fila vacía 'que llene todo con datos Do While ActiveCell <> Empty ComboBox1.AddItem ActiveCell.Value 'nos desplazamos una fila hacia abajo ActiveCell.Offset(1, 0).Select Loop Sheets("presupuesto").Select End Sub Private Sub ComboBox1_Change() 'Llenamos el combobox2 al recibir el foco, 'pero antes lo limpiamos ComboBox2.Clear Sheets("Hoja1").Select columna = ComboBox1.ListIndex + 1 Cells(2, columna + 1).Select Do While Not IsEmpty(ActiveCell) ComboBox2.AddItem ActiveCell ActiveCell.Offset(1, 0).Select Loop Sheets("presupuesto").Select End Sub Private Sub partidas_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789" If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End sub 83 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 84 Módulo: Sub presupuesto_3() presupuesto3.Show End sub 2.8. UserForm8: Añadir conceptos a presupuesto. Instrucciones Private Sub aceptar_Click() Dim i As Integer Dim e As Object Dim h As Object Dim rg As Range Dim col As Integer, fila As Integer Dim mynum As Variant Dim rangenum As Range Dim numer As Range If OptionButton1 Then '-----------------------------------------------------------'Busca el numero de capitulo bajo el cual irán los que añado mynum = Range("B6").Value Set rangenum = Range("B8:B200").find(What:=mynum, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False) If rangenum Is Nothing Then Exit Sub '-----------------------------------------------------------'Selecciona el rango de celdas según el nº de capitulos a añadir fila = Range("C6").Value rangenum.Select ActiveCell.Offset(1, 0).Select Set rg = ActiveCell.Resize(fila, 1) '-----------------------------------------------------------'Recorrido númerico de capitulos For i = 1 To rg.Count rg(i).Value = i + mynum Next i '-----------------------------------------------------------'Añadir datos de capítulos para crear la lista de combobox en userform3 rg.Select rg.copy Sheets("Hoja1").Select Set x = Range("A1:A50").find(What:=mynum, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False) If x Is Nothing Then Exit Sub ActiveSheet.Paste Destination:=x.Offset(1, 0) '-----------------------------------------------------------'Rellena la columna F (cantidad) con valor 1 Sheets("presupuesto").Select rangenum.Select Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación ActiveCell.Offset(1, 4).Select ActiveCell.Resize(fila, 1).Select For Each h In Selection.Cells h.Value = 1 Val (h = FormatNumber(h, 2)) Next h '-----------------------------------------------------------'Rellena la columna L (UDS) con valor 1 rangenum.Select ActiveCell.Offset(1, 10).Select ActiveCell.Resize(fila, 1).Select For Each h In Selection.Cells h.Value = 1 Val (h = FormatNumber(h, 2)) Next h '-----------------------------------------------------------'Pone en negrita el texto de las celdas seleccionadas rg.Select rg.Font.Bold = True rg.Font.Color = RGB(0, 0, 0) '-----------------------------------------------------------'Inserta filas en blanco entre subcapítulos rg.Select Selection.End(xlDown).Select Do ActiveCell.EntireRow.Insert Shift:=xlDown ActiveCell.Offset(-1, 0).Select Loop Until rangenum = ActiveCell '-----------------------------------------------------------'Borra el valor de datos introducidos en celda b6-c6 Range("B6").Value = "" Range("C6").Value = "" End If If OptionButton2 Then '-----------------------------------------------------------'Busca el numero de subcapitulo bajo el cual irán los que añado mynum = Range("B6").Value Range("b6").Value = Replace(Range("b6"), ",", ".") Set rangenum = Range("B8:B200").find(What:=mynum, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False) If rangenum Is Nothing Then Exit Sub '-----------------------------------------------------------'Selecciona el rango de celdas según el nº de subcapítulos fila = Range("C6").Value rangenum.Select ActiveCell.Offset(1, 0).Select ActiveCell.Resize(fila - 1, 1).Select Selection.EntireRow.Insert Shift:=xlDown Set rg = ActiveCell.Resize(fila, 1) 85 86 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón '-----------------------------------------------------------'Recorrido númerico de subcapítulos For i = 1 To rg.Count rg(i).Value = i Next i '-----------------------------------------------------------'Valor numérico con formato 1.1,1.2,1.3... rangenum.Select ActiveCell.Offset(1, 0).Select ActiveCell.Resize(fila, 1).Select For Each e In Selection.Cells e.Value = (e.Value * 0.1 + mynum) If e.Value <= 9 Then e.Value = (e.Value * 0.1 + mynum) End If If e.Value > 10 Then e.Value = (e.Value * 0.01 + mynum) End If If e.Value = 10 Then e.Value = (e.Value * 0.01 + mynum) e = FormatNumber(e, 2) End If Next e '-----------------------------------------------------------'Añadir datos de subcapítulos para crear la lista de combobox en userform3 rg.Select rg.copy Sheets("Hoja1").Select Set x = Range("B2:u50").find(What:=mynum, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False) If x Is Nothing Then Exit Sub ActiveSheet.Paste Destination:=x.Offset(1, 0) '-----------------------------------------------------------'Rellena la columna F (cantidad) con valor 1 Sheets("presupuesto").Select rangenum.Select ActiveCell.Offset(1, 4).Select ActiveCell.Resize(fila, 1).Select For Each h In Selection.Cells h.Value = 1 Val (h = FormatNumber(h, 2)) Next h '-----------------------------------------------------------'Rellena la columna L (UDS) con valor 1 rangenum.Select ActiveCell.Offset(1, 10).Select ActiveCell.Resize(fila, 1).Select For Each h In Selection.Cells h.Value = 1 Val (h = FormatNumber(h, 2)) Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Next h '-----------------------------------------------------------'Pone en rojo el texto de las celdas seleccionadas rg.Select rg.Font.Color = RGB(255, 0, 0) '-----------------------------------------------------------'Inserta filas en blanco entre subcapítulos rg.Select Selection.End(xlDown).Select Do ActiveCell.EntireRow.Insert Shift:=xlDown ActiveCell.Offset(-1, 0).Select Loop Until rangenum = ActiveCell '-----------------------------------------------------------'Borra el valor de datos introducidos en celda b6-c6 Range("B6").Value = "" Range("C6").Value = "" End If If OptionButton3 Then '-----------------------------------------------------------'Busca el numero de partida bajo la cual irán las que añado Range("b6").Value = Replace(Range("b6"), ",", ".") mynum = Range("b6").Value Set rangenum = Range("c8:c200").find(What:=mynum, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False) If rangenum Is Nothing Then Exit Sub '-----------------------------------------------------------'Selecciona el rango de celdas según el nº de subcapítulos fila = Range("c6").Value rangenum.Select ActiveCell.Offset(1, 0).Select ActiveCell.Resize(fila, 1).Select Selection.EntireRow.Insert Shift:=xlDown Set rg = ActiveCell.Resize(fila, 1) '-----------------------------------------------------------'Recorrido númerico de partidas For i = 1 To rg.Count rg(i).Value = i Next i '-----------------------------------------------------------'Pone en azul el texto de las celdas seleccionadas rg.Select rg.Font.Color = RGB(0, 0, 255) '-----------------------------------------------------------'Valor numérico con formato 11.1,11.2,11.3... rangenum.Select ActiveCell.Offset(1, 0).Select ActiveCell.Resize(fila, 1).Select For Each e In Selection.Cells 87 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 88 If e.Value <= 9 Then e.Value = e.Value * 0.1 + Str(rangenum.Value) Else If e.Value > 10 Then e.Value = e.Value * 0.01 + Str(rangenum.Value) End If If e.Value = 10 Then e.Value = e.Value * 0.01 + Str(rangenum.Value) e = FormatNumber(e, 2) End If End If Next e '-----------------------------------------------------------'Borra el valor de datos introducidos en celda b6-c6 Range("b6").Value = "" Range("c6").Value = "" End If End Sub Private Sub CheckBox1_Click() Range("B6").Value = TextBox1.Text If TextBox1.Value = "" Or TextBox1.Value = 0 Then MsgBox "No se ha introducido ningún valor o el nº de subcapítulos no es válido." & Chr(13) & "Vuelva a introducir datos", vbCritical + vbOKOnly, "Error" TextBox1.SetFocus End Sub Private Sub CheckBox2_Click() Range("c6").Value = TextBox2.Text If TextBox2.Value = "" Or TextBox2.Value = 0 Then MsgBox "No se ha introducido ningún valor o el nº de subcapítulos no es válido." & Chr(13) & "Vuelva a introducir datos", vbCritical + vbOKOnly, "Error" TextBox2.SetFocus End Sub Private Sub CommandButton2_Click() Unload Me End Sub Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Private Sub textbox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789" If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Módulo: muestra_añadir Sub Añadir_AlHacerClic() 'Muestra el formulario. añadir.Show End Sub 2.9. UserForm9: Suprimir conceptos a presupuesto. Instrucciones Private Sub aceptar_Click() '-----------------------------------------------------------'Busca el numero a eliminar Range("b6").Value = Replace(Range("b6"), ",", ".") mynum = Range("b6").Value Set rangenum = Range("B8:C200").find(What:=mynum, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False) If rangenum Is Nothing Then Exit Sub '-----------------------------------------------------------'Selecciona el rango a eliminar rangenum.Select rangenum.EntireRow.Select Selection.EntireRow.Delete counter = InputBox("Insertar número de filas a eliminar") ActiveCell.Select For i = 1 To counter If ActiveCell = "" Then Selection.EntireRow.Delete counter = counter - 1 Else ActiveCell.Offset(1, 0).Select End If Next i Range("B6").Value = "" If Not Range("b6").Value = TextBox1.Text Then MsgBox "No se han validado los datos." & Chr(13) & "Valide datos introducidos.", vbCritical + vbOKOnly, "Error" TextBox1.SetFocus 89 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 90 End If End Sub Private Sub CheckBox2_Click() Range("B6").Value = TextBox1.Text If TextBox1.Value = "" Or TextBox1.Value = 0 Then MsgBox "No se ha introducido ningún valoro el nº de subcapítulos no es válido." & Chr(13) & "Vuelva a introducir datos", vbCritical + vbOKOnly, "Error" TextBox1.SetFocus End Sub Private Sub CommandButton2_Click() Unload Me End Sub Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Módulo: muestra_suprimir Sub Añadir_AlHacerClic() Suprimir.Show End Sub 2.10. UserForm10: Nuevo concepto. Instrucciones Private Sub cbcancelar_Click() Unload Me End Sub Private Sub CheckBox1_Click() Range("b6").Value = TextBox8.Value Range("b6").Value = Replace(Range("b6"), ",", ".") If TextBox8.Value = "" Or TextBox8.Value = 0 Then MsgBox "No se ha introducido ningún valor o el código no es válido." & Chr(13) & "Vuelva a introducir datos", vbCritical + vbOKOnly, "Error" TextBox8.SetFocus mynum = Range("b6").Value Set rangenum = Range("b8:c2000").find(What:=mynum, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False) If rangenum Is Nothing Then Exit Sub Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación If Not rangenum.Offset(0, 3).Value = Empty Or Not rangenum.Offset(0, 2).Value = Empty Then i = MsgBox("Los datos ya han sido introducidos." & Chr(13) & "¿Desea modificarlos?", vbQuestion + vbYesNo, "Datos") If i = vbYes Then If i = vbNo Then Unload Me Else End If rangenum.Select End Sub Private Sub ComboBox1_Enter() 'En caso de error, que continúe On Error Resume Next ComboBox1.Clear ComboBox1.AddItem "m" ComboBox1.AddItem "kg" ComboBox1.AddItem "pa" ComboBox1.AddItem "ud" ComboBox1.AddItem "m2" ComboBox1.AddItem "m3" ComboBox1.AddItem "ml" End Sub Private Sub ComboBox2_enter() 'En caso de error, que continúe On Error Resume Next ComboBox2.Clear ComboBox2.AddItem "partida alzada" ComboBox2.AddItem "partida descompuesta" End Sub Private Sub CommandButton1_Click() If OptionButton1 = True Or OptionButton2 = True Then ActiveCell.Offset(0, 3).Value = TextBox10.Value y = MsgBox("Desea continuar insertando conceptos?", vbYesNo + vbQuestion, "Añadir conceptos") If y = vbYes Then Unload Me Crear_concepto.Show If y = vbNo Then Unload Me End If End If '-----------------------------------------------------------'Poner en negrita letras If OptionButton1 = True Then ActiveCell.Offset(0, 3).Font.Bold = True Else End If If OptionButton3 = True Then 91 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 92 ActiveCell.Offset(0, 1).Value = ComboBox1.Value ActiveCell.Offset(0, 2).Value = TextBox10.Value ActiveCell.Offset(1, 2).Value = TextBox11.Value '-----------------------------------------------------------'Poner en negrita las letras ActiveCell.Offset(0, 2).Font.Bold = True ActiveCell.Offset(0, 1).Font.Bold = True If ComboBox2.Value = "partida alzada" Then partidaalz.Show If ComboBox2.Value = "partida descompuesta" Then Partidadescomp.Show End If End Sub Private Sub CommandButton2_Click() Unload Me End Sub Private Sub OptionButton1_Click() Label2.Visible = False Label3.Visible = False ComboBox1.Visible = False TextBox11.Visible = False Label16.Visible = False ComboBox2.Visible = False TextBox10.Value = ActiveCell.Offset(0, 3).Value End Sub Private Sub OptionButton2_Click() Label2.Visible = False Label3.Visible = False ComboBox1.Visible = False TextBox11.Visible = False Label16.Visible = False ComboBox2.Visible = False TextBox10.Value = ActiveCell.Offset(0, 3).Value End Sub Private Sub OptionButton3_Click() Label2.Visible = True Label3.Visible = True ComboBox1.Visible = True TextBox11.Visible = True Label16.Visible = True ComboBox2.Visible = True ComboBox1.Value = ActiveCell.Offset(0, 1).Value TextBox10.Value = ActiveCell.Offset(0, 2).Text TextBox11.Value = ActiveCell.Offset(1, 2).Text End Sub Private Sub Textbox10_Change() Dim i As Integer Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Dim CAdena, CAdena2 As String If OptionButton1 = True Or OptionButton2 = True Then TextBox10.Text = UCase(TextBox10.Text) i = Len(TextBox10.Text) TextBox10.SelStart = i Else TextBox10.Text = LCase(TextBox10.Text) i = Len(TextBox10.Text) TextBox10.SelStart = i End If End Sub Private Sub TextBox11_Enter() ActiveCell.Offset(1, 0).Select ActiveCell.EntireRow.Insert Shift:=xlUp ActiveCell.EntireRow.Insert Shift:=xlUp ActiveCell.Offset(-1, 0).Select End Sub Private Sub userform_initialize() Dim mictrl For Each mictrl In Crear_concepto.Controls If TypeName(mictrl) = "TextBox" Then mictrl.Value = "" End If Next End Sub Módulo: muestra_conceptos Sub mostrar_conceptos() conceptos.Show End Sub 2.11. UserForm11: Partida alzada. Instrucciones Private Sub CommandButton1_Click() ActiveCell.Offset(2, 9).Value = TextBox6.Value ActiveCell.Offset(2, 10).Value = TextBox7.Value ActiveCell.Offset(2, 2).Value = TextBox8.Value ActiveCell.Offset(2, 3).Value = TextBox6.Value 'Introduce formula parcial ActiveCell.Offset(2, 8).FormulaR1C1 = "=RC[-5]" End Sub Private Sub CommandButton2_Click() Unload Me End Sub 93 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 94 Private Sub textbox6_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." ' solamente permite estos caracteres If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub textbox7_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub 2.12. UserForm12: Partida con descomposición. Instrucciones Private Sub ComboBox1_Enter() On Error Resume Next ComboBox1.Clear ComboBox1.AddItem "unitario" ComboBox1.AddItem "descompuesto" End Sub Private Sub CommandButton1_Click() Dim unitario As Single Dim contador As Integer If Not ActiveCell.Offset(2, 2).Value = Empty Then ActiveCell.Offset(0, 2).Select ActiveCell.End(xlDown).Select ActiveCell.Offset(1, 0).Select ActiveCell.Value = TextBox12.Value ActiveCell.Offset(0, 1).Value = TextBox1.Value ActiveCell.Offset(0, 2).Value = TextBox2.Value ActiveCell.Offset(0, 3).Value = TextBox11.Value ActiveCell.Offset(0, 4).Value = TextBox10.Value ActiveCell.Offset(0, 5).Value = TextBox5.Value ActiveCell.Offset(0, 8).Select contador = Range(Selection, Selection.End(xlUp)).Count If ComboBox1.Value = "unitario" Or ComboBox1.Value = "descompuesto" And Not ActiveCell.Offset(-(contador - 1), 0).Value = Empty Then Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación MsgBox "El precio unitario o descompuesto ya ha sido introducido", vbOKOnly + vbExclamation Else If ComboBox1.Value = "unitario" Then unitario = InputBox("Introducir precio unitario", "Entrada de datos") ActiveCell.Value = unitario End If If ComboBox1.Value = "descompuesto" Then Preciodescomp.Show End If End If Else ActiveCell.Offset(2, 2).Value = TextBox12.Value ActiveCell.Offset(2, 3).Value = TextBox1.Value ActiveCell.Offset(2, 4).Value = TextBox2.Value ActiveCell.Offset(2, 5).Value = TextBox11.Value ActiveCell.Offset(2, 6).Value = TextBox10.Value ActiveCell.Offset(2, 7).Value = TextBox5.Value If ComboBox1.Value = "unitario" Then ActiveCell.Offset(2, 10).Select unitario = InputBox("Introducir precio unitario", "Entrada de datos") ActiveCell.Value = unitario Else End If If ComboBox1.Value = "descompuesto" Then Preciodescomp.Show Else End If End If End Sub Private Sub CommandButton2_Click() Unload Me End Sub Private Sub CommandButton3_Click() MsgBox "Desea continuar insertando detalles de mediciones?", vbYesNo + vbQuestion, "Añadir conceptos" If vbYes Then ActiveCell.Offset(1, -6).Select ActiveCell.EntireRow.Insert Shift:=xlUp ActiveCell.Offset(-1, 0).Select ActiveCell.End(xlUp).Select ActiveCell.Offset(0, -2).Select Unload Me Partidadescomp.Show If vbNo Then Unload Me End If End Sub 95 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 96 Private Sub partidadescomp_initialize() Dim mictrl For Each mictrl In Partidadescomp.Controls If TypeName(mictrl) = "TextBox" Then mictrl.Value = "" End If Next End Sub Private Sub CommandButton4_Click() Call calcular Range("B6").Value = "" End Sub Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789" If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub textbox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub textbox11_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub textbox10_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." If KeyAscii <> 8 Then Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub textbox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub 2.13. UserForm13: Precio descompuesto. Instrucciones Dim contador As Integer Private Sub preciodescomp_load() contador = 0 End Sub Private Sub cbaceptar_Click() Dim cantidad As Single Dim precio As Single contador = contador + 1 Sheets("Filtrar datos").Select Call añadirdatoslista ActiveCell.Offset(0, 2).Value = TextBox1.Text & contador ActiveCell.Offset(0, 3).Value = ComboBox1.Text ActiveCell.Offset(0, 4).Value = ComboBox2.Text ActiveCell.Offset(0, 5).Value = TextBox2.Text ActiveCell.Offset(0, 6).Value = TextBox3.Text cantidad = ActiveCell.Offset(0, 5).Value precio = ActiveCell.Offset(0, 6).Value ActiveCell.Offset(0, 7).Select ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]" Sheets("presupuesto").Select End Sub Private Sub cbcancelar_Click() Unload Me End Sub 97 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 98 Private Sub ComboBox1_Enter() 'En caso de error, que continúe On Error Resume Next ComboBox1.Clear ComboBox1.AddItem "m" ComboBox1.AddItem "kg" ComboBox1.AddItem "pa" ComboBox1.AddItem "ud" ComboBox1.AddItem "m2" ComboBox1.AddItem "m3" ComboBox1.AddItem "ml" ComboBox1.AddItem "h" End Sub Private Sub ComboBox2_enter() If OptionButton1 = True Then On Error Resume Next ComboBox2.Clear ComboBox2.AddItem "capataz" ComboBox2.AddItem "oficial 1ª" ComboBox2.AddItem "oficial 2ª" ComboBox2.AddItem "peón" ComboBox2.AddItem "ayudante" End If If OptionButton2 = True Then On Error Resume Next ComboBox2.Clear ComboBox2.AddItem "excavadora" ComboBox2.AddItem "retroexcavadora" ComboBox2.AddItem "pala excavadora" ComboBox2.AddItem "pala cargadora" ComboBox2.AddItem "minicargadora" ComboBox2.AddItem "compactadora" ComboBox2.AddItem "martillo mecánico" ComboBox2.AddItem "bulldozer" ComboBox2.AddItem "camión basculante" ComboBox2.AddItem "dumper" ComboBox2.AddItem "camión grúa" ComboBox2.AddItem "grúa" ComboBox2.AddItem "bomba de hormigón" ComboBox2.AddItem "hormigonera" End If If OptionButton3 = True Then On Error Resume Next ComboBox2.Clear ComboBox2.AddItem "agua" ComboBox2.AddItem "arena" ComboBox2.AddItem "grava" ComboBox2.AddItem "hormigón" ComboBox2.AddItem "acero" Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación ComboBox2.AddItem "acero corrugado" ComboBox2.AddItem "mortero" ComboBox2.AddItem "malla electrosoldada" End If If OptionButton4 = True Then On Error Resume Next ComboBox2.Clear End If If OptionButton5 = True Then On Error Resume Next ComboBox2.Clear End If End Sub Private Sub OptionButton1_Click() partida = Sheets("presupuesto").Range("b6").Value contador = 0 TextBox1.Text = partida & Space$(1) & "MO" End Sub Private Sub OptionButton2_Click() partida = Sheets("presupuesto").Range("b6").Value contador = 0 TextBox1.Text = partida & Space$(1) & "MAQ" End Sub Private Sub OptionButton3_Click() partida = Sheets("presupuesto").Range("b6").Value contador = 0 TextBox1.Text = partida & Space$(1) & "MAT" End Sub Private Sub OptionButton4_Click() partida = Sheets("presupuesto").Range("b6").Value contador = 0 TextBox1.Text = partida & Space$(1) & "MAUX" End Sub Private Sub OptionButton5_Click() partida = Sheets("presupuesto").Range("b6").Value contador = 0 TextBox1.Text = partida & Space$(1) & "VAR" End Sub Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub 99 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 100 End If End If End Sub Private Sub textbox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub textbox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub 2.14. UserForm14: Fórmula alternativa. Instrucciones Private Sub CommandButton1_Click() Dim base As Single Dim altura As Single 'Introduce fórmula en columna parcial base = Val(InputBox("Introducir base del triángulo:")) ActiveCell.Offset(0, -4).Value = base MsgBox "El valor ha sido introducido en la columna G(largo)" altura = Val(InputBox("Introducir altura del triángulo:")) ActiveCell.Offset(0, -2).Value = altura MsgBox "El valor ha sido introducido en la columna I(alto)" ActiveCell.FormulaR1C1 = "= (RC[-4]*RC[-2])/2)*RC[-5]" y = MsgBox("La fórmula ha sido introducida con éxito en la columna K(parcial)", OKOnly + vbInformation, "Cáculo mediciones") End Sub Private Sub CommandButton2_Click() Dim radio As Single 'Const pi As Double = 3.141592653 'Introduce fórmula en columna parcial radio = Val(InputBox("Introducir radio del círculo:")) ActiveCell.Offset(0, -1).Value = radio Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación MsgBox "El valor ha sido introducido en la columna J(otros)" ActiveCell.FormulaR1C1 = "= (RC[-1]*RC[-1]* 3.141592653)*RC[-5]" y = MsgBox("La fórmula ha sido introducida con éxito en la columna K(parcial)", OKOnly + vbInformation, "Cáculo mediciones") End Sub Private Sub CommandButton3_Click() Dim b As Single Dim Bmenor As Single 'Introduce fórmula en columna parcial b = InputBox("Introducir base mayor del trapecio:") ActiveCell.Offset(0, -4).Value = b MsgBox "El valor ha sido introducido en la columna G(largo)" Bmenor = Val(InputBox("Introducir base menor del trapecio:")) ActiveCell.Offset(0, -3).Value = Bmenor MsgBox "El valor ha sido introducido en la columna H(ancho)" altura = Val(InputBox("Introducir altura del trapecio:")) ActiveCell.Offset(0, -2).Value = altura MsgBox "El valor ha sido introducido en la columna I(alto)" ActiveCell.FormulaR1C1 = "= ((RC[-4]+RC[-3])/2)*RC[-2]*RC[-5]" y = MsgBox("La fórmula ha sido introducida con éxito en la columna K(parcial)", OKOnly + vbInformation, "Cáculo mediciones") End Sub Private Sub CommandButton6_Click() Dim radio As Single Dim altura As Single 'Const pi As Double = 3.141592653 'Introduce fórmula en columna parcial radio = Val(InputBox("Introducir radio del cilindro:")) ActiveCell.Offset(0, -1).Value = radio MsgBox "El valor ha sido introducido en la columna J(otros)" altura = Val(InputBox("Introducir altura del cilindro:")) ActiveCell.Offset(0, -2).Value = altura MsgBox "El valor ha sido introducido en la columna I(alto)" ActiveCell.FormulaR1C1 = "= (RC[-1]*RC[-1]*3.141592653)*RC[-2]*RC[-5]" y = MsgBox("La fórmula ha sido introducida con éxito en la columna K(parcial)", OKOnly + vbInformation, "Cáculo mediciones") End Sub Private Sub CommandButton7_Click() Unload Me End Sub 2.15. UserForm15: Ajustar presupuesto. Instrucciones Private Sub CommandButton1_Click() Range("f29").Value = TextBox2.Value Range("f31").Value = TextBox3.Value 101 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 102 Range("f32").Value = TextBox5.Value Range("f33").Value = TextBox7.Value Range("f35").Value = TextBox9.Value Range("f37").Value = TextBox11.Value 'Range("g8").Value = TextBox13.Value Unload Me End Sub Private Sub CommandButton2_Click() Unload Me End Sub Private Sub CommandButton3_Click() TextBox13.Value = FormatNumber((TextBox2.Value) / (TextBox1.Value), 3) TextBox11.Value = FormatNumber((TextBox12.Value) * (TextBox13.Value), 2) TextBox9.Value = FormatNumber((TextBox10.Value) * (TextBox13.Value), 2) TextBox7.Value = FormatNumber((TextBox8.Value) * (TextBox13.Value), 2) TextBox5.Value = FormatNumber((TextBox6.Value) * (TextBox13.Value), 2) TextBox3.Value = FormatNumber((TextBox4.Value) * (TextBox13.Value), 2) End Sub Private Sub userform_initialize() TextBox1.Value = FormatNumber(Range("d29").Value, 2) TextBox4.Value = FormatNumber(Range("d31").Value, 2) TextBox6.Value = FormatNumber(Range("d32").Value, 2) TextBox8.Value = FormatNumber(Range("d33").Value, 2) TextBox10.Value = FormatNumber(Range("d35").Value, 2) TextBox12.Value = FormatNumber(Range("d37").Value, 2) End Sub Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub textbox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación End Sub Private Sub textbox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub textbox6_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub textbox8_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." ' solamente permite estos caracteres If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub textbox10_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub textbox12_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789." If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then 103 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 104 Beep KeyAscii = 0 Exit Sub End If End If End Sub Módulo: muestra_ajustarpresup Sub ajustarpresup_alhacerclick() 'Muestra el formulario. Ajustar_presup.Show End Sub 2.16. UserForm16: Nueva certificación. Instrucciones Private Sub CommandButton1_Click() Dim valor As Integer valor = TextBox1.Value Range(Range("f8"), Range("p3000").End(xlUp)).Select Selection.copy Select Case valor ''Copiar en todas las columnas de certificación las fórmulas y formatos de importes '-----------------------------------------------------------Case 1 Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 2 Range("AB8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 3 Range("AM8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 4 Range("AX8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 5 Range("BI8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación '-----------------------------------------------------------Case 6 Range("BT8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 7 Range("CE8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 8 Range("CP8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 9 Range("DA8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 10 Range("DL8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 11 Range("DW8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 12 Range("EH8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 13 Range("ES8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 14 Range("FD8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 15 Range("FO8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False 105 106 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón '-----------------------------------------------------------Case 16 Range("FZ8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 17 Range("GK8").Select Selection.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False '-----------------------------------------------------------Case 18 Range("GV8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 19 Range("HG8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 20 Range("HR8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 21 Range("IC8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 22 Range("IN8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 23 Range("IY8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '-----------------------------------------------------------Case 24 Range("JJ8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End Select End Sub Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Private Sub CommandButton2_Click() Unload Me End Sub Private Sub CommandButton3_Click() Dim valor As Integer valor = TextBox1.Value Dim i As Integer i = MsgBox("¿Está seguro de que desea eliminar todos los datos de la certificación " & valor & "?", vbYesNo + vbExclamation, "Eliminar datos certificación") If i = vbYes Then valor = TextBox1.Value Select Case valor '-----------------------------------------------------------'certificación 1 Case 1 Range(Range("Q8"), Range("AA1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 2 Case 2 Range(Range("AB8"), Range("AL1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 3 Case 3 Range(Range("AM8"), Range("AW1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 4 Case 4 Range(Range("AX8"), Range("BH1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 5 Case 5 Range(Range("BI8"), Range("BS1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 6 Case 6 Range(Range("BT8"), Range("CD1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 7 Case 7 Range(Range("CE8"), Range("CO1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 8 107 108 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Case 8 Range(Range("CP8"), Range("CZ1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 9 Case 9 Range(Range("DA8"), Range("DK1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 10 Case 10 Range(Range("DL8"), Range("DV1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 11 Case 11 Range(Range("DW8"), Range("EG1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 12 Case 12 Range(Range("EH8"), Range("ER1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 13 Case 13 Range(Range("ES8"), Range("FC1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 14 Case 14 Range(Range("FD8"), Range("FN1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 15 Case 15 Range(Range("FO8"), Range("FY1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 16 Case 16 Range(Range("FZ8"), Range("GJ1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 17 Case 17 Range(Range("GK8"), Range("GU1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 18 Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Case 18 Range(Range("GV8"), Range("HF1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 19 Case 19 Range(Range("HG8"), Range("HQ1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 20 Case 20 Range(Range("HR8"), Range("IB1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 21 Case 21 Range(Range("IC8"), Range("IM1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 22 Case 22 Range(Range("IN8"), Range("IX1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 23 Case 23 Range(Range("IY8"), Range("JI1000").End(xlUp)).Select Selection.Clear '-----------------------------------------------------------'certificación 24 Case 24 Range(Range("JJ8"), Range("JT1000").End(xlUp)).Select Selection.Clear End Select Else If i = vbNo Then Exit Sub End If End Sub Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789" If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub 109 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 110 Módulo: muestra_certificaciones Sub certificación_alhacerclick() certificaciones.Show End Sub 2.17. UserForm17: Certificaciones. Instrucciones Private Sub CommandButton1_Click() Dim valor As Integer valor = TextBox1.Value Select Case valor '-----------------------------------------------------------'certificación 1 Case 1 Columns("F:P").Select Selection.EntireColumn.Hidden = True Columns("AB:KI").Select Selection.EntireColumn.Hidden = True Range(Range("AA1000").End(xlUp).Offset(1, 0), Range("AA1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("AA1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AA" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("AA3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AA" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 2 Case 2 Columns("F:AA").Select Selection.EntireColumn.Hidden = True Columns("AM:KI").Select Selection.EntireColumn.Hidden = True Range(Range("AL1000").End(xlUp).Offset(1, 0), Range("AL1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("AL1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AL" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("AL3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AL" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 3 Case 3 Columns("F:AL").Select Selection.EntireColumn.Hidden = True Columns("AX:KI").Select Selection.EntireColumn.Hidden = True 111 112 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Range(Range("AW1000").End(xlUp).Offset(1, 0), Range("AW1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("AW1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AW" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("AW3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AW" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 4 Case 4 Columns("F:AW").Select Selection.EntireColumn.Hidden = True Columns("BI:KI").Select Selection.EntireColumn.Hidden = True Range(Range("BH1000").End(xlUp).Offset(1, 0), Range("BH1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("BH1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$BH" Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("BH3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$BH" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 5 Case 5 Columns("F:BH").Select Selection.EntireColumn.Hidden = True Columns("BT:KI").Select Selection.EntireColumn.Hidden = True Range(Range("BS1000").End(xlUp).Offset(1, 0), Range("BS1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("BS1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$BS" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("BS3000").End(xlUp)).Address 113 114 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$BS" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 6 Case 6 Columns("F:BS").Select Selection.EntireColumn.Hidden = True Columns("CE:KI").Select Selection.EntireColumn.Hidden = True Range(Range("CD1000").End(xlUp).Offset(1, 0), Range("CD1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("CD1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$CD" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("CD3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$CD" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 7 Case 7 Columns("F:CD").Select Selection.EntireColumn.Hidden = True Columns("CP:KI").Select Selection.EntireColumn.Hidden = True Range(Range("CO1000").End(xlUp).Offset(1, 0), Range("CO1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("CO1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$CO" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("CO3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$CO" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 8 Case 8 Columns("F:CO").Select Selection.EntireColumn.Hidden = True Columns("DA:KI").Select Selection.EntireColumn.Hidden = True 115 116 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Range(Range("CZ1000").End(xlUp).Offset(1, 0), Range("CZ1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("CZ1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$CZ" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("CZ3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$CZ" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 9 Case 9 Columns("F:CZ").Select Selection.EntireColumn.Hidden = True Columns("DL:KI").Select Selection.EntireColumn.Hidden = True Range(Range("DK1000").End(xlUp).Offset(1, 0), Range("DK1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("DK1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$DK" Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("DK3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$DK" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 10 Case 10 Columns("F:DK").Select Selection.EntireColumn.Hidden = True Columns("DW:KI").Select Selection.EntireColumn.Hidden = True Range(Range("DV1000").End(xlUp).Offset(1, 0), Range("DV1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("DV1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$DV" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("DV3000").End(xlUp)).Address 117 118 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$DV" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 11 Case 11 Columns("F:DV").Select Selection.EntireColumn.Hidden = True Columns("EH:KI").Select Selection.EntireColumn.Hidden = True Range(Range("EG1000").End(xlUp).Offset(1, 0), Range("EG1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("EG1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$EG" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("EG3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$EG" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 12 Case 12 Columns("F:EG").Select Selection.EntireColumn.Hidden = True Columns("ES:KI").Select Selection.EntireColumn.Hidden = True Range(Range("ER1000").End(xlUp).Offset(1, 0), Range("ER1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("ER1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$ER" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("ER3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$ER" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 13 Case 13 Columns("F:ER").Select Selection.EntireColumn.Hidden = True Columns("FD:KI").Select Selection.EntireColumn.Hidden = True 119 120 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Range(Range("FC1000").End(xlUp).Offset(1, 0), Range("FC1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("FC1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$FC" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("FC3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$FC" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 14 Case 14 Columns("F:FC").Select Selection.EntireColumn.Hidden = True Columns("FO:KI").Select Selection.EntireColumn.Hidden = True Range(Range("FN1000").End(xlUp).Offset(1, 0), Range("FN1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("FN1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .PrintTitleColumns = "$A:$FN" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("FN3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$FN" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 15 Case 15 Columns("F:FN").Select Selection.EntireColumn.Hidden = True Columns("FZ:KI").Select Selection.EntireColumn.Hidden = True Range(Range("FY1000").End(xlUp).Offset(1, 0), Range("FY1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("FY1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$FY" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else 121 122 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("FY3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$FY" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 16 Case 16 Columns("F:FY").Select Selection.EntireColumn.Hidden = True Columns("GK:KI").Select Selection.EntireColumn.Hidden = True Range(Range("GJ1000").End(xlUp).Offset(1, 0), Range("GJ1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("GJ1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$GJ" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("GJ3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$GJ" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 17 Case 17 Columns("F:GJ").Select Selection.EntireColumn.Hidden = True Columns("GV:KI").Select Selection.EntireColumn.Hidden = True Range(Range("GU1000").End(xlUp).Offset(1, 0), Range("GU1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("GU1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$GU" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("GU3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$GU" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 18 Case 18 Columns("F:GU").Select Selection.EntireColumn.Hidden = True 123 124 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Columns("HG:KI").Select Selection.EntireColumn.Hidden = True Range(Range("HF1000").End(xlUp).Offset(1, 0), Range("HF1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("HF1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$HF" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("HF3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$HF" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 19 Case 19 Columns("F:HF").Select Selection.EntireColumn.Hidden = True Columns("HR:KI").Select Selection.EntireColumn.Hidden = True Range(Range("HQ1000").End(xlUp).Offset(1, 0), Range("HQ1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("HQ1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$HQ" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("HQ3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$HQ" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 20 Case 20 Columns("F:HQ").Select Selection.EntireColumn.Hidden = True Columns("IC:KI").Select Selection.EntireColumn.Hidden = True Range(Range("IB1000").End(xlUp).Offset(1, 0), Range("IB1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("IB1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$IB" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With 125 126 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("IB3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$IB" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 21 Case 21 Columns("F:IB").Select Selection.EntireColumn.Hidden = True Columns("IN:KI").Select Selection.EntireColumn.Hidden = True Range(Range("IM1000").End(xlUp).Offset(1, 0), Range("IM1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("IM1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$IM" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("IM3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$IM" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 22 Case 22 Columns("F:IM").Select Selection.EntireColumn.Hidden = True Columns("IY:KI").Select Selection.EntireColumn.Hidden = True Range(Range("IX1000").End(xlUp).Offset(1, 0), Range("IX1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("IX1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$IX" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("IX3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$IX" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 23 Case 23 Columns("F:IX").Select 127 128 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Selection.EntireColumn.Hidden = True Columns("JJ:KI").Select Selection.EntireColumn.Hidden = True Range(Range("JI1000").End(xlUp).Offset(1, 0), Range("JI1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("JI1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$JI" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("JI3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$JI" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If '-----------------------------------------------------------'certificación 24 Case 24 Columns("F:JI").Select Selection.EntireColumn.Hidden = True Columns("JU:KI").Select Selection.EntireColumn.Hidden = True Range(Range("JT1000").End(xlUp).Offset(1, 0), Range("JT1000")).Select Selection.EntireRow.Hidden = True If Range("c1005").Value = "" Then ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("JT1000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$JT" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With Else ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("JT3000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = 34 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$JT" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If End Select Unload Me End Sub Private Sub CommandButton2_Click() Unload Me End Sub Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789" If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub TextBox1_Change() If TextBox1.Value > 24 Then MsgBox "El valor máximo de certificación a introducir es 24" & Chr(13) & "Vuelva a introducir certificación comprendida entre valores del 1 al 24", vbCritical + vbOKOnly, "Error" 129 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 130 If TextBox1.Value = 0 Or TextBox1.Value = "" Then MsgBox "No se ha introducido ningún valor" & Chr(13) & "Vuelva a introducir datos", vbCritical + vbOKOnly, "Error" TextBox1.SetFocus End Sub Private Sub ToggleButton1_Click() If ToggleButton1 = True Then With TextBox1 .BorderStyle = 1 .MousePointer = 14 .backColor = &HFFC0C0 .ControlTipText = "A introducir el número de certificación que se desea imprimir." End With End If If ToggleButton1 = False Then With TextBox1 .BorderStyle = 0 .MousePointer = 0 .backColor = &H80000005 .SpecialEffect = 2 .ControlTipText = "" End With End If End Sub Módulo: muestra_certificaciones Sub certificación_alhacerclick() certificaciones.Show End Sub 2.18. UserForm18: Certificaciones resumen. Instrucciones Private Sub CommandButton1_Click() y = MsgBox("Comprobar que el listado resumen de certificación por capítulos esté actualizado", vbExclamation + vbYesNo, "Información") If y = vbYes Then Sheets("resumen certif").Select Exit Sub End If If y = vbNo Then Dim valor As Integer valor = TextBox1.Value Select Case valor '-----------------------------------------------------------'certificación 1 Case 1 Columns("D:E").Select Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Selection.EntireColumn.Hidden = True Columns("H:BA").Select Selection.EntireColumn.Hidden = True Range(Range("F26").End(xlUp).Offset(1, 0), Range("F26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(F37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "G55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$G" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 2 Case 2 Columns("D:G").Select Selection.EntireColumn.Hidden = True Columns("J:BA").Select Selection.EntireColumn.Hidden = True Range(Range("H26").End(xlUp).Offset(1, 0), Range("H26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(H37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "I55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$I" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 3 Case 3 Columns("D:I").Select Selection.EntireColumn.Hidden = True Columns("L:BA").Select Selection.EntireColumn.Hidden = True 131 132 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Range(Range("J26").End(xlUp).Offset(1, 0), Range("J26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(J37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "K55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$K" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 4 Case 4 Columns("D:K").Select Selection.EntireColumn.Hidden = True Columns("N:BA").Select Selection.EntireColumn.Hidden = True Range(Range("L26").End(xlUp).Offset(1, 0), Range("L26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(L37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "M55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$M" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 5 Case 5 Columns("D:M").Select Selection.EntireColumn.Hidden = True Columns("P:BA").Select Selection.EntireColumn.Hidden = True Range(Range("N26").End(xlUp).Offset(1, 0), Range("N26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(N37))" Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "O55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$O" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 6 Case 6 Columns("D:O").Select Selection.EntireColumn.Hidden = True Columns("R:BA").Select Selection.EntireColumn.Hidden = True Range(Range("P26").End(xlUp).Offset(1, 0), Range("P26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(P37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "Q55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$Q" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 7 Case 7 Columns("D:Q").Select Selection.EntireColumn.Hidden = True Columns("T:BA").Select Selection.EntireColumn.Hidden = True Range(Range("R26").End(xlUp).Offset(1, 0), Range("R26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(R37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "S55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait 133 134 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$S" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 8 Case 8 Columns("D:S").Select Selection.EntireColumn.Hidden = True Columns("V:BA").Select Selection.EntireColumn.Hidden = True Range(Range("T26").End(xlUp).Offset(1, 0), Range("T26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(T37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "U55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$U" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 9 Case 9 Columns("D:U").Select Selection.EntireColumn.Hidden = True Columns("X:BA").Select Selection.EntireColumn.Hidden = True Range(Range("V26").End(xlUp).Offset(1, 0), Range("V26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(V37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "W55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$W" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 10 Case 10 Columns("D:W").Select Selection.EntireColumn.Hidden = True Columns("Z:BA").Select Selection.EntireColumn.Hidden = True Range(Range("X26").End(xlUp).Offset(1, 0), Range("X26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(X37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "Y55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$Y" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 11 Case 11 Columns("D:Y").Select Selection.EntireColumn.Hidden = True Columns("AB:BA").Select Selection.EntireColumn.Hidden = True Range(Range("Z26").End(xlUp).Offset(1, 0), Range("Z26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(Z37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AA55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AA" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True 135 136 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón End With '-----------------------------------------------------------'certificación 12 Case 12 Columns("D:AA").Select Selection.EntireColumn.Hidden = True Columns("AD:BA").Select Selection.EntireColumn.Hidden = True Range(Range("AB26").End(xlUp).Offset(1, 0), Range("AB26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(AB37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AC55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AC" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 13 Case 13 Columns("D:AC").Select Selection.EntireColumn.Hidden = True Columns("AF:BA").Select Selection.EntireColumn.Hidden = True Range(Range("AD26").End(xlUp).Offset(1, 0), Range("AD26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(AD37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AE55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AE" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 14 Case 14 Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Columns("D:AE").Select Selection.EntireColumn.Hidden = True Columns("AH:BA").Select Selection.EntireColumn.Hidden = True Range(Range("AF26").End(xlUp).Offset(1, 0), Range("AF26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(AF37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AG55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AG" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 15 Case 15 Columns("D:AG").Select Selection.EntireColumn.Hidden = True Columns("AJ:BA").Select Selection.EntireColumn.Hidden = True Range(Range("AH26").End(xlUp).Offset(1, 0), Range("AH26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(AH37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AI55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AI" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 16 Case 16 Columns("D:AI").Select Selection.EntireColumn.Hidden = True Columns("AL:BA").Select Selection.EntireColumn.Hidden = True 137 138 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Range(Range("AJ26").End(xlUp).Offset(1, 0), Range("AJ26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(AJ37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AK55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AK" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 17 Case 17 Columns("D:AK").Select Selection.EntireColumn.Hidden = True Columns("AN:BA").Select Selection.EntireColumn.Hidden = True Range(Range("AL26").End(xlUp).Offset(1, 0), Range("AL26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(AL37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AM55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AM" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 18 Case 18 Columns("D:AM").Select Selection.EntireColumn.Hidden = True Columns("AP:BA").Select Selection.EntireColumn.Hidden = True Range(Range("AN26").End(xlUp).Offset(1, 0), Range("AN26")).Select Selection.EntireRow.Hidden = True Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Range("b43").Formula = "=upper(Moneda_Cent(AN37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AO55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AO" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 19 Case 19 Columns("D:AO").Select Selection.EntireColumn.Hidden = True Columns("AR:BA").Select Selection.EntireColumn.Hidden = True Range(Range("AP26").End(xlUp).Offset(1, 0), Range("AP26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(AP37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AQ55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AQ" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 20 Case 20 Columns("D:AQ").Select Selection.EntireColumn.Hidden = True Columns("AT:BA").Select Selection.EntireColumn.Hidden = True Range(Range("AR26").End(xlUp).Offset(1, 0), Range("AR26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(AR37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AT55").Address With ActiveSheet.PageSetup .Zoom = 65 139 140 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AT" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 21 Case 21 Columns("D:AS").Select Selection.EntireColumn.Hidden = True Columns("AV:BA").Select Selection.EntireColumn.Hidden = True Range(Range("AT26").End(xlUp).Offset(1, 0), Range("AT26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(AT37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AU55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AU" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 22 Case 22 Columns("D:AU").Select Selection.EntireColumn.Hidden = True Columns("AX:BA").Select Selection.EntireColumn.Hidden = True Range(Range("AV26").End(xlUp).Offset(1, 0), Range("AV26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(AV37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AW55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AW" .PaperSize = xlPaperA4 Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 23 Case 23 Columns("D:AW").Select Selection.EntireColumn.Hidden = True Columns("AZ:BA").Select Selection.EntireColumn.Hidden = True Range(Range("AX26").End(xlUp).Offset(1, 0), Range("AX26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(AX37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AY55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AY" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 24 Case 24 Columns("D:AY").Select Selection.EntireColumn.Hidden = True Range(Range("AZ26").End(xlUp).Offset(1, 0), Range("AZ26")).Select Selection.EntireRow.Hidden = True Range("b43").Formula = "=upper(Moneda_Cent(AZ37))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "BA55").Address With ActiveSheet.PageSetup .Zoom = 65 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$BA" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With 141 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 142 End Select End If Unload Me End Sub Private Sub CommandButton2_Click() Unload Me End Sub Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789" ' solamente permite estos caracteres If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub TextBox1_Change() If TextBox1.Value > 24 Then MsgBox "El valor máximo de certificación a introducir es 24" & Chr(13) & "Vuelva a introducir certificación comprendida entre valores del 1 al 24", vbCritical + vbOKOnly, "Error" If TextBox1.Value = 0 Or TextBox1.Value = "" Then MsgBox "No se ha introducido ningún valor" & Chr(13) & "Vuelva a introducir datos", vbCritical + vbOKOnly, "Error" TextBox1.SetFocus End Sub Private Sub ToggleButton1_Click() If ToggleButton1 = True Then 'Si el botón está activado se marcan los controles With TextBox1 .BorderStyle = 1 .MousePointer = 14 .backColor = &HFFC0C0 .ControlTipText = "A introducir el número de certificación de la cual se desea imprimir el resumen por capítulos." End With End If 'Si el botón se desactiva volvemos al estado inicial If ToggleButton1 = False Then With TextBox1 .BorderStyle = 0 .MousePointer = 0 .backColor = &H80000005 .SpecialEffect = 2 Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .ControlTipText = "" End With End If End Sub 2.19. UserForm19: Certificaciones multinivel. Instrucciones Private Sub CommandButton1_Click() Dim valor As Integer valor = TextBox1.Value Select Case valor '-----------------------------------------------------------'certificación 1 Case 1 Columns("E:H").Select Selection.EntireColumn.Hidden = True Columns("M:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("J99").End(xlUp).Offset(1, 0), Range("J96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(k108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "L122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$L" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 2 Case 2 Columns("E:L").Select Selection.EntireColumn.Hidden = True Columns("Q:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("N99").End(xlUp).Offset(1, 0), Range("N96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(O108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "P122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" 143 144 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón .PrintTitleColumns = "$A:$P" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 3 Case 3 Columns("E:P").Select Selection.EntireColumn.Hidden = True Columns("U:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("R99").End(xlUp).Offset(1, 0), Range("R96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(S108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "T122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$T" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 4 Case 4 Columns("E:T").Select Selection.EntireColumn.Hidden = True Columns("Y:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("V99").End(xlUp).Offset(1, 0), Range("V96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(W108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "X122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$X" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 5 Case 5 Columns("E:X").Select Selection.EntireColumn.Hidden = True Columns("AC:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("Z99").End(xlUp).Offset(1, 0), Range("Z96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(AA108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AB122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AB" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 6 Case 6 Columns("E:AB").Select Selection.EntireColumn.Hidden = True Columns("AG:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("AD99").End(xlUp).Offset(1, 0), Range("AD96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(AE108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AF122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AF" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With 145 146 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón '-----------------------------------------------------------'certificación 7 Case 7 Columns("E:AF").Select Selection.EntireColumn.Hidden = True Columns("AK:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("AH99").End(xlUp).Offset(1, 0), Range("AH96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(AI108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AJ122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AJ" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 8 Case 8 Columns("E:AJ").Select Selection.EntireColumn.Hidden = True Columns("AO:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("AL99").End(xlUp).Offset(1, 0), Range("AL96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(AM108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AN122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AN" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 9 Case 9 Columns("E:AN").Select Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Selection.EntireColumn.Hidden = True Columns("AS:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("AP99").End(xlUp).Offset(1, 0), Range("AP96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(AQ108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AR122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AR" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 10 Case 10 Columns("E:AR").Select Selection.EntireColumn.Hidden = True Columns("AW:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("AT99").End(xlUp).Offset(1, 0), Range("AT96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(AU108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AV122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AV" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 11 Case 11 Columns("E:AV").Select Selection.EntireColumn.Hidden = True Columns("BA:CZ").Select Selection.EntireColumn.Hidden = True 147 148 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Range(Range("AX99").End(xlUp).Offset(1, 0), Range("AX96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(AY108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "AZ122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$AZ" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------‘certificación 12 Case 12 Columns("E:AZ").Select Selection.EntireColumn.Hidden = True Columns("BE:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("BB99").End(xlUp).Offset(1, 0), Range("BB96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(BC108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "BD122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$BD" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 13 Case 13 Columns("E:BD").Select Selection.EntireColumn.Hidden = True Columns("BI:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("BF99").End(xlUp).Offset(1, 0), Range("BF96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(BG108))" Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "BH122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$BH" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 14 Case 14 Columns("E:BH").Select Selection.EntireColumn.Hidden = True Columns("BM:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("BJ99").End(xlUp).Offset(1, 0), Range("BJ96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(BK108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "BL122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$BL" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 15 Case 15 Columns("E:BL").Select Selection.EntireColumn.Hidden = True Columns("BQ:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("BN99").End(xlUp).Offset(1, 0), Range("BN96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(BO108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "BP122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait 149 150 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$BP" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 16 Case 16 Columns("E:BP").Select Selection.EntireColumn.Hidden = True Columns("BU:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("BR99").End(xlUp).Offset(1, 0), Range("BR96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(BS108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "BT122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$BT" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 17 Case 17 Columns("E:BT").Select Selection.EntireColumn.Hidden = True Columns("BY:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("BV99").End(xlUp).Offset(1, 0), Range("BV96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(BW108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "BX122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$BX" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 18 Case 18 Columns("E:BX").Select Selection.EntireColumn.Hidden = True Columns("CC:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("BZ99").End(xlUp).Offset(1, 0), Range("BZ96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(CA108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "CB122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$CB" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 19 Case 19 Columns("E:CB").Select Selection.EntireColumn.Hidden = True Columns("CG:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("CD99").End(xlUp).Offset(1, 0), Range("CD96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(CE108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "CF122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$CF" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True 151 152 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón End With '-----------------------------------------------------------'certificación 20 Case 20 Columns("E:CF").Select Selection.EntireColumn.Hidden = True Columns("CK:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("CH99").End(xlUp).Offset(1, 0), Range("CH96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(CI108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "CJ122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$CJ" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 21 Case 21 Columns("E:CJ").Select Selection.EntireColumn.Hidden = True Columns("CO:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("CL99").End(xlUp).Offset(1, 0), Range("CL96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(CM108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "CN122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$CN" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 22 Case 22 Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Columns("E:CN").Select Selection.EntireColumn.Hidden = True Columns("CS:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("CP99").End(xlUp).Offset(1, 0), Range("CP96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(CQ108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "CR122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$CR" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 23 Case 23 Columns("E:CR").Select Selection.EntireColumn.Hidden = True Columns("CW:CZ").Select Selection.EntireColumn.Hidden = True Range(Range("CT99").End(xlUp).Offset(1, 0), Range("CT96")).Select Selection.EntireRow.Hidden = True Range("b114").Formula = "=upper(Moneda_Cent(CU108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "CV122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$CV" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With '-----------------------------------------------------------'certificación 24 Case 24 Columns("E:CV").Select Selection.EntireColumn.Hidden = True Range(Range("CX99").End(xlUp).Offset(1, 0), Range("CX96")).Select Selection.EntireRow.Hidden = True 153 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 154 Range("b114").Formula = "=upper(Moneda_Cent(CY108))" ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "CZ122").Address With ActiveSheet.PageSetup .Zoom = 60 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$CZ" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End Select Unload Me End Sub Private Sub CommandButton2_Click() Unload Me End Sub Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789" ' solamente permite estos caracteres If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub TextBox1_Change() If TextBox1.Value > 24 Then MsgBox "El valor máximo de certificación a introducir es 24" & Chr(13) & "Vuelva a introducir certificación comprendida entre valores del 1 al 24", vbCritical + vbOKOnly, "Error" If TextBox1.Value = 0 Or TextBox1.Value = "" Then MsgBox "No se ha introducido ningún valor" & Chr(13) & "Vuelva a introducir datos", vbCritical + vbOKOnly, "Error" TextBox1.SetFocus End Sub Private Sub ToggleButton1_Click() If ToggleButton1 = True Then 'Si el botón está activado se marcan los controles With TextBox1 .BorderStyle = 1 .MousePointer = 14 .backColor = &HFFC0C0 Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .ControlTipText = "A introducir el número de certificación de la cual se desea imprimir el listado resumen multinivel." End With End If 'Si el botón se desactiva volvemos al estado inicial If ToggleButton1 = False Then With TextBox1 .BorderStyle = 0 .MousePointer = 0 .backColor = &H80000005 .SpecialEffect = 2 .ControlTipText = "" End With End If End Sub 2.20. UserForm20: Carátula certificación. Instrucciones Private Sub CommandButton1_Click() y = MsgBox("Comprobar que el listado resumen multinivel de certificación esté actualizado", vbExclamation + vbYesNo, "Información") If y = vbYes Then Sheets("carátula certif").Select Exit Sub End If If y = vbNo Then Dim valor As Integer valor = TextBox1.Value Select Case valor '-----------------------------------------------------------Case 1 'certificación 1 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!K108" Range("e35").Value = 0 Range("e38").Formula = "='Resumen multinivel certif'!K100" '-----------------------------------------------------------Case 2 'certificación 2 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!O108" Range("e35").Value = "='Resumen multinivel certif'!K108" Range("e38").Formula = "='Resumen multinivel certif'!O100" '-----------------------------------------------------------Case 3 'certificación 3 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!S108" Range("e35").Value = "='Resumen multinivel certif'!O108" 155 156 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Range("e38").Formula = "='Resumen multinivel certif'!S100" '-----------------------------------------------------------Case 4 'certificación 4 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!W108" Range("e35").Value = "='Resumen multinivel certif'!S108" Range("e38").Formula = "='Resumen multinivel certif'!W100" '-----------------------------------------------------------Case 5 'certificación 5 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!AA108" Range("e35").Value = "='Resumen multinivel certif'!W108" Range("e38").Formula = "='Resumen multinivel certif'!AA100" '-----------------------------------------------------------Case 6 'certificación 6 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!AE108" Range("e35").Value = "='Resumen multinivel certif'!AA108" Range("e38").Formula = "='Resumen multinivel certif'!AE100" '-----------------------------------------------------------Case 7 'certificación 7 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!AI108" Range("e35").Value = "='Resumen multinivel certif'!AE108" Range("e38").Formula = "='Resumen multinivel certif'!AI100" '-----------------------------------------------------------Case 8 'certificación 8 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!AM108" Range("e35").Value = "='Resumen multinivel certif'!AI108" Range("e38").Formula = "='Resumen multinivel certif'!AM100" '-----------------------------------------------------------Case 9 'certificación 9 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!AQ108" Range("e35").Value = "='Resumen multinivel certif'!AM108" Range("e38").Formula = "='Resumen multinivel certif'!AQ100" '-----------------------------------------------------------Case 10 'certificación 10 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!AU108" Range("e35").Value = "='Resumen multinivel certif'!AQ108" Range("e38").Formula = "='Resumen multinivel certif'!AU100" Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación '-----------------------------------------------------------Case 11 'certificación 11 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!AY108" Range("e35").Value = "='Resumen multinivel certif'!AU108" Range("e38").Formula = "='Resumen multinivel certif'!AY100" '-----------------------------------------------------------Case 12 'certificación 12 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!BC108" Range("e35").Value = "='Resumen multinivel certif'!AY108" Range("e38").Formula = "='Resumen multinivel certif'!BC100" '-----------------------------------------------------------Case 13 'certificación 13 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!BG108" Range("e35").Value = "='Resumen multinivel certif'!BC108" Range("e38").Formula = "='Resumen multinivel certif'!BG100" '-----------------------------------------------------------Case 14 'certificación 14 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!BK108" Range("e35").Value = "='Resumen multinivel certif'!BG108" Range("e38").Formula = "='Resumen multinivel certif'!BK100" '-----------------------------------------------------------Case 15 'certificación 15 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!BO108" Range("e35").Value = "='Resumen multinivel certif'!BK108" Range("e38").Formula = "='Resumen multinivel certif'!BO100" '-----------------------------------------------------------Case 16 'certificación 16 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!BS108" Range("e35").Value = "='Resumen multinivel certif'!BO108" Range("e38").Formula = "='Resumen multinivel certif'!BS100" '-----------------------------------------------------------Case 17 'certificación 17 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!BW108" Range("e35").Value = "='Resumen multinivel certif'!BS108" Range("e38").Formula = "='Resumen multinivel certif'!BW100" 157 158 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón '-----------------------------------------------------------Case 18 'certificación 18 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!CA108" Range("e35").Value = "='Resumen multinivel certif'!BW108" Range("e38").Formula = "='Resumen multinivel certif'!CA100" '-----------------------------------------------------------Case 19 'certificación 19 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!CE108" Range("e35").Value = "='Resumen multinivel certif'!CA108" Range("e38").Formula = "='Resumen multinivel certif'!CE100" '-----------------------------------------------------------Case 20 'certificación 20 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!CI108" Range("e35").Value = "='Resumen multinivel certif'!CE108" Range("e38").Formula = "='Resumen multinivel certif'!CI100" '-----------------------------------------------------------Case 21 'certificación 21 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!CM108" Range("e35").Value = "='Resumen multinivel certif'!CI108" Range("e38").Formula = "='Resumen multinivel certif'!CM100" '-----------------------------------------------------------Case 22 'certificación 22 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!CQ108" Range("e35").Value = "='Resumen multinivel certif'!CM108" Range("e38").Formula = "='Resumen multinivel certif'!CQ100" '-----------------------------------------------------------Case 23 'certificación 23 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!CU108" Range("e35").Value = "='Resumen multinivel certif'!CQ108" Range("e38").Formula = "='Resumen multinivel certif'!CU100" '-----------------------------------------------------------Case 24 'certificación 24 Range("i7").Value = TextBox1.Value Range("d35").Formula = "='Resumen multinivel certif'!CY108" Range("e35").Value = "='Resumen multinivel certif'!CU108" Range("e38").Formula = "='Resumen multinivel certif'!CY100" End Select Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación End If Unload Me End Sub Private Sub CommandButton2_Click() Unload Me End Sub Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789" ' solamente permite estos caracteres If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub End If End If End Sub Private Sub TextBox1_Change() If TextBox1.Value > 24 Then MsgBox "El valor máximo de certificación a introducir es 24" & Chr(13) & "Vuelva a introducir certificación comprendida entre valores del 1 al 24", vbCritical + vbOKOnly, "Error" If TextBox1.Value = 0 Or TextBox1.Value = "" Then MsgBox "No se ha introducido ningún valor" & Chr(13) & "Vuelva a introducir datos", vbCritical + vbOKOnly, "Error" TextBox1.SetFocus End Sub Private Sub ToggleButton1_Click() If ToggleButton1 = True Then 'Si el botón está activado se marcan los controles With TextBox1 .BorderStyle = 1 .MousePointer = 14 .backColor = &HFFC0C0 .ControlTipText = "A introducir el número de certificación de la cual se desea imprimir la carátula." End With End If 'Si el botón se desactiva volvemos al estado inicial If ToggleButton1 = False Then With TextBox1 .BorderStyle = 0 .MousePointer = 0 .backColor = &H80000005 .SpecialEffect = 2 .ControlTipText = "" End With End If End Sub 159 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 160 Módulo: muestra_certificaciones3 Sub certificaciones3_alhacerclick() certificaciones3.Show End Sub 2.21. UserForm21: Introducir fórmulas en certificación. Instrucciones Private Sub CommandButton1_Click() ActiveCell.Offset(0, 2).Select Call calcular Unload Me End Sub Private Sub CommandButton2_Click() 'En caso de error, que continúe On Error Resume Next contador = Range(Selection, Selection.End(xlDown)).Count ActiveCell.FormulaR1C1 = "=SUM(R[-1]C:R[-" & contador & "]C)" Selection.Cut Destination:=ActiveCell.Offset(0, 1) Unload Me End Sub Private Sub CommandButton3_Click() ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]" ActiveCell.Font.Underline = True Unload Me End Sub Módulo: muestra_formulas2 Sub formulas2_alhacerclick() MsgBox "Asegúrese de que se ha seleccionado la celda donde se desea introducir la fórmula", vbOKOnly + vbInformation, "Fórmula a introducir" formulas2_certif.Show End Sub 2.22. UserForm22: Comparativo certificación actual y a origen. Instrucciones valor = TextBox1.Value Select Case valor '-----------------------------------------------------------Case 1 'certificación 1 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación If Range("i8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 1 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("I8", Range("J99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''No hay. Es la primera. '********* 'CERTIFICACIÓN PARCIAL ''La certificación parcial será la misma que la certificación a origen. Sheets("resumen multinivel certif").Select Range("I8", Range("J99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 2 'certificación 2 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("m8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 2 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else 161 162 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Range("M8", Range("N99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 1 Sheets("resumen multinivel certif").Select If Range("I8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("I8", Range("J99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación2 - certificación1 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 3 'certificación 3 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("Q8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 3 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("Q8", Range("R99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 2 Sheets("resumen multinivel certif").Select If Range("M8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("M8", Range("N99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación3 - certificación2 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select 163 164 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 4 'certificación 4 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("U8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 4 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("U8", Range("V99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 3 Sheets("resumen multinivel certif").Select If Range("Q8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("Q8", Range("R99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación4 - certificación3 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 5 'certificación 5 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("Y8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 5 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("Y8", Range("Z99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 165 166 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 'ANTERIORES ''copiar certificación 4 Sheets("resumen multinivel certif").Select If Range("U8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("U8", Range("V99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación5 - certificación4 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 6 'certificación 6 Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("AC8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 6 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("AC8", Range("AD99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 5 Sheets("resumen multinivel certif").Select If Range("Y8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("Y8", Range("Z99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación6 - certificación5 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen 167 168 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 7 'certificación 7 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("AG8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 7 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("AG8", Range("AH99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 6 Sheets("resumen multinivel certif").Select If Range("AC8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("AC8", Range("AD99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación ''certificación7 - certificación6 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 8 'certificación 8 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("AK8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 8 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("AK8", Range("AL99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 7 Sheets("resumen multinivel certif").Select 169 170 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón If Range("AG8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("AG8", Range("AH99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación8 - certificación7 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 9 'certificación 9 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("AO8").Value = "" Then Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 9 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("AO8", Range("AP99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 8 Sheets("resumen multinivel certif").Select If Range("AK8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("AK8", Range("AL99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación9 - certificación8 = certificación parcial '********* Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select 171 172 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 10 'certificación 10 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("AS8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 10 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("AS8", Range("AT99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 9 Sheets("resumen multinivel certif").Select If Range("AO8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("AO8", Range("AP99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación10 - certificación9 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 11 'certificación 11 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("AW8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 11 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("AW8", Range("AX99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 10 Sheets("resumen multinivel certif").Select If Range("AS8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub 173 174 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Else Range("AS8", Range("AT99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación11 - certificación10 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 12 'certificación 12 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("BA8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 12 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Else Range("BA8", Range("BB99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 11 Sheets("resumen multinivel certif").Select If Range("AW8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("AW8", Range("AX99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación12 - certificación11 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select 175 176 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 13 'certificación 13 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("BE8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 13 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("BE8", Range("BF99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 12 Sheets("resumen multinivel certif").Select If Range("BA8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("BA8", Range("BB99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación13 - certificación12 = certificación parcial '********* Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 14 'certificación 14 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("BI8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 14 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("BI8", Range("BJ99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 13 Sheets("resumen multinivel certif").Select If Range("BE8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("BE8", Range("BF99").End(xlUp).Offset(0, 1)).Select Selection.copy 177 178 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación14 - certificación13 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 15 'certificación 15 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("BM8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 15 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("BM8", Range("BN99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 14 Sheets("resumen multinivel certif").Select If Range("BI8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("BI8", Range("BJ99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación15 - certificación14 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False 179 180 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Sheets("comparativo").Select '-----------------------------------------------------------Case 16 'certificación 16 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("BQ8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 16 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("BQ8", Range("BR99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 15 Sheets("resumen multinivel certif").Select If Range("BM8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("BM8", Range("BN99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación16 - certificación15 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 17 'certificación 17 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("BU8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 17 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("BU8", Range("BV99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 16 Sheets("resumen multinivel certif").Select If Range("BQ8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("BQ8", Range("BR99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False 181 182 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación17 - certificación16 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 18 'certificación 18 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("BY8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 18 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("BY8", Range("BZ99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación '********* 'ANTERIORES ''copiar certificación 17 Sheets("resumen multinivel certif").Select If Range("BU8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("BU8", Range("BV99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación18 - certificación17 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 19 'certificación 19 183 184 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("CC8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 19 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("CC8", Range("CD99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 18 Sheets("resumen multinivel certif").Select If Range("BY8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("BY8", Range("BZ99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación19 - certificación18 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 20 'certificación 20 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("CG8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 20 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("CG8", Range("CH99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 19 Sheets("resumen multinivel certif").Select If Range("CC8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("CC8", Range("CD99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades 185 186 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón ''certificación20 - certificación19 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 21 'certificación 21 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("CK8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 21 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("CK8", Range("CL99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 20 Sheets("resumen multinivel certif").Select Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación If Range("CG8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("CG8", Range("CH99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación21 - certificación20 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 22 'certificación 22 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("CO8").Value = "" Then 187 188 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 22 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("CO8", Range("CP99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 21 Sheets("resumen multinivel certif").Select If Range("CK8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("CK8", Range("CL99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación22 - certificación21 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 23 'certificación 23 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("CS8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 23 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("CS8", Range("CT99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 22 Sheets("resumen multinivel certif").Select If Range("CO8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("CO8", Range("CP99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación23 - certificación22 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select 189 190 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select '-----------------------------------------------------------Case 24 'certificación 24 '********* 'A ORIGEN Sheets("resumen multinivel certif").Select If Range("CW8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación 24 no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Range("CW8", Range("CX99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("H8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'ANTERIORES ''copiar certificación 23 Sheets("resumen multinivel certif").Select If Range("CS8").Value = "" Then MsgBox "No se encuentran datos." & vbCrLf & "Es posible que la certificación ANTERIOR A LA ACTUAL no se haya creado todavía.", vbOKOnly + vbInformation Exit Sub Else Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Range("CS8", Range("CT99").End(xlUp).Offset(0, 1)).Select Selection.copy Sheets("comparativo").Select Range("k8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If '********* 'CERTIFICACIÓN PARCIAL ''Diferencia entre origen y anteriores ''Restar importes y cantidades ''certificación24 - certificación23 = certificación parcial Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("K8", Range("L99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("N8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False '********* 'PENDIENTE EJECUTAR ''Diferencia entre presupuesto inicial y certificación a origen Range("E8", Range("F99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("H8", Range("I99").End(xlUp).Offset(0, 1)).Select Selection.copy Range("Q8").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _ SkipBlanks:=False, Transpose:=False Sheets("comparativo").Select End Select Unload Me Sheets("comparativo").Select End Sub Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Const Number$ = "0123456789" ' solamente permite estos caracteres If KeyAscii <> 8 Then If InStr(Number$, Chr(KeyAscii)) = 0 Then Beep KeyAscii = 0 Exit Sub 191 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 192 End If End If End Sub Private Sub TextBox1_Change() If TextBox1.Value > 24 Then MsgBox "El valor máximo de certificación a introducir es 24" & Chr(13) & "Vuelva a introducir certificación comprendida entre valores del 1 al 24", vbCritical + vbOKOnly, "Error" If TextBox1.Value = 0 Or TextBox1.Value = "" Then MsgBox "No se ha introducido ningún valor" & Chr(13) & "Vuelva a introducir datos", vbCritical + vbOKOnly, "Error" TextBox1.SetFocus End Sub 2.23. UserForm23: Imprimir listados. Instrucciones Private Sub CommandButton3_Click() Unload Me End Sub Private Sub CommandButton4_Click() Application.Dialogs(xlDialogPageSetup).Show End Sub Private Sub CommandButton5_Click() Application.Dialogs(xlDialogSaveAs).Show End Sub Private Sub CommandButton6_Click() Application.Dialogs(xlDialogSaveAs).Show End Sub Private Sub CommandButton7_Click() Unload Me ActiveWindow.SelectedSheets.PrintPreview End Sub Private Sub OptionButton12_Click() Sheets("presupuesto").Select Call formatoimprimir 'Configuración predeterminada de página ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("p2000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = False .Orientation = xlPortrait .FitToPagesWide = 1 .PrintTitleRows = "$6:$7" .PrintTitleColumns = "" Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End Sub Private Sub OptionButton13_Click() Sheets("resumen").Select Range(Range("b7").End(xlDown).Offset(1, 0), Range("b25")).Select Selection.EntireRow.Hidden = True ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("d2000").End(xlUp).Offset(3, 1)).Address With ActiveSheet.PageSetup .Zoom = False .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$E" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End Sub Private Sub OptionButton14_Click() Sheets("resumen multinivel").Select Range(Range("d7").End(xlDown).Offset(1, 0), Range("d96")).Select Selection.EntireRow.Hidden = True ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("e2000").End(xlUp).Offset(3, 1)).Address With ActiveSheet.PageSetup .Zoom = False '.FitToPagesWide = 1 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$E" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End Sub 193 Anabel Martín Martínez – Dr. José Manuel Gómez Soberón 194 Private Sub OptionButton15_Click() Sheets("filtrar datos").Select Call formatoimprimirprecios ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", Range("i2000").End(xlUp)).Address With ActiveSheet.PageSetup .Zoom = False '.FitToPagesWide = 1 .Orientation = xlPortrait .PrintTitleRows = "$6:$7" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End Sub Private Sub OptionButton16_Click() Sheets("ficha proyecto").Select ActiveSheet.PageSetup.PrintArea = "A5:E40" With ActiveSheet.PageSetup .Zoom = False '.FitToPagesWide = 1 .Orientation = xlPortrait .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End Sub Private Sub OptionButton17_Click() Sheets("carátula certif").Select ActiveSheet.PageSetup.PrintArea = "A4:j63" With ActiveSheet.PageSetup .Zoom = False '.FitToPagesWide = 1 .Orientation = xlPortrait .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End Sub Desarrollo de sistema informático práctico de aplicación en el análisis y control económico de obras de edificación Private Sub OptionButton18_Click() y = MsgBox("Comprobar que el listado comparativo esté actualizado", vbExclamation + vbYesNo, "Información") If y = vbYes Then Sheets("comparativo").Select Exit Sub End If If y = vbNo Then Sheets("comparativo").Select ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range("B3", "S108").Address With ActiveSheet.PageSetup .Zoom = 45 .Orientation = xlLandscape .PrintTitleRows = "$6:$7" .PrintTitleColumns = "$A:$S" .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True End With End If End Sub Private Sub OptionButton19_Click() Sheets("resumen certif").Select certificacionesresu.Show End Sub Private Sub OptionButton20_Click() Sheets("resumen multinivel certif").Select certificaciones2.Show End Sub Private Sub OptionButton21_Click() Sheets("certificación").Select certificaciones.Show End Sub Módulo: muestra_listados Sub mostraruserform2() Listados.Show End Sub 195