Excel e gli applicativi Microsoft Office Elenco con cella di suggerimento ricerca

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

    nicopana
    Partecipante
      Se in un foglio Excel dispongo di un elenco prodotti, e in un altro di un campo per la ricerca veloce di un prodotto per recuperare unità di misura e prezzo unitario (cella B2 foglio Ricerca nel file allegato), sarebbe possibile avere un menu a tendina dove magari l'utente inizia a scrivere qualche lettera del prodotto ricercato e automaticamente vengono mostrati i risultati selezionati che contengono le lettere digitate? Questo per evitare di andare a sfogliare ogni volta l'elenco.
      Per fare una ricerca più veloce.
      Allegati:
      You must be logged in to view attached files.
      #2634 Score: 0 | Risposta

      D@nilo
      Partecipante
        12 pts
        Buongiorno
        si deve utilizzare una colonna di servizio (ho usato la H del foglio ricerca) in H2 da trascinare in basso
        =SE.ERRORE(INDICE('elenco prodotti'!$B$2:$B$494;AGGREGA(15;6;(RIF.RIGA($B$2:$B$494)/(RICERCA($B$2;'elenco prodotti'!$B$2:$B$494)>0))-RIF.RIGA($B$2)+1;RIF.RIGA($A1)));"")
        poi in convalida dati della cella b2 in ELENCO nella barra della formula incolla
        =SCARTO($H$2;;;MATR.SOMMA.PRODOTTO(--($H$2:$H$494<>"")))
        sempre nella convalida nella scheda messaggio di errore togli la spunta a "mostra messaggio di errore quando i dati immessi non sono validi"
        con questa procedura in convalida dati otterrai tutte le stringhe dell'elenco che contengono le lettere digitate in B2
        Allegati:
        You must be logged in to view attached files.
        #2638 Score: 0 | Risposta

        nicopana
        Partecipante
          Si funziona ottimamente sulla cella B2.
          Ma se io volessi avere poi nel foglio altri campi di ricerca che dovrebbero comportarsi in maniera autonoma? Cioè, nel file ho aggiunto sotto a B2, altre celle con lo stesso campo di ricerca, che vorrei agissero su un db nuovo e completo, invece restano attaccate a quello vecchio eventualmente modificato sulla base della scelta prodotto.
          Allegati:
          You must be logged in to view attached files.
          #2640 Score: 0 | Risposta

          D@nilo
          Partecipante
            12 pts
            Ciao
            sinceramente non ho capito io non vedo altri elenchi....se devi fare altre convalide che puntano ad altri elenchi ci vogliono
            1 gli elenchi
            2 ripetere la stessa procedura per ogni elenco
            oppure fa un esempio pratico
            #2642 Score: 0 | Risposta

            nicopana
            Partecipante
              Si, forse mi sono spiegato male.
              Nel file in revisione 2 che ho allegato al messaggio precedente, avevo aggiunto in B3, B4, B5, ad esempio, altre celle di convalida che però puntano allo stesso elenco.
              L'ho fatto perché magari ho bisogno in diversi punti del foglio di più celle di convalida dove dovrò andare a selezionare prodotti diversi ma dallo stesso elenco
              #2644 Score: 0 | Risposta

              D@nilo
              Partecipante
                12 pts
                Ciao se puntano allo stesso elenco bisogna fare altre colonne di servizio con criteri di estrazione diversi esempio vuoi estrarre tutti quelli che finiscono in A? o E? oppure ....lo sai tu.... fa un esempio e ci si prova
                #2648 Score: 0 | Risposta

                nicopana
                Partecipante
                  No, più che altro mi servirebbe sempre lo stesso elenco con lo stesso criterio di selezione. Per intenderci, la cosa mi serviva per andare a definire i materiali che ho usato in un giorno di lavoro. Quindi ho ipotizzato di usare quei 4-5 campi per definire quelle 4-5 tipologie di materiale che posso usare in una giornata.
                  Quindi quello è l'elenco dei prodotti disponibili, come criterio di selezione mi va benissimo, mi serve solo farlo ripetere in più celle
                  #2650 Score: 0 | Risposta

                  D@nilo
                  Partecipante
                    12 pts
                    Ciao
                    dici che ti serve lo stesso elenco con lo stesso criterio ....quindi ce l'hai.... non capisco cosa vuoi fare.... in attesa di un esempio concreto (tipo digito x voglio ottenere in convalida y).....buona giornata
                    #2651 Score: 0 | Risposta

                    nicopana
                    Partecipante
                      Il mio problema (sull'ultimo file allegato rev 2 c'è già) è questo: se ad esempio in B2 faccio una selezione di un prodotto (facendo una selezione anche sull'elenco chiaramente), vorrei poi in B3 ritornare a disporre dell'elenco per intero, e invece posso solo fare una ricerca nell'elenco ridotto precedentemente.
                      Spero di esser stato più chiaro.
                      #2656 Score: 0 | Risposta

                      D@nilo
                        Ciao ora si
                        Per fare quello che chiedi ci vogliono tante colonne di servizio quante sono le convalide(magari vengo smentito) oppure forse passare per VBA e li non saprei dove mettere le mani
                        #2658 Score: 0 | Risposta

                        albatros54
                        Moderatore
                          89 pts

                          puoi provare cosi,se ho capito, ti posto il codice inserito nel foglio "ricerca" è ti allego anche il file, prova e fai sapere

                          Option Explicit
                          
                          Private Sub ComboBox1_LostFocus()
                              Dim finalrow As Long
                          
                              finalrow = Cells(Rows.Count, 2).End(xlUp).Row
                              Cells(finalrow + 1, 2) = ComboBox1.Value
                              Cells(finalrow + 1, 2).Activate
                              ActiveCell.Offset(0, 1) = Application.WorksheetFunction.VLookup(ActiveCell.Value, ActiveWorkbook.Names.Item("listino").RefersToRange, 4)
                              ActiveCell.Offset(0, 2) = Application.WorksheetFunction.VLookup(ActiveCell.Value, ActiveWorkbook.Names.Item("listino").RefersToRange, 3)
                          End Sub
                          Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?
                          ( Alan Turing)
                          Allegati:
                          You must be logged in to view attached files.
                          #2665 Score: 0 | Risposta

                          nicopana
                          Partecipante
                            Albatros54, grande, siamo sulla buona strada, ma dobbiamo correggere il tiro.
                            Ho visto che la macro che hai creato, mi inserisce in coda il nuovo codice di prodotto che posso selezionare dall'elenco a discesa, e poi magari mi posso agganciare l'unità di misura e il prezzo.
                            Innanzitutto ti ho cambiato subito il file di appoggio, ho visto che la cosa stava diventando più complicata e che sarebbe stato per me complicato effettuare il trapianto all'interno del file definitivo, e quindi te l'ho allegato subito.
                            Allora, io vorrei ripetere quello che succede nella cella in verde (B2) in tutte le altre celle giornaliere della colonna B (poi farlo per ogni mese me lo faccio io da solo), troverai aperto direttamente il foglio di Gennaio.
                            In B2 succede questo: basandosi sull'elenco completo in giallo, io in B2 posso iniziare a digitare qualche lettera (per esempio devo cercare i prodotti contenenti la parola "angolare", inizio a digitare "angol") e provo a schiacciare sulla freccia in basso dell'elenco a discesa, vedo che la selezione disponibile è quella contenente i soli prodotti che contengono la parola angolare (e quindi aiuto chi deve registrare il prodotto a farlo più velocemente). Questo accade perché intanto si trasforma l'elenco nella colonna in rosso, che contiene appunto una selezione dei prodotti contenenti le lettere digitate.
                            una volta che ho trovato il mio prodotto e l'ho selezionato, passo alla cella B3, e vorrei rifare la stessa cosa.
                            Il problema è che l'elenco in rosso mi rimane sulla precedente selezione, e quindi la voce disponibile è solo quella che ho selezionato nella cella appena sopra. E' come se dovessi aggiungere il dettaglio che una volta che ho selezionato un prodotto, l'elenco in rosso ritorna ad essere completo, in modo tale da avere a disposizione sempre l'intera scelta.
                            Allegati:
                            You must be logged in to view attached files.
                            #2678 Score: 0 | Risposta

                            albatros54
                            Moderatore
                              89 pts

                              Allora, seguendo la tua strada non mi conduce in nessun posto.
                              Ti allego il file con le mie modifiche, tu non devi fare altro che selezionare la voce che ti interessa dalla combobox, poi ti porti sulla cella dove vuoi che il dato selezionato venga incollato,naturalmente la colonna sara la "B",e faiclick con il mouse,il dato sara incolato nella cella è nello stesso tempo verranno inseriti i dati nelle altre celle, ti ho bloccato la riga "1", in modo da vare sempre in primo piano la combobox.
                              albatros54

                              Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?
                              ( Alan Turing)
                              Allegati:
                              You must be logged in to view attached files.
                              #2686 Score: 0 | Risposta

                              nicopana
                              Partecipante
                                Va benissimo uguale, non ho capito come funziona, credo sia abbastanza complicata per me, però ti chiederei:
                                - se eseguo l'INCOLLA in una cella della colonna B, l'unità di misura me la prende bene, mentre mi copia il prezzo nella colonna QUANTITA', quando invece me lo deve copiare in PREZZO UNITARIO
                                - nella combobox, piuttosto che farmi vedere il codice prodotto, non posso vedere la descrizione? che è più facile qualora non conosca il codice prodotto, visualizzare una descrizione più estesa da scegliere
                                - una volta scelto il prodotto della Combobox, potrei effettuare in qualunque altra cella del foglio l'operazione di Incolla. Non è possibile a forzare questa operazione solo sulle celle della colonna B? chiaramente vorrei lasciare tutte le altre celle editabili, però solo l'operazione dell'Incolla vorrei che fosse fatta solo sulle celle della colonna B
                                - l'altra cosa importante è questa: non potrei iniziare a digitare qualche lettera in una cella della colonna B, in modo tale che l'elenco viene già in parte ridotto con i soli prodotti che mi interessano e che contengono quelle lettere? in modo tale da effettuare una scelta più guidata e veloce?
                                #2687 Score: 0 | Risposta

                                albatros54
                                Moderatore
                                  89 pts

                                  Per risponderti alla prima , seconda e terza domanda, sostituisci il codice che si trova nell'editor VBA del foglio"gennaio", con quello che ti posto.
                                  per quanto riguarda l'ultima domanda è no, che io sappia, in questo scenario

                                  Private Sub ComboBox1_LostFocus()
                                      Dim finalrow As Long
                                      Set rng = Range("n2:p493")
                                      cella = ActiveCell.Address(False, False)
                                      If Not Intersect(ActiveCell, Range("B:B")) Is Nothing Then
                                          Range(cella) = ComboBox1.Value
                                          Range(cella).Activate
                                          ActiveCell.Offset(0, 1) = Application.WorksheetFunction.VLookup(ActiveCell.Value, rng, 3)
                                          ActiveCell.Offset(0, 3) = Application.WorksheetFunction.VLookup(ActiveCell.Value, rng, 2)
                                      End If
                                  End Sub
                                  
                                  Private Sub Worksheet_Activate()
                                  ComboBox1.ListFillRange = "GENNAIO!n2:n493"
                                  End Sub

                                  Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?
                                  ( Alan Turing)
                                  #2865 Score: 0 | Risposta

                                  nicopana
                                  Partecipante
                                    Mi sembra che funzioni tutto a meno di questo:
                                    - ok per la ricerca guidata, cioè iniziare a digitare qualche tasto per iniziare a ridurre il DB di ricerca
                                    - il problema è che nella combobox vedo sempre i codice prodotto, e non la descrizione
                                    Mi sembra che funzioni tutto a meno di questo:
                                    - ok per la ricerca guidata, cioè iniziare a digitare qualche tasto per iniziare a ridurre il DB di ricerca
                                    - il problema è che nella combobox vedo sempre i codice prodotto, e non la descrizione.
                                    Potrebbe c'entrar qualcosa il fatto che quando salvo il nuovo codice, mi ritorna sul file Excel dicendomi che ci sono delle parti che non possono essere rimosse tramite Controllo documento?
                                    #2869 Score: 0 | Risposta

                                    albatros54
                                    Moderatore
                                      89 pts

                                      Se hai sostituito il codice con quello postato precedentemente, il tutto deve funzionare

                                      Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?
                                      ( Alan Turing)
                                      #2874 Score: 0 | Risposta

                                      nicopana
                                      Partecipante
                                        Ti confermo che ho provato a riscaricare il tuo ultimo file modificato, e a sostituirci all'interno il nuovo testo. Ma mi dà sempre lo stesso problema. Ma a te non ti esce il messaggio di Controllo documento?
                                        Ti allego comunque il file, affinché tu possa verificare che non ci sia un problema da qualche altra parte.
                                        Allegati:
                                        You must be logged in to view attached files.
                                        #2873 Score: 0 | Risposta

                                        nicopana
                                        Partecipante
                                          Ti confermo che ho provato a riscaricare il tuo ultimo file modificato, e a sostituirci all'interno il nuovo testo. Ma mi dà sempre lo stesso problema. Ma a te non ti esce il messaggio di Controllo documento?
                                          Ti allego comunque il file, affinché tu possa verificare che non ci sia un problema da qualche altra parte.
                                          Allegati:
                                          You must be logged in to view attached files.
                                          #2877 Score: 0 | Risposta

                                          albatros54
                                          Moderatore
                                            89 pts

                                            Vai nell'editor VBA, click su "ThisWorkbook" lo apri e nella finestra del modulo incolli il codice sotto

                                            Private Sub Workbook_Open()
                                            Sheets("GENNAIO").ComboBox1.ListFillRange = "GENNAIO!n2:n493"
                                            End Sub

                                            Per quanto riguarda"Controllo Documento",nel mio caso Excel2007", vai sul pulsante in alto a DX della finestra principale, si apre il menu e in basso a sx click sul pulsante"OpzionidiExcel"apri e vai sul menu"Centro Protezione"
                                            click su "Impostazione centro di protezione" apri il menu a sx"Opzioni Privacy"e levi la spunta alla casella"Rimuovi le informazioni personali....." esci e salva il file.
                                            Ti allego il file

                                            Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?
                                            ( Alan Turing)

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

                                            nicopana
                                            Partecipante
                                              Perfetto, ora va tutto bene.
                                              Si potrebbe allargare la combobox? giusto per farci entrare testi più lunghi?
                                              #3040 Score: 0 | Risposta

                                              nicopana
                                              Partecipante
                                                E come si fa a ricopiare la combobox negli altri fogli? Ho copiato il testo di programmazione anche negli altri fogli, ma la combobox non compare
                                                #3046 Score: 0 | Risposta

                                                albatros54
                                                Moderatore
                                                  89 pts
                                                  Seguimi perchè ci sono dei passaggi da fare:
                                                  le combobox le devi inserire tu nei vari fogli, portati sul foglio dove devi inserire la combobx, apri il menu "Sviluppo",menu "controlli"e vai su "inserisci", si apre un men a tendina, sleziona la combobox dal menu "Controlli Activex",incolla la combobox sul foglio.
                                                  Tasto Dx del mouse e fai click sulla combobox che hai inserita, si apre il menu e selezioni"proprieta", nella casella Name cambia il nome in
                                                  Combobox2, in questo caso, per gli altri foglio naturalmente saranno 3,4 ...n.
                                                  a questo punto abbiamo inserito la nostra combobx con il suo numero.
                                                  Vai in VBa Editor e nel foglio"ThisWorkbook" inserisci il codice che ti posto sotto

                                                  [pastacode lang="markup" manual="Private%20Sub%20Workbook_Open()%0ASheets(%22GENNAIO%22).ComboBox1.ListFillRange%20%3D%20%22GENNAIO!n2%3An493%22%0AEnd%20Sub%0A" message="" highlight="" provider="manual"/]

                                                  nel foglio"Gennaio" inserisic il codice sotto

                                                  [pastacode lang="markup" manual="Private%20Sub%20ComboBox1_LostFocus()%0A%20%20%20Dim%20finalrow%20As%20Long%0A%20%20%20%20Set%20rng%20%3D%20Range(%22n2%3Ap493%22)%0A%20%20%20%20cella%20%3D%20ActiveCell.Address(False%2C%20False)%0A%20%20%20%20If%20Not%20Intersect(ActiveCell%2C%20Range(%22B%3AB%22))%20Is%20Nothing%20Then%0A%20%20%20%20%20%20%20%20Range(cella)%20%3D%20ActiveSheet.OLEObjects(%22ComboBox1%22).Object.Value%0A%20%20%20%20%20%20%20%20Range(cella).Activate%0A%20%20%20%20%20%20%20%20ActiveCell.Offset(0%2C%201)%20%3D%20Application.WorksheetFunction.VLookup(ActiveCell.Value%2C%20rng%2C%203)%0A%20%20%20%20%20%20%20%20ActiveCell.Offset(0%2C%203)%20%3D%20Application.WorksheetFunction.VLookup(ActiveCell.Value%2C%20rng%2C%202)%0A%20%20%20%20End%20If%0AEnd%20Sub" message="" highlight="" provider="manual"/]

                                                  nel foglio"febbraio" inserisci il codice sotto

                                                  [pastacode lang="markup" manual="Private%20Sub%20ComboBox2_LostFocus()%0A%20%20%20Dim%20finalrow%20As%20Long%0A%20%20%20%20Set%20rng%20%3D%20Sheets(%22GENNAIO%22).Range(%22n2%3Ap493%22)%0A%20%20%20%20cella%20%3D%20ActiveCell.Address(False%2C%20False)%0A%20%20%20%20If%20Not%20Intersect(ActiveCell%2C%20Range(%22B%3AB%22))%20Is%20Nothing%20Then%0A%20%20%20%20%20%20%20%20Range(cella)%20%3D%20ActiveSheet.OLEObjects(%22ComboBox2%22).Object.Value%0A%20%20%20%20%20%20%20%20Range(cella).Activate%0A%20%20%20%20%20%20%20%20ActiveCell.Offset(0%2C%201)%20%3D%20Application.WorksheetFunction.VLookup(ActiveCell.Value%2C%20rng%2C%203)%0A%20%20%20%20%20%20%20%20ActiveCell.Offset(0%2C%203)%20%3D%20Application.WorksheetFunction.VLookup(ActiveCell.Value%2C%20rng%2C%202)%0A%20%20%20%20End%20If%0AEnd%20Sub%0A%0APrivate%20Sub%20Worksheet_Activate()%0ASet%20dati%20%3D%20ThisWorkbook.Sheets(%22GENNAIO%22).Range(%22n2%3An493%22)%0Acaricabis%20%3D%20dati%0AActiveSheet.OLEObjects(%22ComboBox2%22).Object.List%20%3D%20caricabis%0AEnd%20Sub" message="" highlight="6" provider="manual"/]

                                                  fai attenzione a  inserire il nome giusto della combobox.

                                                  Questa procedura che ti ho mostrato la devi fare per tutti i fogli, ricordandoti di rinominare le varie combobx

                                                   

                                                   

                                                  Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?
                                                  ( Alan Turing)
                                                Login Registrati
                                                Stai vedendo 23 articoli - dal 1 a 23 (di 23 totali)
                                                Rispondi a: Elenco con cella di suggerimento ricerca
                                                Gli allegati sono permessi solo ad utenti REGISTRATI
                                                Le tue informazioni: