Sviluppare funzionalita su Microsoft Office con VBA Uscire automaticamente da combobox

Login Registrati
Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
  • Autore
    Articoli
  • #21774 Score: 0 | Risposta

    Giulio
    Partecipante

      Buongiorno a tutti,

      volevo chiedervi un consiglio. Ho un codice di questo tipo:

      Private Sub combobox_Change()

      If combobox.ListIndex = 2 Then
      Dim temp As Variant
      temp = Application.InputBox("Inserire manualmente il colore desiderato", ecc ecc)
      End If
      End Sub

      Fondamentalmente serve a fare in modo che, se si sceglie un determinato campo, si possa inserire manualmente il valore di una variabile temp. Il problema è che mentre si apre la InputBox la combobox rimane comunque aperta, e dà la possibilità di cambiarne il valore. Il risultato è che sarebbe possibile spostarsi dal listIndex=2 mantenendo però la necessità di compilare la InputBox. C'è un modo per forzare l'uscita dalla combobox dentro l'evento?

      #21798 Score: 0 | Risposta

      Giulio
      Partecipante

        Nessun consiglio?

        #21810 Score: 0 | Risposta

        patel
        Moderatore
          51 pts

          non è chiaro il problema, allega un file di esempio con anche spiegazioni

          #21814 Score: 0 | Risposta

          Giulio
          Partecipante

            Chiedo scusa. Allego file di esempio. Noterai che quando scegli "colore personalizzato", ti si apre un inputbox nella quale puoi immettere manualmente il colore, ma la tendina originale rimane ancora aperta e quindi nel frattempo puoi scegliere un altro dei colori standard, che è una cosa assolutamente da evitare. Non vorrei cambiare l'evento da change ad after_update perchè vorrei che l'apertura della inputbox fosse immediata quando scelgo il colore personalizzato. Volevo fare in modo da forzare la chiusura della combobox dentro l'evento change per evitare che si possano scegliere altri colori una volta che si apre l'inputbox per immettere manualmente un colore personalizzato.

            Allegati:
            You must be logged in to view attached files.
            #21818 Score: 0 | Risposta

            Marius44
            Moderatore
              58 pts

              Ciao

              Invece di una InputBox Usa una TextBox (con una Label).

              Quando si apre il Form la TextBox e la Label sono invisibili, se scegli il 4° diventano visibili e col focus sulla TextBox.

              Vedi se va bene.

              Ciao,

              Mario

              Allegati:
              You must be logged in to view attached files.
              #21822 Score: 0 | Risposta

              Giulio
              Partecipante

                Grazie per la risposta Mario, la tua idea funziona ma c'è solo un piccolo problema, nel mio form originale ho saturato spazio per mettere ulteriori controlli 🙂

                Potrei richiamare un nuovo form piccolino con dentro la tua textbox, ma la tengo come ultima soluzione per evitare di appensantire troppo la struttura del file... Secondo te non c'è un modo per forzare l'uscita dalla combo mantenendo l'inputBox? Tipo non è possibile in qualche modo chiamare l'evento exit dentro l'evento change?

                #21823 Score: 0 | Risposta

                Marius44
                Moderatore
                  58 pts

                  Ciao

                  Hai "saturato lo spazio"??? Ma guarda che lo schermo è grande.   

                  A parte lo scherzo, vedi se puoi inserire magari solo la TextBox ed hai risolto.

                  Che io sappia non c'è un modo per uscire da un Change. Spero di sbagliarmi e che qualcuno trovi la soluzione più adatta alle tue esigenze.

                   

                  Ciao,

                  Mario

                  #21824 Score: 0 | Risposta

                  Giulio
                  Partecipante

                    Si Mario, alla fine opterò per la textbox, da qualche parte ce la farò stare, grazie di tutto   

                    #21861 Score: 0 | Risposta

                    MatteoMaz
                    Partecipante
                      1 pt

                      potrebbe essere una soluzione?

                      Private Sub ComboBox1_Change()
                          If ComboBox1.ListIndex = 4 Then
                              cambia
                          End If
                          
                      End Sub
                      
                      Private Sub cambia()
                          Dim temp As Variant
                          Dim i As Integer
                          Dim a As String
                          Dim n
                          
                              For i = 0 To ComboBox1.ListCount - 1
                                  a = a & ComboBox1.List(0) & "|"
                                  ComboBox1.RemoveItem (0)
                              Next
                                  n = Split(a, "|")
                                  temp = Application.InputBox("Inserire manualmente il colore desiderato")
                                  
                              For i = 0 To UBound(n) - 1
                                  ComboBox1.AddItem n(i)
                             Next
                             ComboBox1.AddItem temp
                             ComboBox1.ListIndex = i
                      
                      End Sub
                    Login Registrati
                    Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
                    Rispondi a: Uscire automaticamente da combobox
                    Gli allegati sono permessi solo ad utenti REGISTRATI
                    Le tue informazioni: