Ayuda Modificar Cliente y registro de Factura
Hola saludos, todavía muy novato en esto.. Talvez me puedan ayudar en el codigo de la Userforn de modificar cliente y registro de facturas, gusto en este en el textbox de codigo y rif se agregen de manera automatica al seleccionar el cliente del ComboBox1 y que no se modifiquen los datos las de las otras opsiones si.. Para hacer el registro de los datos el la hoja control y consulta fact
Este es el Proyecto http://goo.gl/ZyKb1T
1 respuesta

Te anexo el código para tu formulario "Modificarcliente"
Agregué el evento UserForm_Activate, para cargar los clientes al combo.
Modifiqué el evento ComboBox1_Change, para llenar los textbox
Tuve que eliminar el evento ComboBox1_Enter, no se necesita.
Te anexo la macro completa
Private Sub ComboBox1_Change() 'Por.Dante Amor Set h = Sheets("Clientes") If ComboBox1 = "" Then LimpiarControles Exit Sub End If f = ComboBox1.ListIndex + 2 TextBox1 = h.Cells(f, "B") TextBox2 = h.Cells(f, "C") TextBox3 = h.Cells(f, "D") TextBox4 = h.Cells(f, "E") TextBox5 = h.Cells(f, "F") End Sub Private Sub CommandButton1_Click() Dim Fila As Integer Dim Final As Integer Dim Titulo As String Titulo = "Gestor de Inventarios" 'Validando los controles sin datos If Me.ComboBox1 = "" Then Me.ComboBox1.BackColor = &HC0C0FF MsgBox "Debe ingresar un Código", , Titulo Me.ComboBox1.SetFocus Exit Sub ElseIf Me.TextBox1 = "" Then Me.TextBox1.BackColor = &HC0C0FF MsgBox "Debe ingresar un Nombre de Producto", , Titulo Me.TextBox1.SetFocus Exit Sub ElseIf Me.TextBox2 = "" Then Me.TextBox2.BackColor = &HC0C0FF MsgBox "Debe ingresar una Direccion", , Titulo Me.TextBox2.SetFocus Exit Sub ElseIf Me.TextBox3 = "" Then Me.TextBox3.BackColor = &HC0C0FF MsgBox "Debe ingresar el R.I.F", , Titulo Me.TextBox3.SetFocus Exit Sub ElseIf Me.TextBox4 = "" Then Me.TextBox4.BackColor = &HC0C0FF MsgBox "Debe ingresar el Telefono", , Titulo Me.TextBox4.SetFocus Exit Sub ElseIf Me.TextBox5 = "" Then Me.TextBox5.BackColor = &HC0C0FF MsgBox "Debe ingresar el Email", , Titulo Me.TextBox5.SetFocus Exit Sub End If 'Inspecciona el listado de la hoja de productos y existencias Rem For Fila = 2 To 1000 Rem If Hoja2.Cells(Fila, 1) = "" And Hoja5.Cells(Fila, 1) = "" Then Rem Final = Fila - 1 Rem Exit For Rem End If 'Modifica datos en la hoja de productos For Fila = 2 To Final If Val(Me.ComboBox1) = Hoja3.Cells(Fila, 1) Then Hoja3.Cells(Fila, 2) = Me.TextBox1 Hoja3.Cells(Fila, 3) = Me.TextBox2 Hoja3.Cells(Fila, 4) = Me.TextBox3 Hoja3.Cells(Fila, 5) = Me.TextBox4 Hoja3.Cells(Fila, 6) = Me.TextBox5 Exit For End If Next 'Modifica datos en la hoja de existencias Rem For Fila = 2 To Final Rem If Val(Me.ComboBox1) = Hoja5.Cells(Fila, 1) Then Rem Hoja5.Cells(Fila, 2) = Me.txt_Nombre Rem Hoja5.Cells(Fila, 4) = Me.txt_PrecioVenta.Text Rem Exit For Rem End If Rem Next '------------------------------------------------- 'Limpia los controles LimpiarControles End Sub Private Sub LimpiarControles() Me.ComboBox1 = "" Me.TextBox1 = "" Me.TextBox2 = "" Me.TextBox3 = "" Me.TextBox4 = "" Me.TextBox5 = "" End Sub Private Sub CommandButton2_Click() Unload Me End Sub Private Sub txt_TextBox3_Change() Me.TextBox3.BackColor = &H80000005 End Sub Rem Private Sub txt_CostoUnitario_Exit(ByVal Cancel As MSForms.ReturnBoolean) Rem Me.txt_CostoUnitario.Text = Format(Me.txt_CostoUnitario.Text, "#,##0.00") Rem End Sub Private Sub TextBox2_Change() Me.TextBox3.BackColor = &H80000005 End Sub Private Sub TextBox1_Change() Me.TextBox1.BackColor = &H80000005 End Sub Private Sub TextBox4_Change() Me.TextBox4.BackColor = &H80000005 End Sub Private Sub TextBox5_Change() Me.TextBox5.BackColor = &H80000005 End Sub Private Sub UserForm_Activate() 'Por.Dante Amor ComboBox1.RowSource = "Clientes!A2:A" & Sheets("Clientes").Range("A" & Rows.Count).End(xlUp).Row End Sub
La macro y los cambios son solamente para cargar los textbox, si requieres cambios en el botón modificar, deberás crear una nueva pregunta por cada petición.

Saludos copie todo el código que me mandaste pero la verdad no veo que se guarde la modificaciones que se realizan en los textbox, ya antes cargaban los datos pero no guardaba las modificaciones que eso es lo que realmente necesito... espero de su ayuda por favor...

Pusiste esto en tu pregunta:
"gusto en este en el textbox de codigo y rif se agregen de manera automatica al seleccionar el cliente del ComboBox1"
Y yo te expliqué :
"La macro y los cambios son solamente para cargar los textbox"
¿Entonces qué necesitas?

aaaa ok... eso es no me explique bien en el formulario de modificar cliente necesito eso mismo que modifique y guarde los cambios... eso que me comentas es en formulario de registro de factura... lo que esta en amarillo se carguen con los datos del cliente al seleccionarlo de la lista desplegable y que no sea modificable lo que esta en amarillo... mes, fecha de emisión, factura y monto SI y que guarde todo en Control y Consulta Fac. espero que me allá explicado mejor

Ya me confundi otra vez, en cual formulario quieres apoyo, vamos a empezar con un formulario y despues en otra pregunta revisamos otro formulario, ¿pero primero dime con cual formulario empezamos y que quieres hacer?

ok. hermanos es el que esta en la imagen que coloque antes el de registro de factura por favor...lo que esta en amarillo se carguen con los datos del cliente al seleccionarlo de la lista desplegable y que no sea modificable lo que esta en amarillo... lo demas si y que se guarde en la hoja control de factura

Para cargar los clientes
Private Sub UserForm_Activate() ComboBox2. AddItem "Enero" ComboBox2. AddItem "Febrero" ComboBox2. AddItem "Marzo" ComboBox2. AddItem "Abril" ComboBox2. AddItem "Mayo" ComboBox2. AddItem "Junio" ComboBox2. AddItem "Julio" ComboBox2. AddItem "Agosto" ComboBox2. AddItem "Septiembre" ComboBox2. AddItem "Octubre" ComboBox2. AddItem "Noviembre" ComboBox2. AddItem "Diciembre" 'Cargar clientes, por. Dante Amor ComboBox1.RowSource = "Clientes!A2:A" & Sheets("Clientes").Range("A" & Rows.Count).End(xlUp).Row End Sub
Para cargar los datos del cliente
Private Sub ComboBox1_Change() 'Por.Dante Amor TextBox1 = "" TextBox2 = "" If ComboBox1.ListIndex < 0 Then Exit Sub Set h = Sheets("Clientes") TextBox1 = h.Cells(ComboBox1.ListIndex + 2, "A") TextBox2 = h.Cells(ComboBox1.ListIndex + 2, "D") End Sub
Para registrar al cliente
Private Sub CommandButton1_Click() 'Por.Dante Amor Application.ScreenUpdating = False If ComboBox1.ListIndex < 0 Then Exit Sub Set h = Sheets("Control y Consulta Fac.") Set h1 = Sheets("Clientes") u = h.Range("A" & Rows.Count).End(xlUp).Row + 1 h.Cells(u, "A") = TextBox1 h.Cells(u, "B") = ComboBox1 h.Cells(u, "C") = TextBox2 h.Cells(u, "D") = TextBox6 h.Cells(u, "E") = ComboBox2 h.Cells(u, "F") = TextBox3 h.Cells(u, "G") = TextBox5 End Sub
Los textbox 1 y 2 deberán estar con la propiedad Locked = true
Los demás textbox Locked = false

Te anexo el archivo con los cambios al formulario "Registrar factura"
https://www.dropbox.com/s/jm2eo84yl9wye2c/Control%20de%20Facturas%202%20dam2.xlsm?dl=0
Saludos. Dante Amor
No olvides valorar la respuesta.
- Compartir respuesta
