Excel - UserForm

 
Vista:

UserForm

Publicado por Carmen (2 intervenciones) el 05/07/2012 16:48:22
Hola, buenas tardes.

Estoy trabajando con un userform en excel 2010

Tengo en mi hoja 2 columnas

Id Descripcion
3 articulo1
4 articulox
7 articulo especial

Lo que quiero hacer es llenar el combo con los datos que tengo en la columna descripcion
Lo hice con un Define Name

Dim valor As Range
Dim ws As Worksheet
Set ws = Worksheets("NombreHoja")
For Each valor In ws.Range("NombreDefineName")
Me.combo.AddItem valor.Value
Next rngColor

y lo llena correctamente.

El detalle es que quiero que cuando elijas el articulo x aparezca en un textbox el Id que tiene

Lo necesito almancenar combo.selectedvalue, pero como se hace en excel.]?]??

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Gonzalo Quintana
Val: 13
Ha disminuido su posición en 50 puestos en Excel (en relación al último mes)
Gráfica de Excel

UserForm

Publicado por Gonzalo Quintana (73 intervenciones) el 10/07/2012 20:04:58
Carmen
Podrías realizar una búsqueda cada vez que selecciones un ítem del ComboBox para que te devuelva el Id en el TextBox. talvez el siguiente código te ayude, aunque seguro tengas que modificarlo a tu gusto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Private Sub ComboBox1_Change()
 
    Application.ScreenUpdating = False
 
    Articulo = ComboBox1.Text 'Guarda el nombre del artículo para la búsqueda
 
    'Reemplazar "Prueba.xls" por el nombre de tu libro
    Workbooks("Prueba.xls").Close savechanges:=False
 
    Set BuscaArt = Cells.Find(What:=Articulo, After:=ActiveCell, LookIn:=xlFormulas, _
                    LookAt:=xlWhole, SearchOrder:=xlByRows, _
                    SearchDirection:=xlNext, MatchCase:=False)
 
    If BuscaArt Is Nothing Then
 
        MsgBox "No se encontró el artículo en el archivo", _
                vbOKOnly + vbCritical
 
        Else
 
        BuscaArt.Select
 
        ActiveCell.Offset(0, -1).Select
        TextBox1 = ActiveCell.Value
 
    End If
 
End Sub

Saudos,

Gonzalo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar