Visualitza/Obre - Pàgina inicial de UPCommons

Anuncio
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
Descargar