0% encontró este documento útil (0 votos)
26 vistas6 páginas

Codigodefine Objetos

El documento describe un procedimiento en VBA para calcular sumas de averías a partir de datos en una hoja de Excel, agrupando y sumando información relevante. Además, se presentan conclusiones sobre la morfología de diferentes tipos de fibras, destacando que las fibras 'Powercell' son superiores en longitud y capacidad de unión, mientras que las fibras de 'converting rolls' son más cortas y fragmentadas. El análisis sugiere que la presencia de agentes de resistencia en húmedo en las fibras 'Powercell' mejora las propiedades del papel, aunque complica el análisis de laboratorio.

Cargado por

John Celis
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
26 vistas6 páginas

Codigodefine Objetos

El documento describe un procedimiento en VBA para calcular sumas de averías a partir de datos en una hoja de Excel, agrupando y sumando información relevante. Además, se presentan conclusiones sobre la morfología de diferentes tipos de fibras, destacando que las fibras 'Powercell' son superiores en longitud y capacidad de unión, mientras que las fibras de 'converting rolls' son más cortas y fragmentadas. El análisis sugiere que la presencia de agentes de resistencia en húmedo en las fibras 'Powercell' mejora las propiedades del papel, aunque complica el análisis de laboratorio.

Cargado por

John Celis
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Option Explicit

Sub CalcularSumasAverias()

Dim wsDatos As Worksheet

Dim ultimaFila As Long

Dim fila As Long

Dim AveriaActual As mbv ' <--- ESTO DEBE SER mbv

Dim colTodasAverias As Collection

Set colTodasAverias = New Collection

Dim dicSumasAgrupadas As Object

Set dicSumasAgrupadas = CreateObject("Scripting.Dictionary")

' 1. Definir la hoja de datos

' Asegúrate de que este nombre sea EXACTO como la pestaña de tu hoja

Set wsDatos = ThisWorkbook.Sheets("Mantenimiento No Programado_183") ' ¡ESTE


NOMBRE ES CORRECTO SEGÚN TU ÚLTIMA INFO!

' 2. Encontrar la última fila con datos en la columna A

ultimaFila = wsDatos.Cells(Rows.Count, "A").End(xlUp).Row

' 3. Leer los datos y cargar en objetos (ignorando filas irrelevantes)

For fila = 2 To ultimaFila ' Los datos empiezan en la fila 2

Dim causaCelda As String

causaCelda = Trim(CStr(wsDatos.Cells(fila, 1).Value))


' Criterios para ignorar filas que no son datos individuales de avería:

If causaCelda <> "" And _

Not (InStr(1, causaCelda, "Total") > 0) And _

Not (InStr(1, causaCelda, "Mantenimiento No Programado") > 0) And _

Not (Left(causaCelda, 2) = "CA" And Len(causaCelda) = 6 And


IsNumeric(Mid(causaCelda, 3))) And _

Not (causaCelda = "Causa Avería") Then

Set AveriaActual = New mbv ' <--- ESTO DEBE SER mbv

With AveriaActual

.CausaAveria = causaCelda

' Validar si los valores son numéricos antes de asignar para evitar errores

If IsNumeric(wsDatos.Cells(fila, 2).Value) Then

.CodAveria = CDbl(wsDatos.Cells(fila, 2).Value)

Else

.CodAveria = 0

End If

If IsNumeric(wsDatos.Cells(fila, 3).Value) Then

.TIntervReal = CDbl(wsDatos.Cells(fila, 3).Value)

Else

.TIntervReal = 0

End If

If IsNumeric(wsDatos.Cells(fila, 4).Value) Then

.TParoReal = CDbl(wsDatos.Cells(fila, 4).Value)

Else
.TParoReal = 0

End If

End With

colTodasAverias.Add AveriaActual

End If

Next fila

MsgBox "Se han cargado " & colTodasAverias.Count & " averías individuales para
procesamiento."

' 4. Agrupar y Sumar los datos usando el Diccionario

Dim itemAveria As mbv ' <--- ESTO DEBE SER mbv

Dim arrValoresExistentes As Variant

For Each itemAveria In colTodasAverias

Dim keyCausa As String

keyCausa = itemAveria.CausaAveria

If Not dicSumasAgrupadas.Exists(keyCausa) Then

dicSumasAgrupadas.Add keyCausa, Array(itemAveria.TIntervReal,


itemAveria.TParoReal, 1)

Else

arrValoresExistentes = dicSumasAgrupadas.Item(keyCausa)

arrValoresExistentes(0) = arrValoresExistentes(0) + itemAveria.TIntervReal

arrValoresExistentes(1) = arrValoresExistentes(1) + itemAveria.TParoReal

arrValoresExistentes(2) = arrValoresExistentes(2) + 1
dicSumasAgrupadas.Item(keyCausa) = arrValoresExistentes

End If

Next itemAveria

MsgBox "El procesamiento de datos (agrupación y sumas) ha finalizado." & vbCrLf &
_

"Los resultados están listos en memoria para ser presentados." & vbCrLf & _

"Número de Causas Avería únicas encontradas: " & dicSumasAgrupadas.Count,


vbInformation

' Liberar objetos de memoria

Set wsDatos = Nothing

Set colTodasAverias = Nothing

Set dicSumasAgrupadas = Nothing

Set AveriaActual = Nothing

Set itemAveria = Nothing

End Sub
Conclusiones consolidadas

Ahora podemos refinar nuestras conclusiones basadas en todos los datos disponibles:

1. Fibras "Powercell":

o Son las más largas (1.22 mm), lo que es excelente para la resistencia del
papel.

o Tienen una alta proporción de finos B (fibrillas) (0.40%) y un índice de


fibrilación relativamente alto (0.50%), lo que indica un buen refinado y
una alta capacidad de unión de fibras.

o Son más finas (0.24 mg/m de coarseness) que la mezcla de referencia, a


pesar de ser más largas. Fibras más largas y finas (alta relación de
esbeltez) son ideales para la resistencia.

o La dificultad para desintegrarse sin tratamiento químico confirma la


presencia de agentes de resistencia en húmedo. Esto es un rasgo de
diseño del producto final (servilleta) y una limitación para el análisis de
la pulpa.

2. Fibras de referencia ("normal mix"):

o Son de longitud intermedia (1.03 mm).

o Son las más anchas y las que tienen el mayor coarseness (25.55 µm y
0.27 mg/m). Esto podría indicar un mayor contenido de fibra de madera
dura o pulpa sin refinar.

o Presentan los valores más bajos de finos B y fibrilación, lo que sugiere


una menor capacidad de unión y, por lo tanto, una menor resistencia
potencial en comparación con la "powercell".

3. Fibras de "converting rolls":

o Son las más cortas (0.67 mm) y las más finas (0.14 mg/m).

o Tienen una cantidad extremadamente alta de finos A (21.0%), lo que


confirma que son principalmente fragmentos de fibras cortadas durante
el proceso de "converting".

o Aunque tienen un índice de fibrilación alto (0.60%), esto probablemente


se debe a la degradación de las fibras por el corte y no a un refinado
óptimo.

En resumen: El informe revela que la pulpa "Powercell" tiene una morfología superior
(fibras más largas, mayor fibrilación) que contribuye a mejorar las propiedades del
papel. La presencia de agentes de resistencia en húmedo complica el análisis de
laboratorio, pero es un factor clave en el rendimiento del producto final. El análisis
también demuestra que las fibras del "converting" son una fracción degradada y
fragmentada, mientras que las de referencia se sitúan en un punto intermedio en
cuanto a su morfología.

También podría gustarte