Problemi con ComboBox



  • Problemi con ComboBox
    di trump61 data: 08/02/2016 17:36:17

    Ciao sono di nuovo qui, sto cercando di realizzare un file che dovrebbe servirmi a compilare una scheda manutentiva. Mi trovo davanti a questa situazione che non so come ovviare, anche perchè non mi era mai capitata. Quando vado ad inserire i dati che mi devono comparire nella combo box se sbaglio la selezione nella combo box precedente mi ritrovo sia i dati di quella selezionata per errore che quelli giusti, questa cosa l vorrei evitare. Adesso cerco di spiegarmi meglio, in una UserForm ci sono varie combobox oltre il resto, la prima è indipendente perché mi va selezionare una data, altre sono indipendenti e non anno parte del mio problema, poi ci sono quelle incriminate. La prima mi fa selezionare una delle 5 linee che necessitano di questa manutenzione, selezionata la linea sulla prima combobox, la seconda si riempirà con i nome delle Stazioni di quella linea, ma se per errore ho selezionato la linea sbagliata e poi seleziono quella giusta mi ritrovo sulla tendina della ComboBox le stazioni delle due linee, questo vorrei non succedesse, anche perché la Combo successiva è meno intuitiva e se compaiono più dati potrebbe provocare un errore nel dato immesso perché sono una serie di numeri.
    Questo è il codice che sto ancora scrivendo, lo sbaglio è qui?

     
    Private Sub UserForm_Activate()
    Dim Z As Date
    Dim G, K, L, N, M, Y
    Z = Date
    UserForm1.ComboBox1.AddItem Z - 1
    UserForm1.ComboBox1.AddItem Z
    UserForm1.ComboBox1.AddItem Z + 1
      For G = 1 To 2
    UserForm1.ComboBox6.AddItem Choose(G, "3 - 4", "2 - 3")
    Next
     For K = 1 To 2
    UserForm1.ComboBox7.AddItem Choose(K, "3 - 4", "2 - 3")
    Next
     For L = 1 To 6
    UserForm1.ComboBox8.AddItem Choose(L, "4", "4,5", "5", "5,5", "6", "7")
    Next
    For N = 1 To 6
    UserForm1.ComboBox9.AddItem Choose(N, "4", "4,5", "5", "5,5", "6", "7")
    Next
    For M = 1 To 6
    UserForm1.ComboBox12.AddItem Choose(M, "6,5", "7", "7,5", "8", "9", "10")
    Next
    For Y = 1 To 6
    UserForm1.ComboBox13.AddItem Choose(Y, "6,5", "7", "7,5", "8", "9", "10")
    Next
    End Sub
    
    
    Private Sub UserForm_Initialize()
    Dim Linea, alfa, T
    Linea = Array("MetroA", "MetroB", "RomaLido", "DepositoMA", "DepositoMB")
    For T = LBound(Linea) To UBound(Linea)
    UserForm1.ComboBox2.AddItem Linea(T)
    Next
    End Sub
    
    Private Sub ComboBox1_Change()
    Dim lng As Long
        With Me
            .ComboBox1.Value = Format(.ComboBox1.Value, " dd/ mm /yyyy")
        End With
    End Sub
    Private Sub ComboBox2_Change()
    Dim MetroA, MetroB, RomaLido, DepositoMA, DepositoMB, W, R, P, S, Q
    Dim var1
    var1 = UserForm1.ComboBox2.Text
    Select Case var1
      Case Is = "MetroA"
        For Q = 1 To 8
        UserForm1.ComboBox3.AddItem Choose(Q, "Battistini", "Ottaviano", "Lepanto", "Termini", "S.Giovanni", "Arco_di_Travertino", "Cinecitta", "Anagnina")
    Next
      Case Is = "MetroB"
        For W = 1 To 9
    UserForm1.ComboBox3.AddItem Choose(W, "Rebibbia", "Quintiiani", "Castro Pretrorio", "Garbatella", "Magliana", "Eur Fermi", "Laurentina", "Conca D'Oro", "Jonio")
    Next
         Case Is = "RomaLido"
         For R = 1 To 7
    UserForm1.ComboBox3.AddItem Choose(R, "Roma Porta San Paolo", "Magliana", "Vitinia", "Acilia", "Ostia Antica", "Lido Centro", "Colombo")
    Next
         Case Is = "DepositoMA"
        For P = 1 To 1
    UserForm1.ComboBox3.AddItem Choose(P, "Osteria del Curato")
    Next
        Case Is = "DepositoMB"
        For S = 1 To 1
    UserForm1.ComboBox3.AddItem Choose(S, "Magliana Deposito")
    Next
      End Select
    End Sub
    
    Private Sub ComboBox3_Change()
    Dim alfa, beta, delta, lambda, teta, omega, gamma, rho, fi, zeta, AA, BB, CC, DD, EE, FF, GG, HH, LL, MM, NN
    Dim var2
    alfa = "Dev.1AB-2AB-3AB-4AB"
    beta = "Dev,5AB-6AB-7AB"
    delta = "Dev.1AB-2AB-3AB"
    lambda = "Dev.4AB-5AB"
    teta = "Dev.11AB-12AB"
    omega = "Dev,1AB-3AB"
    gamma = "Dev.12AB"
    rho = "Dev.1AB-2AB-4AB"
    fi = "Svincolo_Dev.7AB-8AB-10AB"
    zeta = "Svincolo_Dev.5AB-6AB-9AB"
    var2 = UserForm1.ComboBox3.Text
    Select Case var2
      Case Is = "Battistini"
        For AA = 1 To 2
    UserForm1.ComboBox4.AddItem Choose(AA, alfa, beta)
    Next
      Case Is = "Ottaviano"
        For BB = 1 To 2
    UserForm1.ComboBox4.AddItem Choose(BB, delta, lambda)
    Next
         Case Is = "Lepanto"
         For CC = 1 To 1
    UserForm1.ComboBox4.AddItem Choose(CC, teta)
    Next
         Case Is = "Termini"
        For DD = 1 To 1
    UserForm1.ComboBox4.AddItem Choose(DD, delta)
    Next
        Case Is = "S.Giovanni"
        For EE = 1 To 1
    UserForm1.ComboBox4.AddItem Choose(EE, omega)
    Next
    Case Is = "Arco_di_Travertino"
        For FF = 1 To 1
    UserForm1.ComboBox4.AddItem Choose(FF, delta)
    Next
    Case Is = "Cinecitta"
        For GG = 1 To 1
    UserForm1.ComboBox4.AddItem Choose(GG, gamma)
    Next
    Case Is = "Anagnina"
        For HH = 1 To 3
    UserForm1.ComboBox4.AddItem Choose(HH, rho, fi, zeta)
    Next
      End Select
    End Sub
    
    



  • di patel data: 08/02/2016 19:09:48

    allega un file di esempio per testare il codice





  • di trump61 (utente non iscritto) data: 08/02/2016 20:04:27

    Appena a casa lo posto



  • di trump61 data: 09/02/2016 11:58:42

    Ciao ho postato il file c'è solo la parte del codice perchè per ora ho realizzato solo quella



  • di Albatros54 data: 09/02/2016 12:39:52

    Se ho capito.
     
    Private Sub ComboBox2_Change()
    Dim MetroA, MetroB, RomaLido, DepositoMA, DepositoMB, W, R, P, S, Q
    Dim var1
    var1 = UserForm1.ComboBox2.Text
    
    Select Case var1
      Case Is = "MetroA"
      UserForm1.ComboBox3.Clear <<<<======Aggiunta
        For Q = 1 To 8
        UserForm1.ComboBox3.AddItem Choose(Q, "Battistini", "Ottaviano", "Lepanto", "Termini", "S.Giovanni", "Arco_di_Travertino", "Cinecitta", "Anagnina")
    Next
      Case Is = "MetroB"
        UserForm1.ComboBox20.Clear <<<<======Aggiunta
        For W = 1 To 9
    UserForm1.ComboBox20.AddItem Choose(W, "Rebibbia", "Quintiliani", "Castro_Pretrorio", "Garbatella", "Magliana", "Eur_Fermi", "Laurentina", "Conca_D_Oro", "Jonio")
    Next
         Case Is = "RomaLido"
           UserForm1.ComboBox21.Clear <<<<======Aggiunta
         For R = 1 To 6
    UserForm1.ComboBox21.AddItem Choose(R, "Roma_Porta_San_Paolo", "Vitinia", "Acilia", "Ostia_Antica", "Lido Centro", "Colombo")
    Next
         Case Is = "DepositoMA"
           UserForm1.ComboBox22.Clear <<<<======Aggiunta
        For P = 1 To 1
    UserForm1.ComboBox22.AddItem Choose(P, "Osteria_del_Curato")
    Next
        Case Is = "DepositoMB"
          UserForm1.ComboBox23.Clear <<<<======Aggiunta
        For S = 1 To 1
    UserForm1.ComboBox23.AddItem Choose(S, "Magliana_Deposito")
    Next
      End Select
    End Sub
    






  • di trump61 data: 09/02/2016 13:05:07

    Grazie sembra che funzioni l'ho provata al volo