Excel - if...Then...Else

 
Vista:

if...Then...Else

Publicado por Manolo (7 intervenciones) el 13/11/2007 10:29:17
Tengo un formulario con 2 combobox. En uno de ellos se seleccionan los clientes y en el otro, dependiendo del cliente seleccionado en el primer combobox, sale una lista de sus productos.

Ahora mismo tengo con estructuras If...Then...Else unos 3 clientes para probar el formulario, y me funciona bien.

Mi problema es que tengo una tabla con 103 clientes. ¿Es necesario que escriba If...Then..Else 103 veces, cada una con el nombre del cliente correspondiente? Si utilizará el Select Case ¿Tambien sería necesario escribirlo 103 veces?

-------------------------------------------------------------------------------------------------------------------
Private Sub UserForm_Initialize()

ComboBox1.SetFocus

ComboBox1.ColumnCount = 1
ComboBox1.RowSource = "clientes"
ComboBox1.ControlSource = "C22"
ComboBox1.BoundColumn = 1
----------------------------------------------------------------------------------------------------------------------
Private Sub ComboBox1_Click()

If ComboBox1 > 0 Then
Call LlenaTabla
End If

End Sub
----------------------------------------------------------------------------------------------------------------------
Sub LlenaTabla()

Dim datos()

filas = Worksheets("M").Range("a1").CurrentRegion.Rows.Count
columnas = Worksheets("M").Range("a1").CurrentRegion.Columns.Count

If ComboBox1 = "nombre del cliente" Then
opcion = "nombre del cliente"
Else
If ComboBox1 = "nombre del cliente" Then
opcion = "nombre del cliente"
Else
If ComboBox1 = "nombre del cliente" Then
opcion = "nombre del cliente"
Else
Exit Sub
End If
End If
End If

k = 0
For i = 2 To filas
If Worksheets("M").Cells(i, 2).Value = opcion Then

k = k + 1
ReDim Preserve datos(columnas + 1, k)

For j = 1 To columnas

datos(j, k) = Worksheets("M").Cells(i, j)

Next

datos(6, k) = Worksheets("M").Cells(i, 2).Address(False, False)

End If

Next

UserForm1.ComboBox2.ColumnCount = columnas
UserForm1.ComboBox2.List = WorksheetFunction.Transpose(datos)
UserForm1.ComboBox2.ColumnWidths = "25 pt;150 pt;25 pt;100 pt;25 pt"

End Sub
---------------------------------------------------------------------------------------------------------------------
Muchisimas 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

RE:if...Then...Else

Publicado por José Luis (700 intervenciones) el 13/11/2007 12:05:08
No sé el motivo por el que haces
If ComboBox1 = "nombre del cliente" Then
opcion = "nombre del cliente"
Else
If ComboBox1 = "nombre del cliente" Then
opcion = "nombre del cliente"
Else
If ComboBox1 = "nombre del cliente" Then
opcion = "nombre del cliente"
Else
Exit Sub
End If
End If
End If

Pero la solución es fácil

opcion = ComboBox1

Saludos
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