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

Respuesta
1

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.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas