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 SubLa 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 SubPara 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 SubPara 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 SubLos 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