Saltar al contenido

Enlazar datos de dos textbox a un combobox


Recommended Posts

Buenas noches amigo de AyudaExcel estoy que me rompo la cabez de tanto código la verdad me perdí en mi proyecto que vengo realizando. Tengo un formulario que ingreso datos desde combobox, textbox a una hoja que me sirbe como base de datos BBDD lo que pasa esque al final me doy cuenta que necesito insertar dos columnas más una columna que cargue datos de un combobox "almacenamiento", y la otra que se me hiso difícil que al elegir el código del producto aparezca en un textbox el  "producto" y en el otro textbox la "presentación" el un textbox ya esta enlazado pero el otro no, estos valores no se cargan en columnas continuas sino por ejemplo "codigo y producto" estan cargadas en las columnas C y D pero "Presentación" se deberá cargar en la columna K, y el valor del combobox de "almacenamiento" se cargará en la columna L. Los datos de los combobox se cargan de la hoja fuente.

Espero que fui claro con mi pedido de ayuda, desde ya le agradezco amigos de AyudaExcel

Adjunto mi archovo

Enlazar datos de Texbox a combobox.zip

Enlace a comentario
Compartir con otras webs

Prueba esto y comenta. Lo que hace es copiar en los controles que indicas los valores que necesitas, y si no hay nada en el "cboProducto", limpia el formulario. Esto mismo se puede aplicar al resto de controles si necesitas que se rellenen con la información.

Private Sub cboProducto_Change()
    Dim cont As Control
    Application.ScreenUpdating = False
    If cboProducto.Text = "" Then
        For Each cont In Me.Controls
            Select Case TypeName(cont)
                Case "textbox"
                    cont.Text = ""
                Case "combobox"
                    cont.Text = ""
                Case "checkbox"
                    cont.Value = False
            End Select
        Next cont
        Exit Sub
    End If
    Sheets("BBDD").Select
    Range("c1").Select
    Do While ActiveCell.Text <> cboProducto.Text
        ActiveCell.Offset(1, 0).Select
        If ActiveCell.Text = "" Then
            MsgBox "Ningun producto coincide con el codigo introducido"
            cboProducto.Text = ""
            Exit Sub
        End If
    Loop
    txtProducto.Text = ActiveCell.Offset(0, 1).FormulaR1C1
    TextBox28.Text = ActiveCell.Offset(0, 8).Value
End Sub

Enlace a comentario
Compartir con otras webs

Hace 55 minutos , Alfonso Parrado dijo:

Prueba esto y comenta. Lo que hace es copiar en los controles que indicas los valores que necesitas, y si no hay nada en el "cboProducto", limpia el formulario. Esto mismo se puede aplicar al resto de controles si necesitas que se rellenen con la información.

Private Sub cboProducto_Change()
    Dim cont As Control
    Application.ScreenUpdating = False
    If cboProducto.Text = "" Then
        For Each cont In Me.Controls
            Select Case TypeName(cont)
                Case "textbox"
                    cont.Text = ""
                Case "combobox"
                    cont.Text = ""
                Case "checkbox"
                    cont.Value = False
            End Select
        Next cont
        Exit Sub
    End If
    Sheets("BBDD").Select
    Range("c1").Select
    Do While ActiveCell.Text <> cboProducto.Text
        ActiveCell.Offset(1, 0).Select
        If ActiveCell.Text = "" Then
            MsgBox "Ningun producto coincide con el codigo introducido"
            cboProducto.Text = ""
            Exit Sub
        End If
    Loop
    txtProducto.Text = ActiveCell.Offset(0, 1).FormulaR1C1
    TextBox28.Text = ActiveCell.Offset(0, 8).Value
End Sub

 

               Case "textbox"
                    cont.Text = ""
                Case "combobox"
                    cont.Text = ""
                Case "checkbox"
                    cont.Value = False

Enlace a comentario
Compartir con otras webs

Perdón pero hay un error en lo escrito y hay que sustituir el siguiente párrafo

                Case "textbox"
                    cont.Text = ""
                Case "combobox"
                    cont.Text = ""
                Case "checkbox"
                    cont.Value = False

por este otro

                Case "TextBox"
                    cont.Text = ""
                Case "ComboBox"
                    cont.Text = ""
                Case "CheckBox"
                    cont.Value = False

Enlace a comentario
Compartir con otras webs

Buenas noches Alfonso no me funciona guarda los datos en otra columna y al digitar el código solo muestra el producto pero la presentacion que es el objetivo y lo que elijo en almacenamiento tambien deberia grabarse en la BBDD disculpa si no me hago entender lo  que necesito.

Enlace a comentario
Compartir con otras webs

Hola, buenos dias. Seguro que no nos hemos entendido, porque a mi si me funciona. Yo entiedo que lo que quieres es que al seleccionar un codigo en el coombobox "cboproducto" del formulario te rellene los textbox del txtproducto y el textbox28(presentacion) y eso lo hace correctamente. En tus datos solo el codigo 18415 tiene el nombre del producto y el de presentación por lo que solo cuando selecciones ese codigo llenara los campos que quieres con los datos, para el resto que no tienen datos los deja en blanco.

Ahora ya dudo si es eso lo que querias o es otra cosa. Te adjunto tu fichero sustituyendo el codigo que tenias en el evento "change" del cboproducto por el que te indico y veras que cuando ejecutes, al seleccionar el producto indicado (18415) te completa los otros dos textbox. El resto de codigos de tu ejemplo no tienen datos.

Enlazar datos de Texbox a combobox.zip

Enlace a comentario
Compartir con otras webs

Hola Alfonso voy a tratar de explicarme mejor; yo ingreso datos desde este formulario al tipear datos en los textbox y elegir de los combobox y grabar daba bien. Pero me hace falta aumentar dos datos más "Presentación"  y "Amacenamiento" (que los tomo de la hoja "Fuente"),por otro lado; desde el comboBox "Código" eligo un código y se carga en el textbox "Producto" eso ya funciona pero quiero aumentar que se cargue tambien "Presentación" por ejemplo si  en "código" elijo 00892 en "Producto" debe aparecer "Producto2" y en "Presentacion" deberá aparecer "Liquido1" y esto automaticamente y asi con otros codigos para al dar en el boton "Grabar" debera cargarce en la hoja BBDD, asi:

el valor de Código en la columna C

el valor de Producto en al columna D y

el valor de Presentación en la columna K

y por otro lo que elija del combobox "Almacenamiento" debería cargarse en la columna "L"

Ojalá me haya hecho entender un poco más. En conclusión quiero cargar esos dos datos mas desde mi formulario al la BBDD y que esto funcione con todos los botones  que hay en la interfaz, no se si estoy pidiendo mucho.

Gracias por tu tiempo Afonson

 

Enlazar datos de Texbox a combobox1.zip

Enlace a comentario
Compartir con otras webs

Si no te entiendo mal lo que quieres son dos cosas:

1º.- que en los datos que ya hay o en lotes nuevos puedas añadir los campos "almacenamiento" y "presentacion" desde el formulario a la BBDD

2.- que cuando selecciones y un lote de los existentes, te aparexca en el formulario todos los datos, incluido "almacenamiento" y "presentacon"

He modificado algo el codigo y ya hace lo indicado en los puntos 1 y 2. ¿Este proyecto estuyo o lo has obtenido de algún sitio?

Enlazar datos de Texbox a combobox.zip

Enlace a comentario
Compartir con otras webs

Hola lo voy a probar, el proyecto lo he ido desarrollando poco a poco gracias a la ayuda de ustedes el formulario lo he creado  segun mi necesidad les he molestado con código para aumentar otras cositas másy hacerlo funcionar, gracias Alfonso voy a probar y te cuento.

Enlace a comentario
Compartir con otras webs

Hola Alfonso lo probé y no me hice enterder el combobox código se hizo un buscador función que ya hacia el botón que tiene una lupa que busca el lote ya introducido y se visualiza en el formulario.

Disculpame por tomar tu tiempo pero algo he aprendido, creo debo comenzar desde cero porque esto de reacomodar el código y aumentar funciones creo se hace más difícil para hacerme enterder lo que necesito.

Gracias Alfonso

Enlace a comentario
Compartir con otras webs

Hola nuvamente. Siento no haber podido ayudarte,  pero es que no consigo entender que necesitas. En lo que te envié, tanto si selecciones desde el control del lote como si lo haces desde el de codigo de producto, te carga todos los datos de los elementos que hay, y si quieres cambiar algo, solo tienes que seleccionarlo, modificar lo que necesites y guardarlo. Te saldrá un aviso de que ya existe, si aceptas lo reescribe y si  no hace nada. Tambien puedes añadir nuevos datos y guardarlos (se añadirá al final de los datos que ya existen). Todo ello siempre añadiendo los dos nuevos atos que indicabas.

Si no es esto lo que necesitabas, lo siento pero no te etiendo.

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.