Condividi tramite

Combobox che si aggiornano automaticamente

Anonimo
2011-09-22T08:59:35+00:00

Buongiorno a tutti,

Ho bisogno del vostro aiuto anche per capire se esiste una soluzione. Nel foglio1 visualizzo una userForm con 4 combobox che riportano 4 elenchi riportati nel foglio2. Nello specifico: combobox1 A2:A25; combobox2 C2:C20; combobox3 E2:E30; combobox4 G2:G32. La mia domanda è:

Visto che questi elenchi sono soggetti a modifiche perchè possono essere aggiunti oppure tolti alcuni nominativi, é possibile tramite macro fare in modo che nel momento in cui vado a togliere o ad aggiungere qualcuno nei vari elenchi le combobox si aggiornino automaticamente?

Grazie per la considerazione.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

  1. Anonimo
    2011-09-23T11:19:25+00:00

    Grazie Mauro,

    Non posso fare a meno di dire che è stupenda, riesci a rendere tutto semplice. Restando alle 4 combobox devo chiederti altri 2 aspetti:

    1. Se invece di caricare una colonna nella combobox ne carico 2 quale modifica devo aggiungere?
    2. E' possibile rendere invisibili gli ultimi 4 nominativi che vado a caricare nella combobox? Naturalmente questo vale anche per le altre combobox che mi ritrovo sulla UserForm.

    Grazie Mauro.

    Vedi se questo esempio ti aiuta: http://www.maurogsc.eu/esempiforum11/aggiornacombobox.zip

    NOTA. Nella ComboBox1 carico 2 colonne(A e B) anche se ne sarà visibile una sola finche non espandi la ComboBox. Sempre in ComboBox1 *non* carico le ultime 4 righe delle colonne A e B: basta mettere un -4 al valore dell'ultima riga trovata con dati. Vedi codice nell'esempio.

    La risposta è stata utile?

    0 commenti Nessun commento

4 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2011-09-23T16:00:32+00:00

    Grazie Mauro,

    Ti devo ringraziare per tutto quello che hai fatto. Funziona tutto in modo meraviglioso.

    Anche l'allegato è stato utilissimo.

    Grazie a te per il cortese riscontro. Bun lavoro.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-09-23T15:45:41+00:00

    Grazie Mauro,

    Ti devo ringraziare per tutto quello che hai fatto. Funziona tutto in modo meraviglioso.

    Anche l'allegato è stato utilissimo.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-09-23T08:51:45+00:00

    Grazie Mauro,

    Non posso fare a meno di dire che è stupenda, riesci a rendere tutto semplice. Restando alle 4 combobox devo chiederti altri 2 aspetti:

    1. Se invece di caricare una colonna nella combobox ne carico 2 quale modifica devo aggiungere?
    2. E' possibile rendere invisibili gli ultimi 4 nominativi che vado a caricare nella combobox? Naturalmente questo vale anche per le altre combobox che mi ritrovo sulla UserForm.

    Grazie Mauro.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2011-09-23T03:43:18+00:00

    Buongiorno a tutti,

    Ho bisogno del vostro aiuto anche per capire se esiste una soluzione. Nel foglio1 visualizzo una userForm con 4 combobox che riportano 4 elenchi riportati nel foglio2. Nello specifico: combobox1 A2:A25; combobox2 C2:C20; combobox3 E2:E30; combobox4 G2:G32. La mia domanda è:

    Visto che questi elenchi sono soggetti a modifiche perchè possono essere aggiunti oppure tolti alcuni nominativi, é possibile tramite macro fare in modo che nel momento in cui vado a togliere o ad aggiungere qualcuno nei vari elenchi le combobox si aggiornino automaticamente?

    Grazie per la considerazione.

    Semplificando con un'unica ComboBox che recupera i dati dalla colonna A del Foglio1(credo sia poi banale aggiungere i riferimenti per altre ComboBox legate a colonne diverse e/o lavorare su range specifici).

    Questo codice nella UserForm:

    Private sh As Worksheet

    Private Sub UserForm_Initialize()

        Call mAggiornaComboBox

    End Sub

    Public Sub mAggiornaComboBox()

        Dim lRigaA As Long

        Set sh = ThisWorkbook.Worksheets("Foglio1")

        With sh

            lRigaA = .Range("A" & .Rows.Count).End(xlUp).Row

            Me.ComboBox1.RowSource = sh.Name & "!" & "A2:A" & lRigaA

        End With

    End Sub

    Private Sub UserForm_Terminate()

        Set sh = Nothing

    End Sub

    Questo nel modulo di codice del Foglio1(o del foglio dal quale vuoi modificare le ComboBox:

    Private Sub Worksheet_Change(ByVal Target As Range)

        If Target.Column = 1 Then

            UserForm1.mAggiornaComboBox

        End If

    End Sub

    Questo in un modulo standard per fare lo Show della UserForm in modalità ModeLess che la apre in modo non Modal:

    Public Sub mUserForm1Show()

        UserForm1.Show vbModeless

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento