EJEMPLO GRAF
Dim NumeroDeNiveles As Integer
Dim NoColumnaIT As Integer
Dim NoFilaIT As Integer
Dim Punto As String
Dim TituloDriftX As String
Dim TituloDriftY As String
Dim AuxNumeroNiveles As Integer
Dim AuxNumeroV As Long
Dim NoPuntos As Integer
Dim RangoTitulos As Range
Dim NoColTU As Integer
Dim NoFilTU As Long
Dim AuxTBU As String
Dim RangoFor As Range
Dim MaxFOR As Single
Dim MinFOR As Single
Dim AuxNoNiveles As Long
Punto = "PUNTO"
TituloDriftX = "DRIFT X"
TituloDriftY = "DRIFT Y"
NoPuntos = Application.InputBox(prompt:=" Ingresa el numero de Puntos a Realizar", Title:="NÚMERO DE PUNTOS", Type:=1)
NumeroDeNiveles = Application.InputBox(prompt:="Ingresa el Numero de Niveles con el que cuenta la Estructura: ", Title:="NÚMERO DE NIVELES DE LA ESTRCUTURA", Type:=1)
NoColumnaIT = Application.InputBox(prompt:="Ingresa el Número de la Columna donde quieres insertar la TABLA RESUMEN", Title:="NÚMERO DE COLUMNA PARA INSERTAR TABLA RESUMEN", Type:=1)
NoFilaIT = Application.InputBox(prompt:="Ingresa el Número de la Fila donde quieres Insertar la TABLA RESUMEN", Title:="NÚMERO DE FILA PARA INSERTAR TABLA RESUMEN", Type:=1)
NoColTU = Application.InputBox("Ingresa la Columna de inicio de la Tabla que realizaste", "NÚMERO COLUMNA DATOS USUARIO", Type:=1)
NoFilTU = Application.InputBox("Ingresa la Fila de inicio de la Tabla que realizaste", "NÚMERO FILA DATOS USUARIO", Type:=1)
Set RangoTitulos = Application.InputBox("Ingresa el rango de los encabezados de Drifts", "RANGO TITULOS DRIFTS", Type:=8)
AuxNumeroNiveles = NumeroDeNiveles - 1
AuxNumeroV = NumeroDeNiveles + 1
For NoPuntos = 1 To NoPuntos
If NoPuntos = 1 Then
Cells(NoFilaIT, NoColumnaIT) = TituloDriftX
Cells(NoFilaIT + 1, NoColumnaIT) = Punto
Cells(NoFilaIT + 2, NoColumnaIT) = "NIVEL"
Cells(NoFilaIT + 2, NoColumnaIT + 1) = "MÁX"
Cells(NoFilaIT + 2, NoColumnaIT + 2) = "MÍN"
Cells(NoFilaIT, NoColumnaIT + 4) = TituloDriftY
Cells(NoFilaIT + 1, NoColumnaIT + 4) = Punto
Cells(NoFilaIT + 2, NoColumnaIT + 4) = "NIVEL"
Cells(NoFilaIT + 2, NoColumnaIT + 5) = "MÁX"
Cells(NoFilaIT + 2, NoColumnaIT + 6) = "MÍN"
For AuxNumeroV = 1 To AuxNumeroV
If AuxNumeroV = 1 Then
Cells(NoFilaIT + 3, NoColumnaIT).Select
ActiveCell = NumeroDeNiveles
AuxNoNiveles = (NumeroDeNiveles * 2) - 1
Cells(NoFilaIT + 3, NoColumnaIT + 1).Select
AuxTBU = Cells(NoFilTU, NoColTU + AuxNoNiveles).Value
RangoTitulos.Find(what:=AuxTBU).Select
ActiveCell.Offset(1, 0).Select
Set RangoFor = Range(Selection, Selection.End(xlDown))
MaxFOR = Application.WorksheetFunction.Max(RangoFor)
Cells(NoFilaIT + 3, NoColumnaIT).Select
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = MaxFOR
Cells(NoFilaIT + 3, NoColumnaIT + 2).Select
AuxTBU = Cells(NoFilTU, NoColTU + AuxNoNiveles).Value
RangoTitulos.Find(what:=AuxTBU).Select
ActiveCell.Offset(1, 0).Select
Set RangoFor = Range(Selection, Selection.End(xlDown))
MinFOR = Application.WorksheetFunction.Min(RangoFor)
Cells(NoFilaIT + 3, NoColumnaIT + 1).Select
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = MinFOR
Cells(NoFilaIT + 3, NoColumnaIT + 4) = NumeroDeNiveles
AuxNoNiveles = AuxNoNiveles + 1
Cells(NoFilaIT + 3, NoColumnaIT + 5).Select
AuxTBU = Cells(NoFilTU, NoColTU + AuxNoNiveles).Value
RangoTitulos.Find(what:=AuxTBU).Select
ActiveCell.Offset(1, 0).Select
Set RangoFor = Range(Selection, Selection.End(xlDown))
MaxFOR = Application.WorksheetFunction.Max(RangoFor)
Cells(NoFilaIT + 3, NoColumnaIT + 4).Select
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = MaxFOR
Cells(NoFilaIT + 3, NoColumnaIT + 6).Select
AuxTBU = Cells(NoFilTU, NoColTU + AuxNoNiveles).Value
RangoTitulos.Find(what:=AuxTBU).Select
ActiveCell.Offset(1, 0).Select
Set RangoFor = Range(Selection, Selection.End(xlDown))
MinFOR = Application.WorksheetFunction.Min(RangoFor)
Cells(NoFilaIT + 3, NoColumnaIT + 5).Select
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = MinFOR
NoFilaIT = NoFilaIT + 3
Else
NoFilaIT = NoFilaIT + 1
Cells(NoFilaIT, NoColumnaIT) = AuxNumeroNiveles
Cells(NoFilaIT, NoColumnaIT + 1).Select
NumeroDeNiveles = NumeroDeNiveles - 1
AuxNoNiveles = (NumeroDeNiveles * 2) - 1
AuxTBU = Cells(NoFilTU, NoColTU + AuxNoNiveles).Value
RangoTitulos.Find(what:=AuxTBU).Select
ActiveCell.Offset(1, 0).Select
Set RangoFor = Range(Selection, Selection.End(xlDown))
MaxFOR = Application.WorksheetFunction.Max(RangoFor)
Cells(NoFilaIT, NoColumnaIT).Select
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = MaxFOR
Cells(NoFilaIT, NoColumnaIT + 2).Select
AuxTBU = Cells(NoFilTU, NoColTU + AuxNoNiveles).Value
RangoTitulos.Find(what:=AuxTBU).Select
ActiveCell.Offset(1, 0).Select
Set RangoFor = Range(Selection, Selection.End(xlDown))
MinFOR = Application.WorksheetFunction.Min(RangoFor)
Cells(NoFilaIT, NoColumnaIT + 1).Select
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = MinFOR
Cells(NoFilaIT, NoColumnaIT + 4) = AuxNumeroNiveles
Cells(NoFilaIT, NoColumnaIT + 5).Select
AuxNoNiveles = (NumeroDeNiveles * 2)
AuxTBU = Cells(NoFilTU, NoColTU + AuxNoNiveles).Value
RangoTitulos.Find(what:=AuxTBU).Select
ActiveCell.Offset(1, 0).Select
Set RangoFor = Range(Selection, Selection.End(xlDown))
MaxFOR = Application.WorksheetFunction.Max(RangoFor)
Cells(NoFilaIT, NoColumnaIT + 4).Select
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = MaxFOR
Cells(NoFilaIT, NoColumnaIT + 6).Select
AuxTBU = Cells(NoFilTU, NoColTU + AuxNoNiveles).Value
RangoTitulos.Find(what:=AuxTBU).Select
ActiveCell.Offset(1, 0).Select
Set RangoFor = Range(Selection, Selection.End(xlDown))
MinFOR = Application.WorksheetFunction.Min(RangoFor)
Cells(NoFilaIT, NoColumnaIT + 5).Select
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = MinFOR
AuxNumeroNiveles = AuxNumeroNiveles - 1
End If
Next AuxNumeroV
NoFilaIT = NoFilaIT + 12
Else
Cells(NoFilaIT, NoColumnaIT) = TituloDriftX
Cells(NoFilaIT + 1, NoColumnaIT) = Punto
Cells(NoFilaIT + 2, NoColumnaIT) = "NIVEL"
Cells(NoFilaIT + 2, NoColumnaIT + 1) = "MÁX"
Cells(NoFilaIT + 2, NoColumnaIT + 2) = "MÍN"
Cells(NoFilaIT, NoColumnaIT + 4) = TituloDriftY
Cells(NoFilaIT + 1, NoColumnaIT + 4) = Punto
Cells(NoFilaIT + 2, NoColumnaIT + 4) = "NIVEL"
Cells(NoFilaIT + 2, NoColumnaIT + 5) = "MÁX"
Cells(NoFilaIT + 2, NoColumnaIT + 6) = "MÍN"
AuxNumeroV = AuxNumeroV - 1
For AuxNumeroV = 1 To AuxNumeroV
If AuxNumeroV = 1 Then
Cells(NoFilaIT + 3, NoColumnaIT) = NumeroDeNiveles
Cells(NoFilaIT + 3, NoColumnaIT + 4) = NumeroDeNiveles
NoFilaIT = NoFilaIT + 3
AuxNumeroNiveles = NumeroDeNiveles - 1
Else
NoFilaIT = NoFilaIT + 1
Cells(NoFilaIT, NoColumnaIT) = AuxNumeroNiveles
Cells(NoFilaIT, NoColumnaIT + 4) = AuxNumeroNiveles
AuxNumeroNiveles = AuxNumeroNiveles - 1
End If
Next AuxNumeroV
NoFilaIT = NoFilaIT + 8
End If
Next NoPuntos
https://drive.google.com/open?id=1GWIsKC2Tp3oIG77IL6U2qyVJQqaRfTcR
https://drive.google.com/open?id=10DZpUSzDoakmh_s8KwGBTqApkyMu7AiG
https://drive.google.com/open?id=1GWIsKC2Tp3oIG77IL6U2qyVJQqaRfTcR
https://drive.google.com/open?id=10DZpUSzDoakmh_s8KwGBTqApkyMu7AiG
No hay comentarios