Formulario VBA ( NO guardoa los datos) auxilio.

Hola mis queridos amigos, para variar tengo una duda y es la siguiente:
Tengo un formulario VBA donde se solicita el nombre del cliente, su DNI, su Dirección, Ciudad, Cód. Postal y teléfonos. Todo funciona muy bien hasta que oprimo el botón de guardar, habré la hoja donde tengo que guardar pero no lo guarda y se tranca la macro para depurar.
Estoy usando lo siguiente en mi macro:
Private Sub CommandButton1_Click()
Sheets("Clientes").Select
If Control > 0 Then
Range(ubica).Value = TextBox1
Range(ubica).Offset(0, 1).Value = TextBox2
Range(ubica).Offset(0, 2).Value = TextBox3
Range(ubica).Offset(0, 3).Value = TextBox4
Range(ubica).Offset(0, 4).Value = TextBox5
Range(ubica).Offset(0, 5).Value = TextBox6
Control = 0
Else
Cells(filalibre, 1).Value = TextBox2
Cells(filalibre, 2).Value = TextBox1
Cells(filalibre, 3).Value = TextBox3
Cells(filalibre, 4).Value = TextBox4
Cells(filalibre, 5).Value = TextBox5
Cells(filalibre, 6).Value = TextBox6
End If
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
TextBox6.Value = ""
TextBox1.SetFocus
End Sub
Le he dado vuelta a esto y no logro que me grave los datos en la hoja Clientes.
Espero que por favor alguien me resuelva esto, no se que estoy haciendo mal pero estoy aprendiendo. Gracias

1 Respuesta

Respuesta
1
Veo varios errores...
If Control > 0 Then
Range(ubica).Value = TextBox1
Asi no funcionaria, una opción sería ponerlo así
If isempty(textbox) then
o tambien
If (Textbox)= "" then
La sentencia Range(ubica) tampoco funcionaria porque estas usando una variable que no ha sido declarada "ubica", la palabra por si sola no haría nada, no se exactamente que es lo que quieres que "ubique" en ese Rango, tal vez quieres referirte a la celda activa. La manera correcta de referirte a alguna celda seria así...
Range("A2").value = textbox1
o
Range("A2").Activate
Activecell.value = Textbox1
Ene sta parte...
Cells(filalibre, 1).Value
Supongo que te refieres a buscar la siguiente fila vacía, bueno te pongo un ejemplo con dos textbox y tu haces el resto...
Copia y pega este código en el evento Click del commandbutton que Guarda los datos
Sub FilaVacia()
'PROCEDIMIENTO PARA BUSCAR ULTIMA FILA VACIA
Range("A1").Select
Selection.End(xlDown).Select 'IR HASTA LA ULTIMA CELDA NO VACIA
ActiveCell.Offset(1, 0).Select
End Sub
Private Sub Guarda_Click()
Range("A2").Select
'REVISAMOS SI EL TEXTBOX PAR EL CODIGO DE CLIENTE NO ESTA VACIO
' SI LO ESTA MANDA MENSAJE QE DEBE ESCRIBIR UNO
If (TxtCodCliente) = "" Then
MsgBox ("DEBE ESCRIBIR UN CÓDIGO DE CLIENTE")
TxtCodCliente = Empty 'EL "= Empty" LIMPIA EL TEXTBOX
TxtNombre = Empty
TxtCodCliente.SetFocus 'MANDA EL CURSOR A ESTE TEXBOX
Exit Sub 'DETIENE EL PROGRAMA
End If
'SI LA CELDA ACTIVA NO ESTÁ VACÍA. LLAMA A PROCEDIMIENTO Fila Vacia
'Y BUSCA LA PRIMERA FILA VACÍA
If Not (Range("A2")) = "" Then
Call FilaVacia
ActiveCell.Value = TxtCodCliente
ActiveCell.Offset(0, 1).Value = TxtNombre
TxtCodCliente = Empty
TxtNombre = Empty
TxtCodCliente.SetFocus
Exit Sub
Else
ActiveCell.Value = TxtCodCliente
ActiveCell.Offset(0, 1).Value = TxtNombre
TxtCodCliente = Empty
TxtNombre = Empty
TxtCodCliente.SetFocus
End If
End Sub
Si necesitas algo más, me avisas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas