Conversión ficheros BC3 a Excel - Online

#1
Como continuación de la utilidad Bc3ToExcel publicada hace ya varios años ( ver Documentos - Mediciones y Presupuestos ) se ofrece la nueva utilidad ONLINE en: https://www.bc3toexcel.com

Esta utilidad solo convierte los ficheros BC3 de PRESUPUESTOS ( no los de Bases de Precios ) a hojas de cálculo XLSX que es el nuevo formato de EXCEL 2007 y posteriores. ( 2010 y 2013 ).

El proceso tarda según el tamaño del presupuesto por debajo de los 2 minutos ( sino es que hay un fallo con el fichero BC3 )

La hoja resultado de la conversión se envía al correo electrónico que se indique.

Esta en fase de pruebas por lo que se solicita a los usuarios el reporte de errores para su subsanación y mejora continua.
 
#2
Desde aquí quiero dar las gracias a todos aquellos que me habéis remitido pequeños errores cometidos por la conversión ONLINE de ficheros BC3 (especiales) ó de la funcionalidad de la página WEB y que me han servido para ir mejorando poco a poco esta utilidad.
Os ruego que lo sigáis haciendo.
 
#3
Este mensaje es para los usuarios que utilicen o quieran utilizar esta utilidad ONLINE.
Voy a explicar el siguiente proceso para formatear las hojas de calculo obtenidas dado que para acelerar y economizar el tiempo de proceso ( dado que existe un tiempo de proceso máximo para las páginas web) se ha desechado el proceso de la parte estética, en principio, para poder procesar ficheros BC3 lo más grandes posibles, además de que un usuario de Excel puede hacerlo a "posteriori" sin dificultad.

En principio consiste en ejecutar una MACRO de Visual Basic dentro de la hoja recibida, que es la siguiente ( Copiar el código para Pegar posteriormente)
Código:
Sub formatear_hoja_recibida()
'
' formatear_hoja_recibida Macro
' Formateo de la hoja de calculo recibida
'
For Each Hoja In Worksheets
    Select Case Hoja.Name
        Case "Cuadro de Precios"
            Sheets("Cuadro de Precios").Select
            Columns("A:E").Select
            Selection.Columns.AutoFit
            Columns("G:I").Select
            Selection.Columns.AutoFit
            Columns("F:F").Select
            Selection.ColumnWidth = 67
            Cells.Select
            With Selection
                .HorizontalAlignment = xlGeneral
                .VerticalAlignment = xlTop
                .WrapText = False
                .Orientation = 0
                .AddIndent = False
                .IndentLevel = 0
                .ShrinkToFit = False
                .ReadingOrder = xlContext
                .MergeCells = False
            End With
            Range("A3:K3").Select
            With Selection.Interior
                .Pattern = xlSolid
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorLight1
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End With
            With Selection.Font
                .ThemeColor = xlThemeColorDark1
                .TintAndShade = 0
            End With
            Selection.Font.Bold = True
            Range("A1").Select
   
    Case "Precios Descompuestos"
        Sheets("Precios Descompuestos").Select
        Columns("A:D").Select
        Selection.Columns.AutoFit
        Columns("F:J").Select
        Selection.Columns.AutoFit
        Columns("E:E").Select
        Selection.ColumnWidth = 67
        Range("A2:L2").Select
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        With Selection.Font
            .ThemeColor = xlThemeColorDark1
            .TintAndShade = 0
        End With
        Selection.Font.Bold = True
        Cells.Select
        With Selection
            .HorizontalAlignment = xlGeneral
            .VerticalAlignment = xlTop
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = False
        End With
        Range("A1").Select
   
    Case "Presupuesto"
        Sheets("Presupuesto").Select
        Columns("A:E").Select
        Selection.Columns.AutoFit
        Columns("G:U").Select
        Selection.Columns.AutoFit
        Columns("F:F").Select
        Selection.ColumnWidth = 67
        Cells.Select
        With Selection
            .HorizontalAlignment = xlGeneral
            .VerticalAlignment = xlTop
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = False
        End With
        Columns("F:F").Select
        With Selection
            .HorizontalAlignment = xlJustify
            .VerticalAlignment = xlTop
            .WrapText = True
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = False
        End With
        Cells.Select
        Selection.Rows.AutoFit
        Range("A2:U2").Select
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        With Selection.Font
            .ThemeColor = xlThemeColorDark1
            .TintAndShade = 0
        End With
        Selection.Font.Bold = True
        ActiveWindow.ScrollColumn = 4
        ActiveWindow.ScrollColumn = 5
        ActiveWindow.ScrollColumn = 6
        ActiveWindow.ScrollColumn = 5
        ActiveWindow.ScrollColumn = 4
        ActiveWindow.ScrollColumn = 3
        Range("A1").Select
    Case Else
   
    End Select
Next
End Sub
PROCESO
1º Copiar el contenido en un fichero de texto y guardarlo con un nombre cualquiera y la extensión .BAS
2º Para ejecutar la macro lo primero es tener habilitadas en Excel las propiedades de ejecución de macros y programas en Visual Basic.
3º Si esta habilitada entonces tendremos una solapa en el menú de Excel que pone PROGRAMADOR.
4º Se pincha con el ratón en esta solapa y veremos el menú de herramientas del programador.
5º Dentro de este menú seleccionar la opción Seguridad de Macros y confirmar que está seleccionada la opción "Habilitar todas las macros"
6º Si esto es así a continuación pinchamos en la herramienta Visual Basic.
7º Dentro de la herramienta Visual Basic seleccionar la solapa de menú "Archivo"
8º Escoger la opción "Importar Archivo"
9º Seleccionar el fichero con la extensión .BAS guardado en el disco y pinchar en la etiqueta "Abrir"
10º Seleccionar la solapa "Ejecutar" en el menú de la herramienta Visual Basic.
11º Escoger la opción "Ejecutar Macro"
12º Seleccionar la macro "Formatear_hoja_recibida" y pinchar en la etiqueta "Ejecutar"
13º Comenzará el proceso que durará 5 segundos aproximadamente y no habrá ningún mensaje sino se ha producido ningún error.
14º Para salir de la herramienta Visual Basic pinchar en el símbolo X de la esquina superior derecha.

Veremos la hoja de cálculo recibida con un formato más visual.
Luego cerrar/abrir los niveles jerárquicos de filas y/o columnas para establecer los datos que se quieren visualizar en pantalla o imprimir.
 
#4
Quizá el comentario que voy a hacer sea un poco ingenuo, pero si todos los programas de mediciones y presupuestos habituales que ya conocemos exportan a formato Excel, ¿Cuál es el sentido de esta utilidad?
 
#6
Quizá el comentario que voy a hacer sea un poco ingenuo, pero si todos los programas de mediciones y presupuestos habituales que ya conocemos exportan a formato Excel, ¿Cuál es el sentido de esta utilidad?
Muchos profesionales en el mundo de la construcción utilizan exclusivamente una hoja de calculo para realizar ofertas y presupuestos para realizar los trabajos.
La totalidad de los Estudios de Arquitectura e Ingeniería tienen programas de mediciones y presupuestos para la documentación de los proyectos que redactan.
La totalidad de las empresas constructoras que licitan obras de la administración pública también tienen programas de mediciones y presupuestos ya que tienen que acompañar sus ofertas con los correspondientes cuadros de precios y sus descomposiciones para futuros precios contradictorios en la ejecución de las obras que se adjudiquen.
Pero para realizar las ofertas rápidamente nada hay como la hoja de cálculo, sobre todo para que cada empresa pueda encajar sus recursos y medios auxiliares, sus rendimientos y sus margenes comerciales a la hora de subcontratar empresas y comprar materiales, etc..("su know how") y competir con seguridad y fiabilidad ( sobre todo por las prisas que suelen acompañar) en un concurso de ofertas.
Como casi siempre se parte de un proyecto que tiene un presupuesto en formato BC3 ( rara vez en formato Excel ) y se intenta con esta utilidad convertir desde BC3 a Excel para luego manipular con la hoja de cálculo sus valores y adecuarlos.
Todos los programas de mediciones y presupuestos lo hacen todo esto perfectamente pero no son tan ágiles y en aquellas empresas con poco personal en el departamento de estudios ó con el típico "hombre orquesta" que hace de todo se realizan muchas ofertas y estudios económicos cómodamente con las hojas de cálculo.
Pero lo más IMPORTANTE es que si aún así fuese obligatorio presentar los cuadros de precios esta conversión también la hace para que se puedan manipular y la hoja del presupuesto refleja los cambios que se produzcan en los cuadros de precios relacionados ( ESTO NO LO HACEN LAS HOJAS DE CALCULO QUE EXPORTAN LOS PROGRAMAS DE MEDICIONES Y PRESUPUESTOS HASTA EL MOMENTO QUE YO SEPA).

Otra DIFERENCIA importante respecto a las hojas de cálculo que exportan los programas de mediciones y presupuestos es la ESQUEMATIZACION en Excel de la JERARQUIZACION EN NIVELES DE LA ESTRUCTURA DEL PRESUPUESTO en Capítulos/Subcapítulos/Partidas de obra hasta 8 niveles de profundidad (máximo de Excel) y que es muy útil para desenvolverse en la hoja con un presupuesto muy complejo abriendo y cerrando niveles como en los programas de mediciones y presupuestos.

Si alguien tiene alguna duda ó comentario respecto a esta utilidad ( en mejora continua ) le ruego me lo haga saber a través de este foro o en comunicación directa a través del correo indicado en la página WEB.
 
#7
No es por desmerecer el trabajo que ha supuesto programar dicha aplicación, que seguro que ha sido arduo y es muy elogiable, pero si con un software normalito de mediciones y presupuestos en dos pasos (importar BC3 y exportar a Excel) solucionamos el problema, será más sencillo que realizar 14 pasos, tal y como se describe en el proceso enunciado (o quizá no lo haya entendido bien).
 
#8
Los 14 pasos indicados son para aquellos que no estén familiarizados con el uso de excel y quieran rapidamente dar un formato estético a las columnas de la hoja de calculo creada.
Explican exclusivamente como cargar y ejecutar una Macro en Excel. El que maneja Excel sabe esto sobradamente.
Por lo demas me remito al mensaje anterior respecto a las diferencias con las hojas de calculo que exportan los programas de mediciones.
 
#9
Este es un mensaje para los que están utilizando esta utilidad.
A veces el resultado que se obtiene no coincide exactamente con el del fichero BC3 porque los programas de mediciones y presupuestos no realizan los redondeos de igual manera y una centésima de euro de diferencia en el cálculo del precio descompuesto en la hoja de cálculo pueden significar muchos euros de diferencia en el presupuesto cuando la medición de una partida sean miles de unidades (Kg, M3, etc..).
La solución en estos casos es aceptar el resultado ó modificar el precio descompuesto diferente para obtener el precio igual al del BC3 ( que lo ha calculado el programa de mediciones y presupuestos original PRESTO, ARQUÍMEDES, PREMETI, etc..).
Esta problemática ya la indique en su día en un tema en este foro: https://www.soloarquitectura.com/foros/threads/errores-en-el-calculo-de-descompuestos.36498/.
También se puede generar una hoja de cálculo sin la opción de descomposición de precios y en este caso será igual a la del BC3 salvo un error en el cálculo de las mediciones por igual motivo y por lo tanto también se puede indicar sin la opción de detalle de las mediciones.
 
#10
Las hojas de calculo resultado de la conversión vienen con la jerarquización de los capítulos/subcapítulos/partidas utilizando el modo esquema de Excel pero el usuario debe tener la opción "Filas resumen debajo del detalle" como no activada en la configuración de "esquema" de Excel porque sino el esquema está como invertido y no se ve correctamente.

Veo que algunos usuarios no están familiarizados con esta utilidad de Excel y no se han dado cuenta de este detalle.

Me gustaría conocer mas opiniones de usuarios para mejorar la utilidad OnLine.
 
#11
Un error en el comportamiento de EXCEL no detectado hasta ahora.

Aunque la hoja que es producida por la conversión tiene la opción "archivo/opciones/avanzadas/al calcular este libro: "PRECISION DE PANTALLA" (ACTIVADA) o sea que las operaciones matemáticas se hace con los números decimales que se ven en la pantalla en realidad no lo hace salvo que se DESACTIVE y se vuelva a ACTIVAR, entonces si que ajusta las operaciones a los decimales de cada celda.

Normalmente los ficheros BC3 tiene los números en consonancia con los decimales que en su parámetro ~K de coeficientes vienen indicados pero hay veces que esto no es así y un numero de las mediciones dentro del fichero por ejemplo es 0,833 y en parámetros dice que se usen 2 decimales 0,83, es raro que así sea pero ocurre y es ahí donde se produce un error cuando uno repite la operación con una calculadora y no coincide con lo que Excel calcula porque Excel sigue utilizando 0,833 que si nos acercamos con el cursor a la celda en cuestión se ve que en la barra de edición aparece 0,833 aunque en la celda se vea 0,83 aun estando, como digo, activada la PRECISION DE PANTALLA.
 
#12
Se ha puesto a disposición de los usuarios la utilidad "INVERSA" ( EXCELTOBC3) que realiza la conversión de la hoja de cálculo recibida desde BC3TOEXCEL de nuevo al formato BC3.
Se puede descargar desde la pagina https://www.bc3toexcel.com
Se ejecuta desde el propio ordenador del usuario que tiene que tener como mínimo una versión de Microsoft Excel instalada.
Se ruega a los usuarios informar de cualquier error del programa para su mejora continua.
 
#13
Modificación del código de la rutina para el formateo de la hoja, ya que tenia un error.
Código:
Option Explicit

Sub formatear_hoja_recibida()
'
' formatear_hoja_recibida Macro
' Formateo de la hoja de calculo recibida
'
    Dim Hoja As Worksheet

    With ActiveWorkbook
        For Each Hoja In .Worksheets
            Select Case Hoja.Name
            Case "Cuadro de Precios"
                Sheets("Cuadro de Precios").Select
                Columns("A:E").Select
                Selection.Columns.AutoFit
                Columns("G:I").Select
                Selection.Columns.AutoFit
                Columns("F:F").Select
                Selection.ColumnWidth = 67
                Cells.Select
                With Selection
                    .HorizontalAlignment = xlGeneral
                    .VerticalAlignment = xlTop
                    .WrapText = False
                    .Orientation = 0
                    .AddIndent = False
                    .IndentLevel = 0
                    .ShrinkToFit = False
                    .ReadingOrder = xlContext
                    .MergeCells = False
                End With
                Range("A3:K3").Select
                With Selection.Interior
                    .Pattern = xlSolid
                    .PatternColorIndex = xlAutomatic
                    .ThemeColor = xlThemeColorLight1
                    .TintAndShade = 0
                    .PatternTintAndShade = 0
                End With
                With Selection.Font
                    .ThemeColor = xlThemeColorDark1
                    .TintAndShade = 0
                End With
                Selection.Font.Bold = True
                Range("A1").Select

            Case "Precios Descompuestos"
                Sheets("Precios Descompuestos").Select
                Columns("A:D").Select
                Selection.Columns.AutoFit
                Columns("F:J").Select
                Selection.Columns.AutoFit
                Columns("E:E").Select
                Selection.ColumnWidth = 67
                Range("A2:L2").Select
                With Selection.Interior
                    .Pattern = xlSolid
                    .PatternColorIndex = xlAutomatic
                    .ThemeColor = xlThemeColorLight1
                    .TintAndShade = 0
                    .PatternTintAndShade = 0
                End With
                With Selection.Font
                    .ThemeColor = xlThemeColorDark1
                    .TintAndShade = 0
                End With
                Selection.Font.Bold = True
                Cells.Select
                With Selection
                    .HorizontalAlignment = xlGeneral
                    .VerticalAlignment = xlTop
                    .WrapText = False
                    .Orientation = 0
                    .AddIndent = False
                    .IndentLevel = 0
                    .ShrinkToFit = False
                    .ReadingOrder = xlContext
                    .MergeCells = False
                End With
                Range("A1").Select

            Case "Presupuesto"
                Sheets("Presupuesto").Select
                Columns("A:E").Select
                Selection.Columns.AutoFit
                Columns("G:U").Select
                Selection.Columns.AutoFit
                Columns("F:F").Select
                Selection.ColumnWidth = 67
                Cells.Select
                With Selection
                    .HorizontalAlignment = xlGeneral
                    .VerticalAlignment = xlTop
                    .WrapText = False
                    .Orientation = 0
                    .AddIndent = False
                    .IndentLevel = 0
                    .ShrinkToFit = False
                    .ReadingOrder = xlContext
                    .MergeCells = False
                End With
                Columns("F:F").Select
                With Selection
                    .HorizontalAlignment = xlJustify
                    .VerticalAlignment = xlTop
                    .WrapText = True
                    .Orientation = 0
                    .AddIndent = False
                    .IndentLevel = 0
                    .ShrinkToFit = False
                    .ReadingOrder = xlContext
                    .MergeCells = False
                End With
                Cells.Select
                Selection.Rows.AutoFit
                Range("A2:U2").Select
                With Selection.Interior
                    .Pattern = xlSolid
                    .PatternColorIndex = xlAutomatic
                    .ThemeColor = xlThemeColorLight1
                    .TintAndShade = 0
                    .PatternTintAndShade = 0
                End With
                With Selection.Font
                    .ThemeColor = xlThemeColorDark1
                    .TintAndShade = 0
                End With
                Selection.Font.Bold = True
                ActiveWindow.ScrollColumn = 4
                ActiveWindow.ScrollColumn = 5
                ActiveWindow.ScrollColumn = 6
                ActiveWindow.ScrollColumn = 5
                ActiveWindow.ScrollColumn = 4
                ActiveWindow.ScrollColumn = 3
                Range("A1").Select
            Case Else

            End Select
        Next
    End With
msgbox "Ha terminado el proceso de formatear la hoja de calculo"
End Sub
 
#15
Bueno yo ahora no tengo el office 2013 instalado pero supongo que es igual que el del 2010.
Vas a opciones en el menu archivo.
Vas a la opción personalizar cinta opciones.
Activar la casilla de PROGRAMADOR de la cinta de opciones FICHAS PRINCIPALES
Ahora tendrás en el menu encima de la hoja una solapa que pone programador y si pinchas en ella veras las herramientas de programación y macros.
 

davidn

Gran experto
#16
Ok, gracias.
En el 2013 es igual, solo que a "programador" lo llaman "desarrollador".
La hoja exel queda muy bien, además solo ocultando (o eliminando) columnas queda perfecto para pedir presupuestos a los constructores(y)

Edito: Acabo de ver las "Pestañitas" con números que muestran u ocultan filas y columnas en bloque.
 
#17
Estimados usuarios.
Se ha añadido la opción de DAR FORMATO A LA HOJA en el programa EXCELTOBC3 ( se ha aprovechado la ocasión para introducir algunas mejoras) y que se puede descargar gratuitamente desde la página https://www.bc3toexcel.com
Se ruega notificar cualquier fallo de las rutinas para su mejora continua.
Saludos
 
#18
Algunos usuarios están convirtiendo ficheros BC3 de BASES de PRECIOS a hojas de Excel que la rutina BC3TOEXCEL puede hacer ( si no son bases paramétricas) pero al ser bases de precios muy grandes y el tiempo del servidor en Internet es muy limitado estas conversiones pueden verse truncadas porque no le da tiempo al servidor a procesar toda la información.
En ese caso intentarlo de nuevo desactivando la opción de descomposición de precios por si se gana el tiempo suficiente para procesar completamente aunque luego la base de precios en Excel quede sin la definición de la composición de los precios descompuestos.
Por eso digo que la utilidad es para Presupuestos en BC3 ( que son mucho mas pequeños).
 
#19
En aquellos casos en que el fichero BC3 trae un porcentaje de costes indirectos "OCULTO" para realizar una oferta ( por ejemplo 3% ) NO es aconsejable incluir la opción "Con las descomposiciones de los precios" porque el calculo de los mismos añade una diferencia respecto al calculo que se hace en el presupuesto que viene en el BC3 en el que simplemente se ha añadido un 3% en el precio final de todas las partidas pero no alterando la descomposición de cada precio para llegar a ese valor.

En los casos en los que haya que presentar un cuadro de precios descompuestos hay que tener en cuenta que hay precios descompuestos (Supercompuestos ó Complejos ) que pueden ser ( a la vez ) partidas de obra directamente en el presupuesto así como ser parte integrante en la descomposición de otros precios y por lo tanto hay que ser conscientes de que no se puede cargar un 3% de c.i. en el propio calculo del precio en su descomposición y volverle a cargar otro 3% cuando forma parte de otro precio porque es cargar 2 veces y según sea la cantidad que del precio forme parte en otro descompuesto se nota bastante. La cuestión es que en este caso y para que pueda todo el sistema del presupuesto ser coherente no coincidirá con el importe del presupuesto en el BC3.

Perdonad la chapa en general pero para aquellos que usan la utilidad les será aclaratorio del porque se producen ciertas diferencias en algunas conversiones.
 
Arriba