Calcular datos en TB, pasarlos a GB y el resultado en otra hoja

En el documento que te pasé, en la macro "setorZaragoza" me realiza todos cálculos a la perfección salvo los de FREESPACE del sector WALQA, por que hay al final unos volúmenes que están en terabytes (T) y no los calcula, habría que calcular estos valores y pasarlos a Gigabytes para que salieran correctos los cálculos, he intentado hacerlo yo mismo pero no se como hacerlo. Te paso el documento con el resultado de los cálculos para que veas como quedaría (estos cálculos los he hecho a mano).

Para DanteAmor

1 respuesta

Respuesta
2

H  o la:

Envíame un archivo con los ejemplos.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Alberto Sierra” y el título de esta pregunta.

¡Muchas Gracias! 

Acabo de enviarte el correo con el ejemplo que me pides.

Un abrazo!

Alberto

Buenos días Dante:

Te acabo de mandar un correo explicándote un pequeño problema que me pasa con las gráficas que estoy realizando, y es que en la hoja "RESUMEN" hay resultados que están en "G" (GIGAS) y me gustaría que los resultados aparecieran sin la "G", ya que sino no me funcionan las gráficas. 

Muchas gracias y un fuerte abrazo 

Alberto

Te anexo la macro

Sub SetorZaragoza()
'Por.Dante Amor
    Dim filas()
    Dim sectores()
    Set h1 = Sheets("DATOS")
    Set h2 = Sheets("RESUMEN")
    '
    'Buscar fecha en datos
    Set b = h1.Rows(1).Find("-", lookat:=xlPart)
    If Not b Is Nothing Then
        fecha = CDate(b.Value)
    Else
        Set b = h1.Rows(1).Find("/", lookat:=xlPart)
        If Not b Is Nothing Then
            fecha = CDate(b.Value)
        Else
            fecha = Date
        End If
    End If
    '
    'Buscar fecha en Resumen
    Set b = h2.Rows(1).Find(fecha, lookat:=xlWhole)
    If Not b Is Nothing Then
        col = b.Column
    Else
        col = h2.Cells(1, Columns.Count).End(xlToLeft).Column + 1
        h2.Cells(1, col) = CDate(Format(fecha, "dd/mm/yyyy"))
    End If
    '
    'Buscar sectores
    bsectores = Array("ZARAGOZA", "WALQA")
    n = 0
    Set r = h1.Columns("A")
    For k = LBound(bsectores) To UBound(bsectores)
        Set b = r.Find(bsectores(k), lookat:=xlPart)
        If Not b Is Nothing Then
            Celda = b.Address
            Do
                n = n + 1
                ReDim Preserve filas(n)
                ReDim Preserve sectores(n)
                filas(n) = b.Row
                sectores(n) = b.Value
                Set b = r.FindNext(b)
            Loop While Not b Is Nothing And b.Address <> Celda
        End If
    Next
    '
    'Pasar Datos
    For i = 1 To n
        wn = 0
        vtot = 0
        vvol = 0
        fila = filas(i)
        dato = h1.Cells(fila, "A")
        If InStr(1, LCase(dato), "zaragoza") > 1 Then
            w1 = 6: w2 = 4
        Else
            w1 = 1: w2 = 2
        End If
        ufila = h1.Cells(fila + w1, "C").End(xlDown).Row
        For j = fila + w2 To ufila
            Select Case h1.Cells(j, "C")
            Case "/mnt/logs":                                vlog = h1.Cells(j, "A")
            Case "/mnt/vols/vol_C000", "/mnt/vols/vol_B000": v000 = h1.Cells(j, "A")
            Case "/mnt/mensajes":                            vmen = h1.Cells(j, "A")
            Case Else
                If IsNumeric(h1.Cells(j, "B")) And h1.Cells(j, "B") <> "" Then
                    wn = wn + 1
                    vtot = vtot + h1.Cells(j, "B") * 100
                End If
                If h1.Cells(j, "A") <> "" Then
                    If InStr(1, h1.Cells(j, "A"), "T") > 0 Then
                        vlibre = Replace(h1.Cells(j, "A"), "T", "")
                        vlibre = Val(vlibre) * 1024
                    Else
                        vlibre = Replace(h1.Cells(j, "A"), "G", "")
                    End If
                    If IsNumeric(vlibre) Then
                        vvol = vvol + Val(vlibre)
                    End If
                End If
            End Select
        Next
        '
        sector = sectores(i)
        Set b = h2.Columns("A").Find(sector, lookat:=xlWhole)
        If Not b Is Nothing Then
            fil = b.Row
        Else
            fil = h2.Range("A" & Rows.Count).End(xlUp).Row + 2
        End If
        '
        h2.Cells(fil, "A") = sector
        h2.Cells(fil + 1, "A") = "LIBRE VOL LOG"
        h2.Cells(fil + 2, "A") = "LIBRE VOL 0"
        h2.Cells(fil + 3, "A") = "LIBRE VOL MENSAJES"
        h2.Cells(fil + 4, "A") = "% TOTAL OCUPADO EN VOLUMENES"
        h2.Cells(fil + 5, "A") = "FREESPACE EN VOLUMENES"
        '
        vlog = Replace(vlog, "G", "")
        vlog = Replace(vlog, "T", "")
        v000 = Replace(v000, "G", "")
        v000 = Replace(v000, "T", "")
        vmen = Replace(vmen, "G", "")
        vmen = Replace(vmen, "T", "")
        h2.Cells(fil + 1, col) = vlog
        h2.Cells(fil + 2, col) = v000
        h2.Cells(fil + 3, col) = vmen
        h2.Cells(fil + 4, col) = vtot / wn
        h2.Cells(fil + 5, col) = vvol
    Next
    MsgBox "CALCULOS REALIZADOS CORRECTAMENTE"
End Sub

sal u dos

¡Muchas Gracias! 

Felicitarte por toda la ayuda que me estas prestando, los cálculos salen perfectos! Lo único que pasa es que en los sectores ZaragozaI_1 y ZaragozaIII_1 en la fila "libre vol mensajes" (en los dos sectores), los resultados me sale error, como si fuera texto y no número, entonces no me funcionan las gráficas que hice, por que esos valores no me los coge bien. He intentado cambiar el formato, pero no consigo dar con la solución a través de la macro. Espero me puedas ayudar en estos últimos detalles.

Muchas gracias de nuevo y un fuerte abrazo

Alberto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas