Risultati da 1 a 12 di 12

Discussione: Men¨ a tendina, combobox



  1. #1
    L'avatar di RSL84
    Clicca e Apri
    Data Registrazione
    Jan 2016
    LocalitÓ
    Modena
    Messaggi
    3
    Versione Office
    excel 2010
    Likes ricevuti
    0
    Likes dati
    2

    Men¨ a tendina, combobox

    Buongiorno a tutti,
    sono RSL84 e sono nuovo del forum, probabilmente avete giÓ affrontato questo problema.
    Ho creato una tabella utile alla pianificazione degli equipaggi di lavoro composti da un max di 3 persone per mezzo.
    Per formare gli equipaggi e scegliere la persona ho creato delle combobox collegate ad una lista di persone di circa 15/20, sicuramente Ŕ rapida e veloce perchŔ mi basta inserire non pi¨ di 2 lettere e mi trova il cognome della persona che cerco. Il mio problema Ŕ ora creare una condizione alla combobox ovvero, la successiva combobox non mi deve pi¨ elencare il nome della persona giÓ inserita nella combobox precedente.
    Per ovviare a questo problema ho provato a riportare in una colonna nascosta l'elenco delle persone in servizio uguale a quello al quale Ŕ collegata la combobox e con la formula "=se(h2=I2;"";se(h2=I3;"";se(h2=I4;"";..........;h2)))" sono riuscito ad eliminare dall'elenco di persone l'operatore giÓ inserito, dopo di che ho provato a creare un men¨ a tendina (eliminando la "vecchia" combobox) al quale ho inserito la formula "=scarto(h2;;;conta.valori(H2:H17)" ma il menu' a tendina mi elimina il nome inserito ma nell'elenco a discesa le celle vuote sono ancora visibili.
    Come faccio ad eliminare il nome giÓ inserito dalla combobox (evitando VBA perchŔ non ne so nulla) oppure utilizzare un men¨ a tendina con tale condizione?
    Spero di essere stato il pi¨ chiaro possibile.
    Grazie a tutti
    RSL84
    Ultima modifica fatta da:Canapone; 30/06/17 alle 15:43

  2. #2
    L'avatar di Bolz1
    Clicca e Apri
    Data Registrazione
    Jan 2016
    LocalitÓ
    Padova
    EtÓ
    41
    Messaggi
    117
    Versione Office
    '11 e 16 MAC
    Likes ricevuti
    7
    Likes dati
    1
    Se potessi caricare un file di esempio senza dati sensibili sarebbe meglio, cosý vediamo quello che hai fatto e come meglio agire...:246:
    "Se tu segui tua stella non puoi fallire a glorioso porto" (Dante, Inferno - XV)

  3. #3
    L'avatar di RSL84
    Clicca e Apri
    Data Registrazione
    Jan 2016
    LocalitÓ
    Modena
    Messaggi
    3
    Versione Office
    excel 2010
    Likes ricevuti
    0
    Likes dati
    2
    Ciao Bolz1,
    ti allego un file uguale a quello che ho creato.
    Grazie.
    File Allegati File Allegati

  4. #4

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    LocalitÓ
    Sardegna
    EtÓ
    37
    Messaggi
    4025
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923
    Ciao a tutti,
    @RSL84

    escludendo le combobox (con VBA), un metodo alternativo richiederebbe 2 colonne di appoggio (io ho utilizzato le colonne J e K).
    Nella colonna J otterr˛ il rif.riga che mi serve per estrarre i valori, mentre nella colonna K avr˛ la lista esclusi i nomi giÓ scelti.

    Nella cella J17 ( da copiare poi in basso fino alla cella J22) scriverai:

    =SE(O(CONTA.SE($F$17:$F$19;C17)>=1;CONTA.SE($I$17:$I$19;C17)>=1);"";RIF.RIGA())

    Nella cella K17 ( da copiare poi in basso fino alla cella K22) scriverai la formula matriciale (da confermare quindi con CTRL+MAIUSC+INVIO) :

    =SE.ERRORE(SE(RIF.RIGA($C$17:$C$22)-RIF.RIGA($A$17)+1>CONTA.NUMERI($J$17:$J$22);"";INDICE(C:C;PICCOLO($J$17:$J$22;RIF.RIGA(A1))));"")

    A questo punto, nel range dove ti serve il convalida dati (F17:F19 e I17:I19) userai questa formula per il convalida dati:

    =SCARTO($K$17;;;CONTA.NUMERI($J$17:$J$22))

    Ti lascio un file di esempio (le colonne J e K le puoi nascondere)....

    N.B.
    Se non ricordo male questo metodo l'ho imparato da una discussione grazie all'intervento di scossa :246:

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno pu˛ immaginare."

  5. I seguenti 2 utenti hanno dato un "Like" a cromagno per questo post:


  6. #5
    L'avatar di RSL84
    Clicca e Apri
    Data Registrazione
    Jan 2016
    LocalitÓ
    Modena
    Messaggi
    3
    Versione Office
    excel 2010
    Likes ricevuti
    0
    Likes dati
    2
    Grazie CROMAGNO,
    ho visto il file in allegato Ŕ perfetto, prover˛ ad applicarlo anche alla mia tabella.
    Una curiositÓ, ma in versione VBA, Ŕ molto difficile modificare la combobox con tale vincolo?
    grazie

  7. #6

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    LocalitÓ
    Sardegna
    EtÓ
    37
    Messaggi
    4025
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923
    Citazione Originariamente Scritto da RSL84 Visualizza Messaggio
    Una curiositÓ, ma in versione VBA, Ŕ molto difficile modificare la combobox con tale vincolo?
    E' relativamente facile, ma se come hai detto non conosci il VBA, beh... risulterebbe difficile anche quello.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno pu˛ immaginare."

  8. I seguenti utenti hanno dato un "Like"


  9. #7

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    LocalitÓ
    Cosenza
    EtÓ
    45
    Messaggi
    2811
    Versione Office
    Excel 2013
    Likes ricevuti
    1022
    Likes dati
    979
    Ciao @Cromagno. Ho provato con il VBA ma si Ŕ dimostrato pi¨ difficile del previsto. Potresti postare anche la soluzione VBA o magari solo suggerire la strada (preferibile).

  10. #8

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    LocalitÓ
    Sardegna
    EtÓ
    37
    Messaggi
    4025
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923
    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    Ciao @Cromagno. Ho provato con il VBA ma si Ŕ dimostrato pi¨ difficile del previsto. Potresti postare anche la soluzione VBA o magari solo suggerire la strada (preferibile).
    Ciao Rubik,
    non ho ancora provato in VBA... ma se Ŕ difficile per te, di sicuro non sarÓ una passeggiata.
    Adesso mi stavo scervellando per trovare una formula in questa discussione:
    http://www.forumexcel.it/forum/6-dom...e-di-un-numero

    Appena ho un p˛ di tempo provo con le combobox (spero domani).

    Ciao
    Tore

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno pu˛ immaginare."

  11. #9

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    LocalitÓ
    Sardegna
    EtÓ
    37
    Messaggi
    4025
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923
    Ciao Rubik,
    ho avuto un p˛ di tempo per provare ed avevi ragione... non Ŕ semplice gestire le combobox in questi casi.
    Tra l'altro, ai tempi anche io sono stato aiutato da scossa, Baloon e alfrimpa.

    Comunque, una possibile soluzione (utilizzo comunque la colonna J come appoggio per l'elenco anche se credo si possa ovviare).

    Il codice che controlla le combobox del foglio (dalla 1 alla 6) e crea il nuovo elenco a partire dalla cella J1:

    Codice: 
    Option Explicit
    
    
    Sub Elenco()
    Dim Dati As Range, Cella As Range, Combo As String, i As Integer, j As Integer
    Dim Controllo As Integer
    Set Dati = Worksheets("Foglio1").Range("C5:C10")
    j = 1
    With Worksheets("Foglio1")
        .Range("J1:J6").ClearContents
        For Each Cella In Dati
            Controllo = 0
            For i = 1 To 6
                Combo = "combobox" & i
                If Cella.Value = .OLEObjects(Combo).Object.Value Then
                    Controllo = 1
                End If
            Next i
            If Controllo = 0 Then
                .Range("J" & j).Value = Cella.Value
                j = j + 1
            End If
        Next
    End With
    Set Dati = Nothing
    End Sub
    Mentre per la gestione delle combobox:

    Codice: 
    Option Explicit
    Dim uRiga As Long
    
    
    Private Sub ComboBox1_DropButtonClick()
    Call Elenco
      With Me
        .ComboBox1.ListFillRange = ""
        uRiga = .Range("J1").End(xlDown).Row
        .ComboBox1.List = .Range("J1:J" & uRiga).Value
      End With
    End Sub
    
    
    Private Sub ComboBox2_DropButtonClick()
    Call Elenco
      With Me
        .ComboBox2.ListFillRange = ""
        uRiga = .Range("J1").End(xlDown).Row
        .ComboBox2.List = .Range("J1:J" & uRiga).Value
      End With
    End Sub
    
    
    Private Sub ComboBox3_DropButtonClick()
    Call Elenco
      With Me
        .ComboBox3.ListFillRange = ""
        uRiga = .Range("J1").End(xlDown).Row
        .ComboBox3.List = .Range("J1:J" & uRiga).Value
      End With
    End Sub
    
    
    Private Sub ComboBox4_DropButtonClick()
    Call Elenco
      With Me
        .ComboBox4.ListFillRange = ""
        uRiga = .Range("J1").End(xlDown).Row
        .ComboBox4.List = .Range("J1:J" & uRiga).Value
      End With
    End Sub
    
    
    Private Sub ComboBox5_DropButtonClick()
    Call Elenco
      With Me
        .ComboBox5.ListFillRange = ""
        uRiga = .Range("J1").End(xlDown).Row
        .ComboBox5.List = .Range("J1:J" & uRiga).Value
      End With
    End Sub
    
    
    Private Sub ComboBox6_DropButtonClick()
    Call Elenco
      With Me
        .ComboBox6.ListFillRange = ""
        uRiga = .Range("J1").End(xlDown).Row
        .ComboBox6.List = .Range("J1:J" & uRiga).Value
      End With
    End Sub
    Dopo si dovrebbero gestire i valori delle combobox per metterli nel posto giusto (se non ho capito male...).

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno pu˛ immaginare."

  12. #10

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    LocalitÓ
    Cosenza
    EtÓ
    45
    Messaggi
    2811
    Versione Office
    Excel 2013
    Likes ricevuti
    1022
    Likes dati
    979
    Grazie Cromagno, io insistevo con l'evento combo_change e svuotavo la combo con cmb.clear
    La tua Ŕ la strada giusta e ho apportato qualche modifica senza range di appoggio ma tramite matrici a una dimensione. ╚ migliorabile e mi aspetto i maestri del Vba a nuovi suggerimenti.
    File Allegati File Allegati

  13. #11

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    LocalitÓ
    Sardegna
    EtÓ
    37
    Messaggi
    4025
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923
    Ciao Rubik,
    ho solo il cellulare al momento e non riesco ad aprire il tuo file.
    Potresti postare direttamente il codice. Thanks.
    Io avevo pensato ad un nome definito al posto della matrice ma probabilmente Ŕ meglio la tua soluzione :32:

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno pu˛ immaginare."

  14. #12

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    LocalitÓ
    Cosenza
    EtÓ
    45
    Messaggi
    2811
    Versione Office
    Excel 2013
    Likes ricevuti
    1022
    Likes dati
    979
    Tutto in Foglio1
    Codice: 
    Option Explicit
    Dim Matrix()
    Dim Vuota(0)
    
    
    Private Sub ComboBox1_DropButtonClick()
    Call Elenco
        With Me
            .ComboBox1.List = Vuota()
            On Error Resume Next
            .ComboBox1.List = Matrix()
        End With
    End Sub
    
    
    Private Sub ComboBox2_DropButtonClick()
    Call Elenco
        With Me
            .ComboBox2.List = Vuota()
            On Error Resume Next
            .ComboBox2.List = Matrix()
        End With
    End Sub
    
    
    Private Sub ComboBox3_DropButtonClick()
    Call Elenco
        With Me
            .ComboBox3.List = Vuota()
            On Error Resume Next
            .ComboBox3.List = Matrix()
        End With
    End Sub
    
    
    Private Sub ComboBox4_DropButtonClick()
    Call Elenco
        With Me
            .ComboBox4.List = Vuota()
            On Error Resume Next
            .ComboBox4.List = Matrix()
        End With
    End Sub
    
    
    Private Sub ComboBox5_DropButtonClick()
    Call Elenco
        With Me
            .ComboBox5.List = Vuota()
            On Error Resume Next
            .ComboBox5.List = Matrix()
        End With
    End Sub
    
    
    Private Sub ComboBox6_DropButtonClick()
    Call Elenco
        With Me
            .ComboBox6.List = Vuota()
            On Error Resume Next
            .ComboBox6.List = Matrix()
        End With
    End Sub
    
    
    Sub Elenco()
    Dim Dati As Range, Cella As Range, Combo As String, i As Integer, j As Integer
    'Dim Controllo As Boolean
    Set Dati = Worksheets("Foglio1").Range("C5:C10")
    
    
    j = 0
    With Worksheets("Foglio1")
        Erase Matrix()
        For Each Cella In Dati
            'Controllo = False
            For i = 1 To 6
                Combo = "combobox" & i
                If Cella.Value = .OLEObjects(Combo).Object.Value Then
                    'Controllo = True
                    GoTo Successivo
                End If
            Next i
            'If Controllo = False Then
                ReDim Preserve Matrix(j)
                Matrix(j) = Cella.Value
                j = j + 1
            'End If
    Successivo:
        Next
    End With
    Set Dati = Nothing
    
    
    End Sub
    Come dicevo prima Ŕ sicuramente migliorabile in quanto non ho trovato altra soluzione che assegnare una matrice Vuota() per svuotare prima le ComboBox.

Discussioni Simili

  1. Combobox che mostra menu dinamico non funziona
    Di MarcoM nel forum Domande su Excel VBA e MACRO
    Risposte: 19
    Ultimo Messaggio: 05/05/17, 13:06
  2. [Risolto] Men¨ a tendina
    Di Graale nel forum Domande su Excel in generale
    Risposte: 28
    Ultimo Messaggio: 06/03/17, 17:32
  3. men¨ a tendina
    Di graziano nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 17/08/16, 20:31
  4. Come visualizzare la freccettina del menu a tendina convalida dati (No ComboBox)
    Di Gerardo ZuccalÓ nel forum Domande su Excel VBA e MACRO
    Risposte: 52
    Ultimo Messaggio: 02/07/16, 19:43
  5. Menu a tendina
    Di nick0573 nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 13/11/15, 23:08

Tag per Questa Discussione

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •