none
Contraer filas Range().Group Excel VB.NET RRS feed

  • Pregunta

  • Buenas

    Estoy usando la función

    HojaExcel.Range("A1","T15").Group(true, , , )

    Funciona bien pero quisiera saber si hay alguna forma de que esa agrupación se vea contraída desde que se genera, lo explico mejor con las imágenes

    Como lo genera:

    http://subirimagen.me/uploads/20171121101442.JPG

    Como lo necesito:

    http://subirimagen.me/uploads/20171121101554.JPG

    Se agradece cualquier ayuda

    • Cambiado Enrique M. Montejo viernes, 24 de noviembre de 2017 15:25 Programación con Microsoft Excel.
    martes, 21 de noviembre de 2017 16:17

Todas las respuestas

  • Hola  Geovanny Fallas

    Con base a tu consulta, ¿podrías ser un poco más específico y colocar el código para que se te pueda brindar el apoyo que requieres?

    Quedamos al pendiente de cualquier actualización de tu parte.

    Pablo Rubio
    _____
     
    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
     
    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.
     
    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    martes, 21 de noviembre de 2017 17:39
  • muchas gracias por responder

    Adjunto el código pero mi duda es la que adjunte en las imágenes, estoy usando VB.Net 2010 y estoy generando un Excel, cuando uso el metodo o_Hoja.Range(“A15”,”T10”).Group(True, , , ) los rangos son de ejemplo. Cuando me genera el Excel el código agrupa bien las filas pero yo quiero adicional que las filas se vean contraídas en lugar de que se vean expandidas

    El Hoja.Range(RangoDefinido).Group(True, , , ) me genera el Excel agrupado pero expandido de esta manera

    http://subirimagen.me/uploads/20171121101442.JPG

    Yo quiero que aparte de agrupar las filas se vean contraídas:

    http://subirimagen.me/uploads/20171121101554.JPG

    Private Sub ExcelVentasNuevo()

            Try

                Dim StrRuraNombreArchivo As String = vbNullString, o_Excel As Object, o_Libro As Object, o_Hoja As Object

                StrRuraNombreArchivo = "\\172.16.119.19\Compartida\Geovanny\Excel Ventas Nuevo"

                o_Excel = CreateObject("Excel.Application")

                o_Libro = o_Excel.Workbooks.Add

                o_Hoja = o_Libro.Worksheets.Add

                o_Hoja.Name = "Comparativo Anual"

                o_Hoja.Columns("A:T").AutoFit()

                o_Hoja.Rows(1).Font.Bold = True

                o_Hoja.Cells(1, 2).Value = "Ventas"

                o_Hoja.Cells(1, 9).Value = "Clientes"

                o_Hoja.Cells(1, 13).Value = "Items"

                o_Hoja.Cells(1, 17).Value = "Tiquete Promedio"

                o_Hoja.Cells(2, 2).Value = "Real Acum"

                o_Hoja.Cells(2, 3).Value = "Logro %"

                o_Hoja.Cells(2, 4).Value = "Presupuesto"

                o_Hoja.Cells(2, 5).Value = "Var"

                o_Hoja.Cells(2, 6).Value = "Año Anterior"

                o_Hoja.Cells(2, 7).Value = "Crec %"

                o_Hoja.Cells(2, 8).Value = "Crec Col"

                o_Hoja.Cells(2, 9).Value = "Real Acum"

                o_Hoja.Cells(2, 10).Value = "Año Anterior"

                o_Hoja.Cells(2, 11).Value = "Crec %"

                o_Hoja.Cells(2, 12).Value = "Var"

                o_Hoja.Cells(2, 13).Value = "Real Acum"

                o_Hoja.Cells(2, 14).Value = "Año Anterior"

                o_Hoja.Cells(2, 15).Value = "Crec %"

                o_Hoja.Cells(2, 16).Value = "Var"

                o_Hoja.Cells(2, 17).Value = "Promedio"

                o_Hoja.Cells(2, 18).Value = "Año Anterior"

                o_Hoja.Cells(2, 19).Value = "Crec %"

                o_Hoja.Cells(2, 20).Value = "Var"

                CargaDatosExcelVentas()

                Dim Linea As Integer = 3

                Dim PasoAnt As Integer = 1

                Dim InicioAgrupacion As String = "A11"

                Dim FinAgrupacion As String = "0"

                For Intx As Integer = 0 To DataTableExcelVentas.Rows.Count() - 1

                    If DataTableExcelVentas.Rows(Intx).Item("Paso") <> PasoAnt Then

                        Linea += 1

                    End If

                    o_Hoja.Cells(Linea, 1).Value = DataTableExcelVentas.Rows(Intx).Item("Descrip")

                    FinAgrupacion = "0"

                    If DataTableExcelVentas.Rows(Intx).Item("Descrip").ToString.Contains("Total") = True Then

                        If DataTableExcelVentas.Rows(Intx).Item("Tipo") = 999 Then

                            FinAgrupacion = "T" + (Linea - 1).ToString

                            o_Hoja.Range(InicioAgrupacion, FinAgrupacion).Group(True, , , )

                            InicioAgrupacion = "A" + (Linea + 1).ToString

                        End If

                    End If

                    If DataTableExcelVentas.Rows(Intx).Item("Tipo") = 888 Then

                        InicioAgrupacion = "A" + (Linea + 1).ToString

                    End If

                    If DataTableExcelVentas.Rows(Intx).Item("Paso") = 2 Then

                        o_Hoja.Cells(4, 8).Value = DataTableExcelVentas.Rows(Intx).Item("RealAcu")

                        o_Hoja.Cells(5, 8).Value = DataTableExcelVentas.Rows(Intx).Item("Logro")

                        o_Hoja.Cells(6, 8).Value = DataTableExcelVentas.Rows(Intx).Item("Presu")

                        o_Hoja.Cells(7, 2).Value = DataTableExcelVentas.Rows(Intx).Item("varVentas")

                        o_Hoja.Cells(8, 2).Value = DataTableExcelVentas.Rows(Intx).Item("VentaAnoAnterior")

                    Else

                        If DataTableExcelVentas.Rows(Intx).Item("Orden") <> 0 Then

                            o_Hoja.Cells(Linea, 2).Value = DataTableExcelVentas.Rows(Intx).Item("RealAcu")

                            o_Hoja.Cells(Linea, 3).Value = DataTableExcelVentas.Rows(Intx).Item("Logro")

                            o_Hoja.Cells(Linea, 4).Value = DataTableExcelVentas.Rows(Intx).Item("Presu")

                            o_Hoja.Cells(Linea, 5).Value = DataTableExcelVentas.Rows(Intx).Item("varVentas")

                            o_Hoja.Cells(Linea, 6).Value = DataTableExcelVentas.Rows(Intx).Item("VentaAnoAnterior")

                            o_Hoja.Cells(Linea, 7).Value = DataTableExcelVentas.Rows(Intx).Item("CrecPorcV")

                            o_Hoja.Cells(Linea, 8).Value = DataTableExcelVentas.Rows(Intx).Item("CrecColV")

                        End If

                    End If

                    If DataTableExcelVentas.Rows(Intx).Item("Paso") = 2 Then

                        Linea = 10

                    Else

                        Linea += 1

                    End If

                    PasoAnt = DataTableExcelVentas.Rows(Intx).Item("Paso")

                Next

                o_Hoja.Cells(3, 1).Value = "Total GESSA"

                o_Libro.Close(True, StrRuraNombreArchivo)

                o_Excel.Quit()

                o_Excel = Nothing

                o_Libro = Nothing

                o_Hoja = Nothing

            Catch ex As Exception

                MsgBox("Ocurrió el Siguiente Error: " & ex.Message, MsgBoxStyle.Critical, "ExportarExcelMachote")

            End Try

        End Sub


    martes, 21 de noviembre de 2017 20:21
  • Buenas, no se si quedo claro con la segunda explicación, si no sabes la respuesta igual me lo mencionas
    miércoles, 22 de noviembre de 2017 20:13