none
Guardar desde Visual Basic en Excel RRS feed

  • Pregunta

  • Buenas tardes, Estimados

    Necesito guardar desde visual studio 2015 en Excel, la rutina que tengo actualmente me funciona pero no guarda la información como se requiere, es decir, cada vez que presiono el botón guardar debe añadir la información una debajo de la otra, lo que hace el código es simplemente sustituir la celda que se guardó previamente. Copio el código que utilizo para guardar. Espero puedan ayudarme.

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

            Dim oExcel As Object
            Dim oBook As Object
            Dim oSheet As Object

            'Iniciar un nuevo libro en Excel 
            oExcel = CreateObject("Excel.Application")
            oBook = oExcel.Workbooks.add  '("C:\Users\eriva\Desktop\Ductos.xls") 'Libro donde se exportarán los datos del Proyecto

            'Agregar datos a las celdas a la hoja "Sheet1" del libro "Ductos1" 
            oSheet = oBook.WorkSheets(1)

             oSheet.Range("A9").Value = "DUCTOS SUMINISTRO"

                'Esta celda contendrá el nombre del Proyecto
                oSheet.Range("C5:E5").Merge(True)
                oSheet.Range("A5:B5").Merge(True)
                oSheet.Range("A5").Value = "Nombre del Proyecto:"

                'Esta celda contendrá el nombre del Proyectista
                oSheet.Range("C6:E6").Merge(True)
                oSheet.Range("A6:B6").Merge(True)
                oSheet.Range("A6").Value = "Nombre del Proyectista:"

                'Esta celda contendrá el nombre de la Empresa
                oSheet.Range("C7:E7").Merge(True)
                oSheet.Range("A7:B7").Merge(True)
                oSheet.Range("A7").Value = "Nombre de la Empresa:"

                oSheet.Range("A10").Value = "tramo"
                oSheet.Range("B10").Value = "Caudal de Diseño     PCM"
                oSheet.Range("C10").Value = "Velocidad de Diseño     pie/min"
                oSheet.Range("D10").Value = "Factor de Fricción"
                oSheet.Range("E10").Value = "Diámetro Equivalente     in"
                oSheet.Range("F10").Value = "Alto del Ducto     in"
                oSheet.Range("G10").Value = "Ancho del Ducto     in"
                oSheet.Range("H10").Value = "Longitud del Ducto      mts"
                oSheet.Range("I10").Value = "Longitud del Ducto Equivalente     ft"
                oSheet.Range("J10").Value = "Espesor"
                oSheet.Range("K10").Value = "Calibre"
                oSheet.Range("L10").Value = "Kg Ductos"
                oSheet.Range("M10").Value = "M2 Aislante"
                oSheet.Range("N10").Value = "Delpa P    in.c.a."

                 ' Esta es la rutina que debo guardar cada vez que presiono el botón

                    oSheet.Range("A09").End(XlDirection.xlDown).Offset(1, 0) = Tramo
                    oSheet.Range("B09").End(XlDirection.xlDown).Offset(1, 0) = Qdiseño
                    oSheet.Range("C09").End(XlDirection.xlDown).Offset(1, 0) = Velocidad2
                    oSheet.Range("D09").End(XlDirection.xlDown).Offset(1, 0) = FactorFriccion
                    oSheet.Range("E09").End(XlDirection.xlDown).Offset(1, 0) = Diameduct
                    oSheet.Range("F09").End(XlDirection.xlDown).Offset(1, 0) = Larcduct
                    oSheet.Range("G09").End(XlDirection.xlDown).Offset(1, 0) = Anchduct
                    oSheet.Range("H09").End(XlDirection.xlDown).Offset(1, 0) = Longducto
                    oSheet.Range("I90").End(XlDirection.xlDown).Offset(1, 0) = (Longducto * 3.28084)
                    oSheet.Range("J90").End(XlDirection.xlDown).Offset(1, 0) = espesor
                    oSheet.Range("K09").End(XlDirection.xlDown).Offset(1, 0) = calibre
                    oSheet.Range("L09").End(XlDirection.xlDown).Offset(1, 0) = (Anchduct + Larcduct) * espesor * Longducto * 11.64
                    oSheet.Range("M09").End(XlDirection.xlDown).Offset(1, 0) = (Anchduct + Larcduct + 4) * Longducto * 0.1016
                    oSheet.Range("N09").End(XlDirection.xlDown).Offset(1, 0) = ((Longducto * 3.28084 * FactorFriccion) / 100) * 1.05

                   ' hacemos visible el documento

                    oExcel.Visible = True

                    oExcel.UserControl = True

                    'Guardaremos el documento en el escritorio con el nombre prueba

                    oBook.SaveAs(Environ("UserProfile") & "\desktop\Ductos1.xls")

    End Sub

    De antemano muchas gracias.

    Saludos!!!

    • Cambiado Joyce_AC miércoles, 22 de febrero de 2017 15:59
    martes, 21 de febrero de 2017 21:56