Saltar al contenido

Enlazar datos de dos textbox a un combobox


Recommended Posts

publicado

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

publicado

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

publicado
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

publicado

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

publicado

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.

publicado

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

publicado

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

publicado

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

publicado

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.

publicado

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

publicado

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.

Archivado

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

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      188
    • Comentarios
      98
    • Revisiones
      29

    Más información sobre "Cambios en el Control Horario"
    Última descarga
    Por pegones1

    5    1

  • Crear macros Excel

  • Mensajes

    • Hola, El texto citado no lo termine de entender, la celda adyacente a Z27 se relaciona con la fila A28 de la hoja VTL1 y el resultado 35 de su ejemplo, se obtiene de la fila 8, así que para hacer algo sin complicaciones use la columna BM para devolver ese valor. Aprovechando los parámetros de discriminación que uso usted para pintar las celdas de la fila, podría usar esos mismos en una fila auxiliar y así obtener un valor que podría usar como criterio en alguna función, sin tener que meterse al terreno de los colores del condicional, porque no son los mismos que los de la paleta de colores en cuestiones de código. ¿Entonces una solución con macros no es de su interés? Si cambia de opinión podría colocar el tema en esa sección, querer formular con los colores del formato condicional tiene sus características específicas, sin mencionar que se actualice "sola". Aunque bueno, todavía es posible que algún maestro o usuario avanzado le pase una solución con alguna función personalizada al ver que usted tiene 365. Si le interesa una idea sencilla podría usar un rango en la fila 5: =SI.ERROR(COINCIDIR(K7,CALCULOS!$B$4:$B$35,0),SI(O(DIASEM(K7)=7,DIASEM(K7)=1),1,0)) Eso le daría la opción de usar: =SUMAR.SI($K$5:$AY$5,">=1",K8:AY8) Saludines
    • Estimados amigos espero estén bien   Tengo este archivo que me ayuda a llevar las horas trabajadas al que necesito añadir en la Hoja5 (HHE) una fórmula que me cuente las Horas trabajadas en Días de Descanso (fines de semana y feriados), actualmente mediante una Regla de Formato Condicional se resaltan en amarillo el Dia de Semana y la Fecha de los Días de Descanso sin embargo el inconveniente se me presenta con los días feriados que cambian de posición de acuerdo a la fecha y cuando el mes comienza en día domingo por lo cual necesito una fórmula que me permita sumar los Días de Descanso cuando la Fecha que le corresponda este resaltada en Amarillo la sintaxis sería más o menos esta para la primera semana del mes de Enero de 2025: =SI('VTL1'!$I$7=AMARILLO;'VTL1'!$I8;0) + SI('VTL1'!$J$7=AMARILLO;'VTL1'!$J8;0) + SI('VTL1'!$K$7=AMARILLO;'VTL1'!$K8;0) + SI('VTL1'!$L$7=AMARILLO;'VTL1'!$L8;0) + SI('VTL1'!$M$7=AMARILLO;'VTL1'!$M8;0) + SI('VTL1'!$N$7=AMARILLO;'VTL1'!$N8;0) + SI('VTL1'!$O$7=AMARILLO;'VTL1'!$O8;0) Y así sucesivamente para el resto de las semanas, con los datos actuales el resultado esperado para la primera semana (I8:O8) sería 9 horas mientras que para el mes (Fila8) el resultado esperado seria 35 horas estos resultados deben reflejarse en la Celda “$Z7” de la Hoja5 (HHE) de modo tal que una vez haya completado la totalidad de la fórmula para el resto de las semanas del mes la pueda correr de Z27 hasta Z42 VTL - HHE_101128.xlsx
    • Hola, veo que tienes 365, así que esta forma funcionará   Almacen.xlsx
    • Buenos días  @LeandroA espero estes bien Tengo un caso idéntico al planteado en la siguiente pregunta: Sin embargo, a diferencia de quien planteo originalmente la pregunta al correr el código no obtengo ningún resultado podrían ayudarme a resolver este inconveniente y que al hacer click en el Botón Guardar (CommandButton3) del Formulario RCS (frmrcs) el archivo pdf quede configurado con orientación vertical, márgenes superior, inferior, derecho e izquierdo = 1 y en página tamaño carta. Si acaso influye uso Microsoft Excel LTSC MSO (versión 2209 Compilación16.0.1.15629.20200) de 64 bits Mucho le sabre agradecer la ayuda que me pueda dar  RCS PRUEBA - copia.xlsm
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • 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.