Hola Me gustaría saber si se puede crear dos botones activex. Uno de ellos que sea un despegable que

Hola Dam

Me han encargado otro trabajo en excel, y no controlo mucho como tu sabes.

A ver si me puedes ayudar, sino no pasa nada porque bastante estás haciendo.

Consiste en crear 2 botones activex, un botón que sea un despegable que contenga un filtro con los 3 tipos de tipología (columna d): básico, avanzado y plus. De estos 3 tipos se selecciona uno, según aparezca en la celda del producto seleccionado por el checkbox. Otro botón, que permita introducir texto, el usuario introduzca el texto que quiera por ejemplo: c. Pues la información introducida en este último botón sea trasladada a la columna tipología en la celda correspondiente de ese producto seleccionado. Por ejemplo fila 5 columna d. Donde ponía avanzado ahora va a poner c.

¿Se puede hacer? Me temo que tmb es con macro

Gracias por todo.

Un saludo

1 Respuesta

Respuesta
1

Instrucciones
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona ALt + F11
3. En el menú elige Insertar / UserForm
4. En el panel del UserForm le das dobleclik y copias la macro.
5. En el panel del UserForm inserta un cuadro de lista, verifica que se llama ListBox1
6. Crea otro cuadro de texto, verifica que se llama TextBox1
Te anexo una imagen para que veas como se crea y como te queda.
http://www.subeimagenes.com/img/listbox1-418522.html

Funciona así: Cuando la ejecutas con F5, te aparece un listbox con las opciones que tienes en la columna D, tienes que elegir alguna. En el cuadro de texto, capturas una palabra, le das enter y la palabra capturada reemplaza a la opción que elegiste en el list box. (Espero que así sea lo que pediste)

‘***Macro***
Private Sub TextBox1_AfterUpdate()
' Por.daM
With ListBox1
        For intX = 0 To .ListCount - 1
            If .Selected(intX) Then
                'Selecciona la celda según el listbox
                Cells(intX + 3, 4).Select
                antx = intX
            End If
        Next
    End With
Cells(antx + 3, 4).Value = TextBox1.Value
TextBox1.Value = ""
End Sub
Private Sub UserForm_Activate()
' Por.daM
    strRango = "D3:D" & Format(Range("D65500").End(xlUp).Row)
    ListBox1.ListStyle = fmListStyleOption
    ListBox1.MultiSelect = fmMultiSelectSingle
    ListBox1.RowSource = strRango
End Sub

Saludos.Dam

Hola Dam,

La verdad que está muy bien la solución, pero me gustaría más crear 2 botones por que este archivo lo tienen que tener distintos trabajadores y hay que agilizar la tarea.

Sería crear un botón Control combinado (active x) y otro botón cuadro de texto (active x). En control combinado que salga todas las opciones que aparecen en la celda D, pero filtrandolo que sería plus, avanzado y premium. En botón cuadro de texto, el trabajador ponga la opción que quiera y esa información la vuelque a la celda que haya sido selecciona por el checkbok que tengo en la columna a.

¿Se puede hacer?:

Ya tengo el siguiente código:

Private Sub TextBox1_LostFocus()
If TextBox1 = "" Then Exit Sub
For Each cd In Range("C3:C" & Range("C65536").End(xlUp).Row)
If cd.Value = ComboBox1.Value Then cd.Value = TextBox1.Value
Next
End Sub

Lo que me falta es introducir el código del checkbok q está en la columna a, de manera que la fila donde está el checkbok, seleccionado cambie esa tipología en la celda correspondiente a la fila y a la columna d,

¿Qué opinas, sería así?

Millones de gracias.

Perdona Dam, donde pone c sería d.Me he confudido.

Gracias

Perdona, ahora yo estoy confundido, me puedes enviar una imagen de tu archivo y otra imagen de cómo te imaginas los activex y otra imagen de lo que quieres que haga cada uno.

Y si se puede otra imagen después de ejecutar los activex

Hola Dam

Te lo he adjuntado a tu correo.

Gracias

Un saludo

Haber si ahora si le atino, jeje.

En mi versión de excel 2003 no tego activeX, pero el código de los botenes es el mismo, sólo incluye el código en cada botón.

'Botón del Texto
Private Sub TextBox1_AfterUpdate()
' Por.daM
With Me.ComboBox1
intx = .ListIndex
'Selecciona la celda según el listindex
Cells(intx + 3, 4).Select
End With
Cells(intx + 3, 4).Value = TextBox1.Value
End Sub
'Botón del combo
Private Sub UserForm_Activate()
' Por.daM
strRango = "D3:D" & Format(Range("D65500").End(xlUp).Row)
ComboBox1.RowSource = strRango
End Sub

Saludos.dam

Hola Dam

En el botón Combo, ¿tengo que poner Private Sub ComboBox1_change, dobleclikc,lostfocus,(no sé que opción)... ó private Sub UserForm_Activate?

Jo, me temo que no funciona. Jolines como puede variar tanto la versión 2003 de la 2010.

Muchas gracias

Me da error en esta línea:

ComboBox1.RowSource = strRango

<p class="scayt-misspell" data-scayt_word="combotext" data-scaytid="5">por eso te digo si tengo que modificar algo al ser un combobox1 y no un userform
<p class="scayt-misspell" data-scayt_word="combotext" data-scaytid="5">
<p class="scayt-misspell" data-scayt_word="combotext" data-scaytid="5">GRacias
<p class="scayt-misspell" data-scayt_word="combotext" data-scaytid="5">

Un saludo

Me da error en esta línea:
ComboBox1.RowSource = strRango

Tengo que modificar algo al ser un combobox y no un userfor?

Gracias

Un saludo

Prueba con esta opción:

Private Sub ComboBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Gracias.

lo probare

Ok, sigo a tus órdenes.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas