............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

ComboBox Multiple

Ver el tema anterior Ver el tema siguiente Ir abajo

ComboBox Multiple

Mensaje por Azu el Dom Ene 30, 2011 7:29 am

Hola Amigos tengo varios comboxox, textbox y checkbox que van tomando los datos de una hoja y hacen de filtros avanzados para presentar los datos ya filtrados en 3 listbox, me he vuelto loca ya que no se mucho VB pero despues de toda la tarde trabajando el excel he conseguido que funcione todo, bueno casi todo solo falta una cosilla que ya me es imposible, necesito que el ComboBox2 solo me enseñe las instalaciones asignadas al Cliente que aparezca en el ComboBox1, en lugar de todas como hace ahora, los CheckBox ya están funcionando, bueno seguramente se puede simplificar ya que me parece que me he pasado con el codigo, ah y quisiera que si no ponemos nada en el ComboBox2 pues enseñe todos los clientes, espero que puedan ayudarme, os adjunto el archivo

Un saludo grande
Azu

Azu

Femenino Cantidad de envíos : 38
Edad : 41
Ciudad - Pais : Valencia
Version de Excel : 2007
Fecha de inscripción : 14/07/2009

Volver arriba Ir abajo

Re: ComboBox Multiple

Mensaje por GalileoGali el Dom Ene 30, 2011 8:58 am

Prueba incorporando esto

Código:
Private Sub Combobox1_Change()
    Dim x As Long, i As Long
If ComboBox1 <> Empty Then
ComboBox2.Clear
    With Sheets("Base de Datos")
        For x = 2 To .Range("B" & Rows.Count).End(xlUp).Row
          If .Cells(x, 4) = ComboBox1.Text Then
                ComboBox2.AddItem .Cells(x, 2)
            End If
        Next x
    End With
End If
ComboBox2.DropDown
End Sub

[Tienes que estar registrado y conectado para ver este vínculo]


_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: ComboBox Multiple

Mensaje por Azu el Dom Ene 30, 2011 10:04 am

Hola Gali he probado tu codigo y funciona perfecto, como siempre, gracias por el aporte, solo me falta una cosa que no se hacer y es que necesito que cuando el combobox2 lo deje en blanco me muestre todas las instalaciones del cliente seleccionado, buen solo una ayudita mas u muchas gracias por tu tiempo y apoyo

Azu

Azu

Femenino Cantidad de envíos : 38
Edad : 41
Ciudad - Pais : Valencia
Version de Excel : 2007
Fecha de inscripción : 14/07/2009

Volver arriba Ir abajo

Re: ComboBox Multiple

Mensaje por GalileoGali el Dom Ene 30, 2011 11:56 am

Dónde quieres que aparezcan, en el ListBox?

Activando el Boton "Buscar"????

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: ComboBox Multiple

Mensaje por Azu el Dom Ene 30, 2011 2:06 pm

Claro, primero ponemos el el Combobox1 el cliente, y necesito que dejando los demas ...Box en blanco me saque todos los movimientos de ese cliente, si modifico las fechas o los checkbox pues que me filtre los datos pero del cliente, en cambio si despues del cliente seleccionamos una instalación pues que haga lo mismo pero de su instalación, o sea que pueda sacar los resultados tanto del cliente principal como de alguna de sus instalaciones, y si que aparezcan los datos en los los ListBox al pulsar Buscar

Azu

Femenino Cantidad de envíos : 38
Edad : 41
Ciudad - Pais : Valencia
Version de Excel : 2007
Fecha de inscripción : 14/07/2009

Volver arriba Ir abajo

Re: ComboBox Multiple

Mensaje por GalileoGali el Dom Ene 30, 2011 2:36 pm

Prueba esto....la simplicidad (la solucion más evidente y facilista) le gano a la ortodoxia, atento el estado de sobremesa dominical.....

Código:

Private Sub CommandButton1_Click()
'Boton efectuar consulta
Application.ScreenUpdating = False

'Depuramos datos
If ComboBox1 = Empty Then
  MsgBox ("Seleccione Cliente")
  Exit Sub
End If
Desde = TextBox1
Hasta = TextBox2

If Desde = "" Then Desde = "01/01/2010"
If Hasta = "" Then Hasta = Date

Desde = CDate(Desde)
Hasta = CDate(Hasta)

'Limpiamos y dimensionamos listas
ListBox1.Clear: ListBox1.ColumnWidths = "18;30;50;100;100"
ListBox2.Clear: ListBox2.ColumnWidths = "20;20;20;20;20;20;20;20;20;20"
ListBox3.Clear: ListBox3.ColumnWidths = "20;20;20;20;20;20;20;20;40;80"

'Se activa la Hoja
Sheets("Alimentos").Activate
Seleccionado = False

'Seleccionamos Registros

If CheckBox2 = True Then

    For x = 6 To Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    FECHA = CDate(Cells(x, 3))
    If Cells(x, 6) = ComboBox1.Text And _
        Cells(x, 28) = "" And _
        IIf(Len(ComboBox2.Text) > 0, Cells(x, 7) = ComboBox2.Text, True) And _
        (Not FECHA < Desde And Not FECHA > Hasta) Then

      Cells(x, 6).Select
      Seleccionado = True
      ListBox1.AddItem "": ListBox2.AddItem "": ListBox3.AddItem ""
      For y = 1 To 3: ListBox1.List(ListBox1.ListCount - 1, y - 1) = Cells(x, y): Next y
      For y = 6 To 7: ListBox1.List(ListBox1.ListCount - 1, y - 3) = Cells(x, y): Next y
      For y = 10 To 19: ListBox2.List(ListBox2.ListCount - 1, y - 10) = Cells(x, y): Next y
      For y = 20 To 29: ListBox3.List(ListBox3.ListCount - 1, y - 20) = Cells(x, y): Next y
             
      End If

    Next x
Else

If CheckBox1 = True Then
    For x = 6 To Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    FECHA = CDate(Cells(x, 3))
    If Cells(x, 6) = ComboBox1.Text And _
        Cells(x, 28) <> "" And _
        IIf(Len(ComboBox2.Text) > 0, Cells(x, 7) = ComboBox2.Text, True) And _
        (Not FECHA < Desde And Not FECHA > Hasta) Then

      Cells(x, 6).Select
      Seleccionado = True
      ListBox1.AddItem "": ListBox2.AddItem "": ListBox3.AddItem ""
      For y = 1 To 3: ListBox1.List(ListBox1.ListCount - 1, y - 1) = Cells(x, y): Next y
      For y = 6 To 7: ListBox1.List(ListBox1.ListCount - 1, y - 3) = Cells(x, y): Next y
      For y = 10 To 19: ListBox2.List(ListBox2.ListCount - 1, y - 10) = Cells(x, y): Next y
      For y = 20 To 29: ListBox3.List(ListBox3.ListCount - 1, y - 20) = Cells(x, y): Next y
             
      End If

    Next x
   
Else

    For x = 6 To Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    FECHA = CDate(Cells(x, 3))
    If Cells(x, 6) = ComboBox1.Text And _
        IIf(Len(ComboBox2.Text) > 0, Cells(x, 7) = ComboBox2.Text, True) And _
        (Not FECHA < Desde And Not FECHA > Hasta) Then

      Cells(x, 6).Select
      Seleccionado = True
      ListBox1.AddItem "": ListBox2.AddItem "": ListBox3.AddItem ""
      For y = 1 To 3: ListBox1.List(ListBox1.ListCount - 1, y - 1) = Cells(x, y): Next y
      For y = 6 To 7: ListBox1.List(ListBox1.ListCount - 1, y - 3) = Cells(x, y): Next y
      For y = 10 To 19: ListBox2.List(ListBox2.ListCount - 1, y - 10) = Cells(x, y): Next y
      For y = 20 To 29: ListBox3.List(ListBox3.ListCount - 1, y - 20) = Cells(x, y): Next y
             
      End If

    Next x
   
End If
End If

End Sub

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: ComboBox Multiple

Mensaje por Azu el Dom Ene 30, 2011 3:32 pm

Bueno Gali estoy asombrada y tienes razon a veces la simplicidad es la mejor aliada al problema, y esto quiere decir que tengo que aprender a ser mas simple, pero estando cerca de vosotros la simplicidad se hace evidencia, sabes que aqui en españa cuando hable del foro, os llamos mis Profes, espero que no te moleste, es un gesto cariñoso, gracias por todo y bueno nos vemos en el siguiente problemita que tenga vale,

un abrazo desde (Valencia) España (y os animo a seguir con el foro, sois de gran ayuda)

Azucena

Azu

Femenino Cantidad de envíos : 38
Edad : 41
Ciudad - Pais : Valencia
Version de Excel : 2007
Fecha de inscripción : 14/07/2009

Volver arriba Ir abajo

Re: ComboBox Multiple

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.