none
Agregar Fila y numero con los datos que se capturen de la aplicación VB.NET a un archivo Excel existente RRS feed

  • Pregunta

  • Buen día, necesito con urgencia alguien que  me pueda ayudar a esto, ya que tengo días intentando y buscando información y no logro hacerlo. Lo que pasa es que al cargar los datos de mi aplicación de Visual Studio (VB.NET) a una hoja de excel existente, estos me los encima o remplaza en la misma fila y lo que quiero es que  estos datos se vayan agregando a la fila con su respectivo numero, he visto que lo hacen con un contador(bucle) pero usando un listview o datagridview, pero esto ami no me sirve ya que mi base de datos la tengo en ese archivo excel.

    Muchas Gracias, espero me puedan ayudar. Saludos


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

    Dim ORDI As Microsoft.Office.Interop.Excel.Application Dim Excel As New Microsoft.Office.Interop.Excel.Application Dim strRutaExcel As String strRutaExcel = "C:\Users\dhernaal\Documents\Damian\ORDENES DIARIAS NUEVA.xls" ORDI = CreateObject("Excel.Application") ORDI.Workbooks.Open(strRutaExcel) ORDI.Visible = True 'DECLARAR VARIABLES Dim clave1 As String Dim tipo As String ''INGRESAR DATOS clave1 = txt1.Text tipo = cb1.Text ''AGREGAR DATOS EN LAS CELDAS ORDI.Range("B7").Value = (txt1.Text) ORDI.Range("C7").Value = (cb1.Text) 'OPERACION COUNT ''VARIABLES PARA AGREGAR FILAS 'QUITAR() ORDI.Quit() ''LIMPIAR DATOS txt1.Clear()



    miércoles, 14 de febrero de 2018 22:35

Respuestas

  • EL problema está en donde haces esto:

            ORDI.Range("B7").Value = (txt1.Text)        ORDI.Range("C7").Value = (cb1.Text)

    Ese "B7" y "C7" tendrían que ir cambiando de forma que el 7 se cambie por 8, luego por 9, etc. cada vez que añadas una fila nueva. Es una simple variable de tipo string, puedes construirla sobre la marcha concatenando con una variable numérica:

            ORDI.Range("B" & numFila).Value = (txt1.Text)        ORDI.Range("C" & numFila).Value = (cb1.Text)

    Y luego esa variable numFila la vas incrementando por cada fila que grabes.

    • Propuesto como respuesta Pablo Rubio jueves, 15 de febrero de 2018 23:31
    • Marcado como respuesta Pablo Rubio lunes, 19 de febrero de 2018 15:15
    jueves, 15 de febrero de 2018 7:24
  • como puedo hacerle para que la variable numfila pueda incrementar como comentas.

    Estooo...

         numFila = numFila+1

    o lo que es lo mismo

        numfila += 1

    Comprendo que algunas cosas puedan ser complicadas para alguien nuevo, pero sumarle una unidad a una variable debería estar al alcance de los principiantes más principiantes.

    Evidentemente ese código hay que meterlo en el sitio donde tomes la decisión de pasar a grabar una nueva línea, que podría ser dentro del propio Button1_Click si es que el botón se pulsa cada vez que quieres grabar una línea nueva.

    Obviamente, hay que declarar e inicializar la variable dentro de la clase del Form:

    Dim numFila as Integer = 7

    En el ejemplo te he puesto un 7 presumiendo que comienzas a grabar en la fila 7, pero ahí tendrás que poner el número de la primera fila que quieras grabar la primera vez que pulses el botón.

    • Marcado como respuesta Pablo Rubio lunes, 19 de febrero de 2018 15:15
    viernes, 16 de febrero de 2018 11:43

Todas las respuestas

  • EL problema está en donde haces esto:

            ORDI.Range("B7").Value = (txt1.Text)        ORDI.Range("C7").Value = (cb1.Text)

    Ese "B7" y "C7" tendrían que ir cambiando de forma que el 7 se cambie por 8, luego por 9, etc. cada vez que añadas una fila nueva. Es una simple variable de tipo string, puedes construirla sobre la marcha concatenando con una variable numérica:

            ORDI.Range("B" & numFila).Value = (txt1.Text)        ORDI.Range("C" & numFila).Value = (cb1.Text)

    Y luego esa variable numFila la vas incrementando por cada fila que grabes.

    • Propuesto como respuesta Pablo Rubio jueves, 15 de febrero de 2018 23:31
    • Marcado como respuesta Pablo Rubio lunes, 19 de febrero de 2018 15:15
    jueves, 15 de febrero de 2018 7:24
  • Buen día, gracias por responder, sinceramente soy nuevo en esto jejeje, me gustaría saber como puedo hacerle para que la variable numfila pueda incrementar como comentas.

    Muchas Gracias y Saludos

    viernes, 16 de febrero de 2018 0:20
  • como puedo hacerle para que la variable numfila pueda incrementar como comentas.

    Estooo...

         numFila = numFila+1

    o lo que es lo mismo

        numfila += 1

    Comprendo que algunas cosas puedan ser complicadas para alguien nuevo, pero sumarle una unidad a una variable debería estar al alcance de los principiantes más principiantes.

    Evidentemente ese código hay que meterlo en el sitio donde tomes la decisión de pasar a grabar una nueva línea, que podría ser dentro del propio Button1_Click si es que el botón se pulsa cada vez que quieres grabar una línea nueva.

    Obviamente, hay que declarar e inicializar la variable dentro de la clase del Form:

    Dim numFila as Integer = 7

    En el ejemplo te he puesto un 7 presumiendo que comienzas a grabar en la fila 7, pero ahí tendrás que poner el número de la primera fila que quieras grabar la primera vez que pulses el botón.

    • Marcado como respuesta Pablo Rubio lunes, 19 de febrero de 2018 15:15
    viernes, 16 de febrero de 2018 11:43
  • Buen dia, gracias por la ayuda, solo que al momento de enviar los datos a excel me sigue remplazando el texto en la misma fila, ya que no me los va incrementando. ¿A que se deberá esto?


    viernes, 16 de febrero de 2018 20:02
  • Seguro que se debe a que hay algún error en algún sitio y no está haciendo bien el cálculo de la variable o de la celda.

    Cuando pasan estas cosas, se recurre al Debugger en Visual Studio: Se pone un punto de ruptura (breakpoint) en el código y se ejecuta paso a paso, examinando una por una las sentencias que ejecuta y viendo lo que van valiendo las variables en cada momento hasta que encuentres el sitio donde se produce la discrepancia y no adquieren el valor que deberían tener.

    Si no sabes usar el debugger de Visual Studio, merece la pena que dediques un par de horas a aprenderlo, porque te las ahorrarás con creces en el tiempo dedicado a conseguir que tus programas funcionen.

    viernes, 16 de febrero de 2018 20:53