You are here:Home-Domande su Excel VBA e MACRO-Popolare una combobox
Popolare una combobox2021-02-14T17:13:42+01:00

Home Forum Domande su Excel VBA e MACRO Popolare una combobox

Taggato: 

Visualizzazione 2 filoni di risposte
  • Autore
    Post
    • AvatarMisterExcel
      Partecipante
        Post totali: 58

        Una buona serata a tutti.

        Avrei un problema che non riesco a risolvere con una combobox nella form.

        Praticamente la combobox, all’apertura della form, è popolata dei dati presenti sulla colonna A (dalla terza riga) del foglio Exce.

        Gli stessi dati possono essere presenti anche più volte nella colonna.

        Nella colonna, inoltre ci sono righe vuote e righe con valore “zero”

        Vorrei creare un codice che, all’apertura della combobox, non mi mostri le righe vuote e le righe con valore “zero”

        In pratica, supponiamo di avere questi dati nella colonna A del foglio:

        CANE

        GATTO

        0,00

        CAVALLO

        (riga vuota)

        ELEFANTE

        (riga vuota)

        0,00

        ORSO

        CANE

        PESCE

        CAVALLO

        Attivando la combobox, io vorrei avere:

        CANE

        GATTO

        CAVALLO

        ELEFANTE

        ORSO

        CANE

        PESCE

        CAVALLO

        E’ possibile scrivere un codice del genere?

        Grazie

      • AvatarKris_9951
        Partecipante
          Post totali: 203

          Ciao MisterExcel!

           

          Prova questo e fai sapere (se vuoi) :-)

          https://www.dropbox.com/s/9wqxi723x904um7/PopolaComboBox.xlsm?dl=0

           

          Codice:

          Private Sub UserForm_Initialize()
              Dim rngdati As Range, cella As Range
              Dim matrice() As Variant
              Dim x As Long
              Set rngdati = ActiveSheet.Range("A3:A" & ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row)
              For Each cella In rngdati.Cells
                  If cella.Value <> 0 And cella.Value <> vbNullString Then
                      x = x + 1
                      ReDim Preserve matrice(1 To x)
                      matrice(x) = cella.Value
                  End If
              Next cella
              
              With Me.ComboBox1
                  .Clear
                  .List = matrice
                  .Style = fmStyleDropDownList
                  .ListRows = 16
              End With
              
              Set rngdati = Nothing
              Erase matrice
          End Sub

           

        • AvatarMisterExcel
          Partecipante
            Post totali: 58

            Grazie Kris_9951. Perfetto!

            Alla prossima!

        Visualizzazione 2 filoni di risposte
        • Devi essere connesso per rispondere a questo topic.