Programar base de datos en excel

Buenas tardes, agradecería tu colaboración. Este es el resultado del programa que estoy haciendo para cargar una base de datos:
Private Sub cmdAddDate_Click()
Respuesta = MsgBox("¿Desea agregar otro registro?", vbYesNo)
If Respuesta = vbYes Then
Selection.EntireRow.Insert
txtmateq = ""
txtcity = ""
txtcompany = ""
txtcontact = ""
txtaddress = ""
txtphone = ""
ComboBox1 = ""
txtmateq.SetFocus
Else
End If
End Sub
Private Sub cmdexit_Click()
End
End Sub
Private Sub ComboBox1_Enter()
On Error Resume Next
ComboBox1.Clear
For i = 1 To Sheets.Count
ComboBox1.AddItem Sheets(i).Name
Next
End Sub
Private Sub ComboBox1_Click()
Hoja_seleccionada = ComboBox1.List(ComboBox1.ListIndex)
If Hoja_seleccionada = "MATERIALES" Then
Set LastRow = Sheets(Hoja_seleccionada).Range("b65536").End(xlUp)
LastRow.Offset(1, 0).Value = txtmateq.Text
LastRow.Offset(1, 1).Value = txtcity.Text
LastRow.Offset(1, 2).Value = txtcompany.Text
LastRow.Offset(1, 3).Value = txtcontact.Text
LastRow.Offset(1, 4).Value = txtaddress.Text
LastRow.Offset(1, 5).Value = txtphone.Text
Else
If Hoja_seleccionada = "EQUIPOS" Then
Set LastRow = Sheets(Hoja_seleccionada).Range("b65536").End(xlUp)
LastRow.Offset(1, 0).Value = txtmateq.Text
LastRow.Offset(1, 1).Value = txtcity.Text
LastRow.Offset(1, 2).Value = txtcompany.Text
LastRow.Offset(1, 3).Value = txtcontact.Text
LastRow.Offset(1, 4).Value = txtaddress.Text
LastRow.Offset(1, 5).Value = txtphone.Text
Else
If Hoja_seleccionada = "TALENTO HUMANO" Then
Set LastRow = Sheets(Hoja_seleccionada).Range("b65536").End(xlUp)
LastRow.Offset(1, 0).Value = txtmateq.Text
LastRow.Offset(1, 1).Value = txtcity.Text
LastRow.Offset(1, 2).Value = txtcompany.Text
LastRow.Offset(1, 3).Value = txtcontact.Text
LastRow.Offset(1, 4).Value = txtaddress.Text
LastRow.Offset(1, 5).Value = txtphone.Text
End If
End If
End If
End Sub
Sin embargo no me funciona como me lo han exigido que es una vez seleccionada la hoja por medio del combo box guarde los datos solicitados en cada textbox en las filas de esa hoja. Primero a pesar que se selecciona la hoja no va hacia esa hoja sino se queda en la primera y segundo solo me inserta filas sin ingresar los datos todo aparece en blanco en la primera hoja... Por fis ayudame no se como hacer con este programa... Mil gracias

1 respuesta

Respuesta
1
Primero de todo, antes de probarlo, he estado ojeando tu código, hay pasos que puedes no volver a repetirlos, veo que siempre usas el mismo range, las mismas variables y lo pone en el mismo sitio, poniendo solo una vez el código escribirá en la hoja los datos, así:
Private Sub ComboBox1_Click()
Hoja_seleccionada = ComboBox1.List(ComboBox1.ListIndex)
Worksheets(Hoja_seleccionada).Activate
Set LastRow = Sheets(Hoja_seleccionada).Range("b65536").End(xlUp)
LastRow.Offset(1, 0).Value = txtmateq.Text
LastRow.Offset(1, 1).Value = txtcity.Text
LastRow.Offset(1, 2).Value = txtcompany.Text
LastRow.Offset(1, 3).Value = txtcontact.Text
LastRow.Offset(1, 4).Value = txtaddress.Text
LastRow.Offset(1, 5).Value = txtphone.Text
end sub
Lo que veo es que no activas la hoja que quieres para escribir.
A ver si te funciona si no ya lo vemos más en profundidad.
Mil gracias por tu colaboración fue de gran ayuda. Lo único que me hizo falta es el de insertar una fila para agregar otro registro, pero en la hoja seleccionada. Gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas