Extraer de textbox a celda excel

Quisiera que me ayudaras a encontrar una solución a mi problema, he buscado por varias páginas de internet y no he encontrado lo que realmente busco, mi caso es el siguiente: estoy trabajando en visual basic 6 en un proyecto para mi escuela sobre poner datos en varios textbox números y letras, aparte también tengo varios combobox y un botón de comando que dice guardar hoja, pero no se programar aparte soy una papa... Para que el text box, combobox manden sus datos directo a celdas cuando aprieto el botón de comando. Lo único que he encontrado es una linea de comando que dice como hacerlo pero la verdad es que no se como empezar ni nada de eso me marca error. Aparte encontré una página de microsoft que me dice como pasar una matriz de datos en 3 columnas pero estas operaciones son otra cosa, mira te paso el código, lo que me intereso de ese código es que guarda en excel los datos que esta realizando (lo que me interesaría es quitar lo que hace y ponerle las lineas que necesito de extracción de datos de mis textbox y combobox), espero me puedas ayudar ya que no se a quien más recurrir con mi problema, gracias y espero tu respuesta. Saludos.
Dim oExcel As Object
   Dim oBook As Object
   Dim oSheet As Object
   'Start a new workbook in Excel
   Set oExcel = CreateObject("Excel.Application")
   Set oBook = oExcel.Workbooks.Add
   'Create an array with 3 columns and 100 rows
   Dim DataArray(1 To 100, 1 To 3) As Variant
   Dim r As Integer
   For r = 1 To 100
      DataArray(r, 1) = "ORD" & Format(r, "0000")
      DataArray(r, 2) = Rnd() * 1000
      DataArray(r, 3) = DataArray(r, 2) * 0.7
   Next
   'Add headers to the worksheet on row 1
   Set oSheet = oBook.Worksheets(1)
   oSheet.Range("A1:C1").Value = Array("Order ID", "Amount", "Tax")
   'Transfer the array to the worksheet starting at cell A2
   oSheet.Range("A2").Resize(100, 3).Value = DataArray
   'Save the Workbook and Quit Excel
   OBook. SaveAs "C:\Book1.xls"
   OExcel. Quit

1 respuesta

Respuesta
1
Set objexcel = New Excel.Application
Set xLibro = objexcel.Workbooks.Open("D:\Visual Basic\Sistema_Empresa_Rojas\DIAS TRABAJADOS.xls")
With xLibro
    With .Sheets(1)
    .Cells(2, 1) = CmbTraba.Text
    .Cells(1, 1) = "Dias trabajados entre el :" & DTPicker1(0) & " y el :" & DTPicker1(1)
    Set recSql = New ADODB.Recordset
    If OptClientes(0).value = True Then
        recSql.Open "Select * From rendicion " & _
        "WHERE fecha_r Between '" & Fecha_Inicial & "' And '" & Fecha_Final & "' and nombre_Chofer='" & Trim(CmbTraba.Text) & "' order by fecha_r asc", cnXn, adOpenDynamic, adLockOptimistic
            If Not recSql.EOF Then
            fin = Val(LblTrabajadores(6).Caption) - 1
                For i = 0 To fin
                    .Cells(i + 4, 2) = recSql!fecha_r
                    .Cells(i + 4, 3) = recSql!n_desp
                    contar = Len(recSql!destino)
                    cadena = Left(recSql!destino, contar - 1)
                    .Cells(i + 4, 4) = UCase(cadena)
                    .Cells(i + 4, 5) = "1"
                    .Cells(39, 5) = LblTrabajadores(6).Caption
                    'algo = LblTrabajadores(7).Caption
                    .Cells(40, 5) = LblTrabajadores(7).Caption
                    recSql.MoveNext
                Next
            End If
    End If
    If OptClientes(1).value = True Then
        recSql.Open "Select embarque.peoneta, " & _
                           "embarque.ingresada, " & _
                           "rendicion.n_desp, " & _
                           "rendicion.destino " & _
                           "From rendicion    " & _
                           "Inner Join embarque on embarque.embarque = rendicion.n_desp " & _
                           "And embarque.ingresada " & _
                           "Between '" & Fecha_Inicial & "' And '" & Fecha_Final & "'" & _
                           "And embarque.peoneta='" & Trim(CmbTraba.Text) & "'" & _
                           "order by ingresada asc", cnXn, adOpenDynamic, adLockOptimistic
            If Not recSql.EOF Then
            fin = Val(LblTrabajadores(6).Caption) - 1
                For i = 0 To fin
                    .Cells(i + 4, 2) = recSql.Fields("ingresada")
                    .Cells(i + 4, 3) = recSql.Fields("n_desp")
                    contar = Len(recSql.Fields("destino"))
                    cadena = Left(recSql.Fields("destino"), contar - 1)
                    .Cells(i + 4, 4) = UCase(cadena)
                    .Cells(i + 4, 5) = "1"
                    .Cells(39, 5) = LblTrabajadores(6).Caption
                    'algo = LblTrabajadores(7).Caption
                    .Cells(40, 5) = LblTrabajadores(7).Caption
                    recSql.MoveNext
                Next
            End If
    End If
    End With
End With
'xLibro.Saved = True
'xLibro.PrintOut
objexcel.Visible = True
'Set objexcel = Nothing
'Set xLibro = Nothing
End If
Utiliza esto como ejemplo, en el fondo lo que tienes que saber es donde poner los datos, la opción .Cells() significa en que celda poner lo que quieres y ahí le pasas los parámetros en que fila o que columna quieres que inserte el dato, seria así .Cells(1,1) eso dice que insertaras los datos en la primera fila de la columna 1 (Columna A), cualquier cosa me escribes, suerte
Hola, gracias por tu código y me ha servido pero ahora l anueva pregunta que tengo es que tengo abiertas 2 ventanas de los exe que genere desde visual basic, uno de ellos tienen la linea de comando que pasa la información de los textbox a la hoja numero 2, lo que quiero hacer es que esas dos ventanas guarden la información dentro de un mismo libro de excel pero en diferentes hojas, ¿se podrá hacer esto? Lo que tengo hasta ahorita es que una ventana guarda los datos en la hoja 1 y la otra ventana guarda los datos en la hoja 2 pero sobreescribe la hoja 1 y cuando quiero ver los datos escritos de la hoja 1 por la ventana 1 esta en blanco ya que sobreescribio la ventana 2 en la hoja 2... espero me puedas ayudar... o darme una solución alterna a este problemita... saludos...
Tienes que decir en libro o Sheets quieres guardarlo, como en el ejemplo que te mande aparece .Sheets(1), eso quiere decir que estas trabajando en el libro 1, ahora si quieres que sea en el libro 2 debes ponerlo así .Sheets(2), y así en los libros que quieras siempre y cuando existan los libros que le estas diciendo al programa.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas