Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

DUDA SOBRE VB6 y Excel

Estas en el tema de DUDA SOBRE VB6 y Excel en el foro de Visual Basic clásico en Foros del Web. Hola, Tengo una consulta, espero puedan ayudarme, quiero ingresar diferentes datos a una hoja de excel a travez de un formulario hecho en VB6. Mis ...
  #1 (permalink)  
Antiguo 19/11/2009, 12:10
 
Fecha de Ingreso: noviembre-2009
Mensajes: 14
Antigüedad: 14 años, 5 meses
Puntos: 0
Pregunta DUDA SOBRE VB6 y Excel

Hola,
Tengo una consulta, espero puedan ayudarme, quiero ingresar diferentes datos a una hoja de excel a travez de un formulario hecho en VB6. Mis primeros datos los ingreso sin problemas, sin embargo cuando quiero ingresar nuevos datos estos reemplazan a los primeros. Quisiera saber si existe la forma de ir llenando la lista sin chancar la información ya existente.
A continuación pego mi codigo si es que sirve de algo. Muchas gracias por la atención prestada.

Option Explicit
Private Sub Command1_Click()
Dim txt1, txt2, txt3 As String
Dim txt4 As Integer
Dim openExcel As New Excel.Application
Dim Libro As Excel.Workbook
Dim Hoja As Excel.Worksheet
openExcel.Visible = True
Set Libro = openExcel.Workbooks.Open("c:\excel.xls")
Set Hoja = Libro.Worksheets(1)
Hoja.Name = "Ficha de Postulante"
Hoja.Cells(2, 2).FormulaR1C1 = Text1.Text
Hoja.Cells(2, 3).FormulaR1C1 = Text2.Text
Hoja.Cells(2, 4).FormulaR1C1 = Text3.Text
Hoja.Cells(2, 5).FormulaR1C1 = Text4.Text
Libro.Save
openExcel.Quit
Set Hoja = Nothing
Set Libro = Nothing
Set openExcel = Nothing
End Sub
  #2 (permalink)  
Antiguo 20/11/2009, 06:26
 
Fecha de Ingreso: enero-2007
Ubicación: 9 de julio
Mensajes: 111
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: DUDA SOBRE VB6 y Excel

Hola, si eso que mencionas sucece porque tenes las direcciones de las columnas fijas.
Aca va un codigo que te permite, cada vez que abrir el archivo, ver cual es la ultima columna ocupada y escribir a partir de ahi
Espero te sirva

Código:
Private Sub Command1_Click()
Dim txt1, txt2, txt3 As String, txt4 As Integer
Dim openExcel As New Excel.Application
Dim Libro As Excel.Workbook, Hoja As Excel.Worksheet
Dim Aux As Integer
openExcel.Visible = True

Set Libro = openExcel.Workbooks.Open("c:\excel.xls")
Set Hoja = Libro.Worksheets(1)
'Aca guardamos la ultima columna ocupada
Aux = openExcel.Range("a2").CurrentRegion.Columns.Count

Hoja.Name = "Ficha de Postulante"
Hoja.Cells(2, Aux + 1).Value = Text1.Text 
Hoja.Cells(2, Aux + 2).Value = Text2.Text 
Hoja.Cells(2, Aux + 3).Value = Text3.Text 
Hoja.Cells(2, Aux + 4).Value = Text4.Text 

'Esto es para que no te de el mensaje que el archivo ya existe
openExcel.DisplayAlerts = False
Libro.Save
'Activamos los alertas nuevamente
openExcel.DisplayAlerts = True
openExcel.Quit
Set Hoja = Nothing
Set Libro = Nothing
Set openExcel = Nothing
End Sub
  #3 (permalink)  
Antiguo 20/11/2009, 08:29
 
Fecha de Ingreso: noviembre-2009
Mensajes: 14
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: DUDA SOBRE VB6 y Excel

Muchas Gracias!!, pero si quisiera que los datos se ingresaran de manera horizontal, osea digamos hacia abajo, como deberia ir mi codigo? modifico la misma linea de aux?
  #4 (permalink)  
Antiguo 20/11/2009, 08:41
 
Fecha de Ingreso: enero-2007
Ubicación: 9 de julio
Mensajes: 111
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: DUDA SOBRE VB6 y Excel

En ese caso, deberias usar la propiedd rows para saber desde donde seguirias agregando. y Cambiar en que columna queres los datos Seria asi (para la columna A)

Código:
Private Sub Command1_Click()
Dim txt1, txt2, txt3 As String, txt4 As Integer
Dim openExcel As New Excel.Application
Dim Libro As Excel.Workbook, Hoja As Excel.Worksheet
Dim Aux As Integer
openExcel.Visible = True

Set Libro = openExcel.Workbooks.Open("c:\excel.xls")
Set Hoja = Libro.Worksheets(1)
'Aca guardamos la ultima columna ocupada
Aux = openExcel.Range("a2").CurrentRegion.rows.Count

Hoja.Name = "Ficha de Postulante"
Hoja.Cells(Aux + 1, 1).Value = Text1.Text 
Hoja.Cells(Aux + 2, 1).Value = Text2.Text 
Hoja.Cells(Aux + 3, 1).Value = Text3.Text 
Hoja.Cells(Aux + 4, 1).Value = Text4.Text 

'Esto es para que no te de el mensaje que el archivo ya existe
openExcel.DisplayAlerts = False
Libro.Save
'Activamos los alertas nuevamente
openExcel.DisplayAlerts = True
openExcel.Quit
Set Hoja = Nothing
Set Libro = Nothing
Set openExcel = Nothing
End Sub
Espero te sirva
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:59.