Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Mary en 27 de Agosto 2015, 19:27

Título: Visual Basic copiar datos de un datagridview a otro con HeaderText
Publicado por: Mary en 27 de Agosto 2015, 19:27
Hola, estoy intentando pasar los datos de un datagridview a otro datagridview, de forma que los HeaderText del primer datagridview se me copian en las filas de la primera columna del segundo datagridview (sería algo así como transponer filas por columnas en los datagridviews)

Como el primer datagridview tiene muchas columnas, me gustaría poder hacerlo mediante bucles: el datagridview25 es el que tiene los 79 Headertext que hay que poner en las filas de la primera columna del datagridview31


Código: [Seleccionar]
For i = 0 To DataGridView25.ColumnCount - 1

            Dim j As Integer

            For j = 0 To DataGridView31.RowCount - 1
                DataGridView31.Rows(j + 1).Cells(0).Value = DataGridView25.Columns(i).HeaderText
            Next


        Next

Pero cuando aplico el código me sale error:
El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección.
Nombre del parámetro: index


Básicamente lo que necesito conseguir es lo siguiente

datagridview25

id    nombre      código       color
0      Luis             95           azul
1      José            102          verde
2      Eva             200          rojo



datagridview31

nombre     Luis
código       95
color          azul

¿Alguien sabría que hay incorrecto en el bucle? Gracias.
Título: Re:copiar datos de un datagridview a otro
Publicado por: Mary en 27 de Agosto 2015, 21:18
Hola de nuevo,
he conseguido encontrar el fallo. Pongo a continuación el código por si a alguien le pudiera servir.

Código: [Seleccionar]
DataGridView31.ColumnCount = 2
        DataGridView31.RowCount = 81

        Me.DataGridView31.Columns(0).HeaderText = "NOMBRE"
        Me.DataGridView31.Columns(1).HeaderText = "CÓDIGO"

        If (DataGridView31.Rows.Count > 0) Then

            For i = 0 To DataGridView25.ColumnCount - 1
                'If DataGridView25.Columns(i).Visible = True Then
                Dim j As Integer


                For j = i To DataGridView25.ColumnCount - 1
                    DataGridView31.Rows(j).Cells(0).Value = DataGridView25.Columns(i).HeaderText
                Next


                For j = i To DataGridView25.ColumnCount - 1
                    DataGridView31.Rows(j).Cells(1).Value = DataGridView25.Rows(0).Cells(i).Value
                Next
            Next

        End If
Título: Re:copiar datos de un datagridview a otro
Publicado por: Alex Rodríguez en 27 de Agosto 2015, 22:27
Gracias por pegar el código con la solución, como dices le puede servir a otras personas

Saludos