Autor Tema: Visual Basic copiar datos de un datagridview a otro con HeaderText  (Leído 9089 veces)

Mary

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 39
    • Ver Perfil
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.
« Última modificación: 27 de Agosto 2015, 22:28 por Alex Rodríguez »

Mary

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 39
    • Ver Perfil
Re:copiar datos de un datagridview a otro
« Respuesta #1 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

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:copiar datos de un datagridview a otro
« Respuesta #2 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

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".