Excel e gli applicativi Microsoft Office Caricare ListBox tramite ComboBox (Excel 2016)

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

    Gret
    Partecipante

      Ciao a tutti  

      avrei bisogno del vostro prezioso aiuto..

      Nel Foglio4 ho una lista di nomi con relativo indirizzo email (A1 NOME; B1 EMAIL, A2 NOME; B2 EMAIL ecc), ecco come faccio a caricarle in una combobox in modo che nella listbox esca l'indirizzo email?

      Sia ComboBox e ListBox sono contenute in una UserForm (Name: UserForm1, Caption: Enter Data).

      Vi ringrazio in anticipo per ogni suggerimento e buona serata  

      #15344 Score: 0 | Risposta

      vecchio frac
      Senior Moderator
        238 pts

        Il controllo Combobox espone la proprietà RowSource che puoi collegare al foglio e al range dove risiedono i dati.

        Il controllo stesso poi ha un evento Change che puoi sfruttare per riempire la Listbox al variare del dato selezionato.

        Poi ci sarebbero altre domande, quali: la listbox viene caricata sempre solo col dato selezionato nella combo? oppure ogni volta che selezioni un valore dalla combo, il relativo dato si aggiunge a quelli esistenti (selezionati in precedenza)?

        #15348 Score: 0 | Risposta

        Gret
        Partecipante

          Grazie mille per aver risposto!

          Riguardo alla prima domanda:

          se vuoi dire che se nella combobox seleziono un nome (A1) nella listbox esce l'email relativo (B1) allora la risposta è sì.

          Le altre email non vengono visualizzate, ma solo quella relativa al nome.

          #15350 Score: 0 | Risposta

          vecchio frac
          Senior Moderator
            238 pts

            D'accordo, ma volevo sapere se ogni volta che scegli un nome dalla combobox, quello che hai selezionato si aggiunge agli altri valori già presenti nella listbox, o se invece quest'ultima viene svuotata ogni volta (per cui conterrà sempre solo un valore). Io credo la prima ipotesi, ma attendo conferma 🙂

            Comunque hai trovato la proprietà RowSource? La puoi anche inizializzare nell'evento di Initialize del form (e magari è la strada migliore, perchè così puoi avere un riferimento dinamico al range dei dati)

            #15351 Score: 0 | Risposta

            Gret
            Partecipante

               

              vecchio frac ha scritto:

              se ogni volta che scegli un nome dalla combobox, quello che hai selezionato si aggiunge agli altri valori già presenti nella listbox

              Vuoi dire che nella listbox si crea tipo lista?

              vecchio frac ha scritto:

              se invece quest'ultima viene svuotata ogni volta (per cui conterrà sempre solo un valore)

              nel senso che ogni volta che scelgo un nome dalla combobox, di seguito la listbox si popola con la relativa email; nel momento in cui scelgo un altro nome nella combobox il contenuto precedente si cancella (listbox) e si ripopola sempre con l'email relativa al nome?

              Se ho detto bene, ho bisogno che ogni volta che scelgo un nome, la listbox si svuoti dai contenuti precedenti perchè deve contenere solo un valore.

               

              #15356 Score: 0 | Risposta

              vecchio frac
              Senior Moderator
                238 pts

                Bene, allora ti faccio riflettere sul fatto che la listbox per sua natura è un controllo che serve a contenere una lista di elementi magari con più valori (immagina un elenco con alcune colonne). Per quello che serve a te è un po' troppo, se in effetti ti basta avere solo un valore per volta. Ti basta un controllo Textbox.

                Comunque si può fare tutto   

                 

                #15357 Score: 1 | Risposta

                vecchio frac
                Senior Moderator
                  238 pts

                  Guarda, allego un banalissimo file di esempio confezionato proprio adesso per farti vedere cosa intendo.

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

                  vecchio frac
                  Senior Moderator
                    238 pts

                    Per la fretta h dimenticato di inserire qualcosa per avviare il form   

                    Fai Alt-F11 per l'IDE, poi Ctrl-R pe rla finestra progetti, scegli l'userform, e avvialo con F5.

                    #15380 Score: 0 | Risposta

                    Gret
                    Partecipante

                      Buongiorno,

                      ho provato la tua soluzione, modificando solo il foglio e togliendo textbox e label, ma mi evidenzia questa frase:

                      Set email = r.Find(ComboBox1, lookat:=xlWhole).Offset(, 1)

                      con il seguente messaggio: oggetto variabile o blocco with variabile non impostato.

                      però se provo in una nuova cartella, ricominciando da 0, e inserendo nel foglio1 nomi e email, funziona alla perfezione.

                      Comunque ho risolto mettendo un pulsante che mostra la userform nel foglio4, ma giusto per curiosità come si risolve l'arcano mistero che se le email sono ubicate in un foglio diverso da dove esce la userform non funziona, se la userform è nello stesso foglio dove ci sono le email funziona?

                      Ho provato inserendo il nome del foglio dove ci sono le email seguito da .Select, ho provato anche worksheets ma niente...

                      Ringrazio per l'aiuto ricevuto e buona festa della Liberazione.

                      #15384 Score: 1 | Risposta

                      vecchio frac
                      Senior Moderator
                        238 pts

                        Per sicurezza qualifica per esteso il riferimento al range "r" nell'evento Initialize del form:

                        Set r = worksheets("Foglio1").Range("A1").CurrentRegion.Resize(, 1)

                        dove al posto di foglio1 devi mettere il nome foglio dove si trovano i dati da pescare. Inoltre non devi digitare niente nella combobox: devi solo selezionare un nome esistente.

                        #15416 Score: 0 | Risposta

                        Gret
                        Partecipante

                          Buongiorno,

                          che dire...Grazie mille funziona alla perfezione.

                          Ancora grazie e buon weekend  

                        Login Registrati
                        Stai vedendo 11 articoli - dal 1 a 11 (di 11 totali)
                        Rispondi a: Caricare ListBox tramite ComboBox (Excel 2016)
                        Gli allegati sono permessi solo ad utenti REGISTRATI
                        Le tue informazioni: