Macro Modificar información desde Formulario hacia hoja de excel.

Tengo el siguiente problema con la macro (Formulario) Modificar Datos (No puedo adjuntar imagenes)

"Buscar por

Casilla 1 "Bin"

Boton 1 "Buscar"

Boton 2 "Modificar"

"Datos a modificar"

Casilla 2 "Emisor"

Casilla 3 "Correo 1"

Casilla 4 "Correo 2"

Combo 5 "Pais" (Este es un combo desplegable que se aliemtna de otra hoja)

Boton 3 "Confirmar datos"

Boton 4 "Salir"

En la casilla 1 "Buscar por bin" (ingreso la info a buscar) y al dar click al boton "Buscar"
Este no esta funcionando, solo me arroja el mensaje de error" (que yo puse mismo puse en caso este vacia la casilla), y no logra conectar con la hoja de excel DATOS donde esta la info a consultar.

Continuo, luego una vez ubicada la data, al darle al Boton "Modificar datos" recien poder modificar lo que se necesite.

Saludos

Aqui el codigo:

Private Sub CommandButton1_Click()
Dim i As Double
Dim final As Double
Dim hoy As Date
Dim validar As Boolean
Application.ScreenUpdating = False
'Obligamos a buscar BIN antes de grabar datos
If MODIFICAR_CLIENTE.TextBox1.Enabled = False Then
MsgBox "Para grabar los datos primero buscar el bin, despues modificar y una vez que hayas completado los cambios, pulsa en grabar datos", vbInformation, "CONFIRMAR DATOS"
Exit Sub
End If
'Obligamos a buscar BIN antes de grabar datos
If MODIFICAR_CLIENTE.TextBox1.Locked = True Then
MsgBox "Para grabar los datos primero buscar el bin, despues modificar y una vez que hayas completado los cambios, pulsa en grabar datos", vbInformation, "CONFIRMAR DATOS"
Exit Sub
End If
'EMISOR
If MODIFICAR_CLIENTE.TextBox2 = Empty Then
MsgBox "DEBES INTRODUCIR EL EMISOR", vbInformation, "EMISOR"
Exit Sub
End If
'CORREO 1
If MODIFICAR_CLIENTE.TextBox3 = Empty Then
MsgBox "Debes introducir CORREO 1", vbInformation, "CORREO 1"
Exit Sub
End If
'CORREO 2
If MODIFICAR_CLIENTE.TextBox4 = Empty Then
MsgBox "Debes introducir CORREO 2", vbInformation, "CORREO 2"
Exit Sub
End If
'Elegimos pais
If MODIFICAR_CLIENTE.ComboBox5 = Empty Then
MsgBox "INDICA EL PAIS ORIGEN DEL BIN", vbInformation, "PAIS"
Exit Sub
End If
Worksheets("DATOS").Visible = True
Worksheets("DATOS").Select
final = Range("A" & Rows.Count).End(xlUp).Row + 1
'Verificamos que solo exista un BIN

CONTAR = Application.WorksheetFunction.CountIf(Sheets("DATOS").Range("A:A"), MODIFICAR_CLIENTE.TextBox1)
If CONTAR > 1 Then
MsgBox "a existe este BIN, revisa la informacion", vbCritical, "BIN"
Worksheets("DATOS").Visible = False
Application.ScreenUpdating = True
Exit Sub
End If
CONFIRMAR_MODIFICAR.Show
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub CommandButton3_Click()
Dim i As Double
Dim final As Double
Application.ScreenUpdating = False
Worksheets("DATOS").Visible = True
Worksheets("DATOS").Select
final = Range("A" & Rows.Count).End(xlUp).Row + 1
If MODIFICAR_CLIENTE.TextBox1.Enabled = Empty Then
MsgBox "INTRODUCE EL NUMERO DE BIN Y PULSA EN BUSCAR", vbInformation, "BUSCAR BIN"
End If
'Grabamos los datos modificados

For i = 2 To final
If Worksheets("DATOS").Cells(i, 1) = "" Then
final = i - 1
Exit For
End If
Next
For i = 2 To final
If MODIFICAR_CLIENTE.TextBox1 = Worksheets("DATOS").Cells(i, 1) Then
MODIFICAR_CLIENTE.TextBox2 = Worksheets("DATOS").Cells(i, 2)
MODIFICAR_CLIENTE.TextBox3 = Worksheets("DATOS").Cells(i, 4)
MODIFICAR_CLIENTE.TextBox4 = Worksheets("DATOS").Cells(i, 5)
Exit For
End If
Next
If MODIFICAR_CLIENTE.TextBox1 <> Empty Then
MsgBox "Algunos datos no son correctos, favor revisar", vbExclamation, "BUSCAR BIN"
End If
Worksheets("DATOS").Visible = False
Application.ScreenUpdating = True
End Sub
Private Sub CommandButton4_Click()
'AL PULSAR MODIFICAR COMPROBAMOS QUE EL TEXTBOX18 ESTÁ ACTIVADO. SI NO LO ESTÁ LANZAMOS MENSAJE.
If MODIFICAR_CLIENTE.TextBox1.Enabled = False Then
MsgBox "INTRODUCE EL NUMERO DE BIN Y PULSA EN BUSCAR", vbInformation, "MODIFICAR BIN"
Exit Sub
End If
MsgBox "El formulario se ha habilitado para que puedas editar la informacion", vbInformation, "MODIFICAR CLIENTE"
Worksheets("DATOS").Visible = False
Application.ScreenUpdating = True
End Sub
Private Sub UserForm_Initialize()
'Cargamos los combos
'PAIS
final = Worksheets("COMBOS").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To final
MODIFICAR_CLIENTE.ComboBox5.AddItem (Worksheets("COMBOS").Cells(i, 1))
Next
'Desactivamos la pantalla inicial
MODIFICAR_CLIENTE.TextBox2.Enabled = False
MODIFICAR_CLIENTE.TextBox3.Enabled = False
MODIFICAR_CLIENTE.TextBox4.Enabled = False
MODIFICAR_CLIENTE.ComboBox5.Enabled = False
End Sub
Private Sub TextBox1_Change()
'mayusculas
MODIFICAR_CLIENTE.TextBox1.Text = UCase(MODIFICAR_CLIENTE.TextBox1.Text)
End Sub
Private Sub TextBox2_Change()
'mayusculas
MODIFICAR_CLIENTE.TextBox2.Text = UCase(MODIFICAR_CLIENTE.TextBox2.Text)
End Sub
Private Sub TextBox3_Change()
'mayusculas
MODIFICAR_CLIENTE.TextBox3.Text = UCase(MODIFICAR_CLIENTE.TextBox3.Text)
End Sub
Private Sub TextBox4_Change()
'mayusculas
MODIFICAR_CLIENTE.TextBox4.Text = UCase(MODIFICAR_CLIENTE.TextBox4.Text)
End Sub
Private Sub ComboBox5_Change()
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then Cancel = True
End Sub

2 Respuestas

Respuesta
1

Te aconsejaría subir tu archivo a algún servidor y compartir el link por aquí. Créeme que es difícil si solo pegas tu código, ¿dónde podría ver yo el problema? Mi trabajo no seria pegar todo el código en un archivo de excel y probar, eso lo deberías hacer tu, y nosotros podríamos ayudarte a ver el error.

Respuesta
1

Fíjate en este ejemplo si ayuda a solucionar tu problema con la macro

http://www.programarexcel.com/2015/01/formulario-ingreso-y-egreso-de-stock.html 

Sino mira acá encontrarás cientos de ejemplos que te pueden ser útil en la búsqueda de la solución

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas