Excel e gli applicativi Microsoft Office estrazione valori da cartella A su selezione in cella con convalida da elenco

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

    rs4464
    Partecipante

      Salve,

      vorrei inserire nella cartella "model" una parte della descrizione cliente nella cella verde (ad esempio "TTA' DI RO" in modo che venga proposto un elenco di nomi che contengono quella stringa ( nomi che fanno parte delle celle della colonna "descrizione cliente" della cartella "riepilogo" ) . Nello specifico dovrebbe aprirsi un elenco contenente ROMA e ROTTERDAM . Dopo aver selezionato uno dei valori, ad esempio ROTTERDAM, dovrebbe apparire il relativo CODICE CLIENTE e selezionando la cella BENEFICIARI dovrebbe aprirsi un elenco contenente le voci "DIPENDENTI" , "INSEGNANTI" e "INFERMIERI". Selezionando INSEGNANTI, la cella DETTAGLIO dovrebbe mostrare l'unico valore possibile ( perché solo una riga del riepilogo soddisfa quella condizione ) e cioè COMPENSI E SCRUTINI . Allo stesso modo in automatico dovrebbero riempirsi anche le celle Data pagamento, Tipi di pagamento e Metodi di pagamento.

      Saluti

      Roberto

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

      vecchio frac
      Senior Moderator
        237 pts

        A parte gli errori sui collegamenti mancanti e a parte che =ListaVariabile ritorna un errore per cui non è agevole ricostruire lo scenario di partenza, per quel che mi ricordo mi sembra che in una cella normale con una convalida non è possibile inserire una stringa parziale per farsi tornare in riepilogo tutte le corrispondenze di un elenco tra cui scegliere quella desiderata.

        Non so se nelle versioni più recenti di Excel la situazione è cambiata (che Excel utilizzi?).

        L'escamotage classico è intercettare un doppio clic nella cella desiderata e far comparire (sovrapposto alla cella) un controllo ListBox riempito con l'elenco. Il controllo ListBox permette infatti, digitando le prime lettere, un filtro nell'elenco. Una volta compiuta la scelta il controllo ListBox viene nascosto e il dato compare in cella.

        Per la seconda parte della questione, una volta scelta una voce in model, si va a cercare le corrispondenze di beneficiari in riepilogo, e in funzione di quello la corrispondente voce di dettaglio. Qui invece che formule vedrei meglio qualche riga di codice che punti al database magari aprendolo direttamente con ADO 🙂

        Nulla di impossibile ma bisogna lavorarci un po' su.

        Potrei consigliarti a questo punto (codice per codice) perfino uno Userform, il che risolverebbe agevolmente un bel po' di problemi di gestione, soprattutto la questione del filtraggio in casella di riepilogo.

        #6795 Score: 0 | Risposta

        rs4464
        Partecipante

          Ti ringrazio per il momento. Devo confessare di non aver ripulito bene il file, è sicuramente rimasto il foglio di lavoro denominato " Foglio formule " dove ho  cercato di risolvere la questione della creazione dell'elenco in base alla digitazione parziale della descrizione cliente ( nella colonna sotto la cella " Elenco suggeritore " venivano mostrati i valori che contenevano la stringa parziale e questi venivano mostrati nell'elenco del primo foglio; c'era ancora però qualcosa da sistemare perché in certi casi non veniva mostrato l' ultimo valore ) . Se avessi la pazienza di aiutarmi, anche tramite qualche riga di codice, mi risolveresti un bel problema.

          Saluti

          Roberto

          #6796 Score: 0 | Risposta

          vecchio frac
          Senior Moderator
            237 pts

            Avendo un po' di tempo si riesce a fare tutto.

            La domanda successiva è: come te la cavi con VBA? nel senso che noi possiamo abbozzarti un modello funzionante ma per le successive modifiche, correzioni, integrazioni, eventuali aggiustamenti e aggiunte di funzionalità (in uno: per la successiva manutenzione), dovrai cercare di venirne fuori da solo, naturalmente con l'ampio supporto che questa comunità offre da sempre 🙂

            #6805 Score: 0 | Risposta

            rs4464
            Partecipante

              Ho già scritto , prendendo spunto da tracce esistenti e poi manutenuto , programmi in VBA per cui credo sarebbe sufficiente un " semilavorato " che poi provvederei ad affinare .

              #6824 Score: 0 | Risposta

              vecchio frac
              Senior Moderator
                237 pts

                Benissimo allora non resta che cominciare a ragionare. Dicci come vuoi procedere.

                Parti tu col preparare un form di partenza con i campi da compilare? alleghi un file simile allo scenario ma senza collegamenti? Cerchiamo di andare avanti con quello che hai già postato?

                #6826 Score: 0 | Risposta

                rs4464
                Partecipante

                  Possiamo partire da quello che ho già postato, il file "model" che contenga solo il primo dei due fogli, quello che si chiama "Inserire beneficiari" e l'altro file, "riepilogo".

                  Grazie e saluti

                  Roberto

                  #6836 Score: 0 | Risposta

                  vecchio frac
                  Senior Moderator
                    237 pts

                    Il "riepilogo" è a sola lettura? cioè si pescano dati ma non vi si scrivono?

                    Nel "model", poichè non ci sono i collegamenti validi, trovo tutto vuoto (le formule non funzionano), che valori devono esserci nelle varie colonne calde, cioè A, C, E, F?

                    Che significato ha la colonna I delle formule usate?

                    p.s. inserendo valori a mano  in colonna B (visto che senza collegamenti attivi è tutto zero), ho constatato che le colonne E e F si riempiono di conseguenza, e l'elenco o distinta pesca alcuni valori della convalida dati. Non ho capito bene la logica delle formule, ma credo di aver afferrato il senso del tutto 🙂

                    #6838 Score: 0 | Risposta

                    rs4464
                    Partecipante

                      Nella colonna " Stato " del riepilogo vorrei poter scrivere diversi stati della lavorazione , magari copiandoci di volta in volta che un utente lavora nel foglio " model " la sua casella aggiornata " Note " tra un elenco di valori da convalida .

                      Non far caso ai nomi rimasti presenti in Gestione Nomi, facevano parte dei tentativi che avevo fatto e non è detto che servano ancora .

                      #6867 Score: 0 | Risposta

                      vecchio frac
                      Senior Moderator
                        237 pts

                        Eccomi qui con una piccola proposta, tanto per cominciare.

                        Posiziona model_VF e riepilogo nella stessa cartella e avvia model_VF.

                        Pigia il pulsante "show form" e vediamo cosa succede.

                        Non succederà molto in verità, però serve a capire il meccanismo. I dati recuperati non sono tanti (solo il codice città e per giunta solo il primo) e poi bisogna magari condizionare le scelte successive alla scelta della listbox ma intanto vediamo se sono riuscito a rispettare la tua esigenza.

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

                        albatros54
                        Moderatore
                          81 pts

                          Mi ha intrigato, la scelta di VF con il collegamento "ADODB.Connection",perchè?ma perchè non apro e chiudo il file dove debbo leggere i dati da importare.
                          Mi sono documentato un po su SQL , Query che di si volglia, e ho apportato una piccola modifica al file postato da VF.
                          pero vorrei capire queste righe di codice:

                          .Provider = "MSDASQL"
                          .ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};" & _
                          "DBQ=" & s & "; ReadOnly=False;"
                          .Open

                          If IsNull(rs(0))
                          perchè rs(0)

                           

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

                          vecchio frac
                          Senior Moderator
                            237 pts

                            Oh LOL ma certo, e sempre ADO è 🙂

                            rs(0) è semplicemente l'unico campo restituito (si parte da zero come con gli indici di un array)

                            #6876 Score: 0 | Risposta

                            albatros54
                            Moderatore
                              81 pts

                              vecchio frac wrote:sempre ADO è

                              Miiii! ! Siculo è 

                              vecchio frac wrote

                              #6877 Score: 0 | Risposta

                              rs4464
                              Partecipante

                                Buongiorno vecchio frac,

                                ho provato a fare quanto da te suggerito, inserendo il foglio "riepilogo" insieme al foglio "Inserire beneficiari" ed ho cliccato sul bottone "Show form" . Viene fuori un Errore di run-time: Microsoft Driver ODBC Errore generale. Impossibile aprire la chiave Temporary(volatile) Ace DSN for process 0x1d58..... Cosa intendevi dicendo di avviare model_VF ?

                                #6878 Score: 0 | Risposta

                                rs4464
                                Partecipante

                                  Scusami, avevo capito un'altra cosa ( è lunedì mattina per tutti...). Ho fatto quello che mi hai detto ed ho cliccato sul bottone. Si apre una finestra con le quattro città. Io vorrei che questo accadesse sulla digitazione(anche parziale) dei caratteri nella cella con sfondo verde. Poi una volta selezionata la città dovrebbero aprirsi in sequenza le altre tendine per la scelta dei beneficiari, del dettaglio ecc ecc....

                                  #6879 Score: 1 | Risposta

                                  vecchio frac
                                  Senior Moderator
                                    237 pts

                                    rs4464 wrote:vorrei che questo accadesse sulla digitazione(anche parziale) dei caratteri nella cella con sfondo verde

                                    Questo lo avevo ben capito, ma siccome non si può fare avevo pensato a inserire i dati mediante una userform, il controllo ListBox permette la digitazione parziale per il recupero del dato (nel mio codice probabilmente c'è ancora un riferimento a Label2, una label di test, che va tolto altrimenti si genera un errore).

                                    #6880 Score: 0 | Risposta

                                    rs4464
                                    Partecipante

                                      Per la verità la prima parte, avere l'elenco di quelle occorrenze che soddisfano la digitazione parziale nella cella verde, l' avevo ottenuto ( non era preciso, probabilmente era da affinare....). Prova a controllare il file che ti allego. Era la parte successiva, avere gli elenchi dei beneficiari o del dettaglio con i valori relativi alla città selezionata, la cosa che non mi era riuscita...

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

                                      vecchio frac
                                      Senior Moderator
                                        237 pts

                                        rs4464 wrote:avere l'elenco di quelle occorrenze che soddisfano la digitazione parziale nella cella verde, l' avevo ottenuto

                                        Uff non ci riesco, non riesco a verificare questa cosa.

                                        Fermo restando che ho gli errori dei collegamenti non trovati. 

                                        E' la colonna B del foglio formule la chiave ma anche se al posto delle formulacce inserisco dei valori, e vedo il filtro nelle colonne adiacenti, poi nella famosa cella verde non ottengo le corrispondenze volute in caso di digitazione parziale. Sto sbagliando qualcosa e non so cosa 🙁

                                        #6884 Score: 0 | Risposta

                                        rs4464
                                        Partecipante

                                          Per la prima parte avevo usato questo come esempio : https://www.youtube.com/watch?v=oLxElItdMZE

                                          In realtà a volte funziona ( anche se non correttamente, mi sembra che non tenga conto dell'ultimo valore da proporre nell'elenco ) mentre a volte vengono fuori errori di riferimento circolare . . .

                                          #6888 Score: 0 | Risposta

                                          albatros54
                                          Moderatore
                                            81 pts

                                            Nel file che ti allego ho inserito una combobox,che potrebbe essere messa nella cella Verde, quando attivi il foglio"Beneficiari" la combobox aggiunge i valori , se tu digiti nella combobox , ti seleziona gli item che cominciano per quello che inserisci, se ho capito.

                                            ti allego file

                                             

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

                                            rs4464
                                            Partecipante

                                              La Combobox dovrebbe essere in grado di mostrare un elenco con i valori (select distinct) che contengono, in qualsiasi posizione della stringa, inizio, fine o in posizione intermedia, quello che si sta digitando nella cella verde. Quindi, se scrivo "citt" l'elenco dovrà contenere tutte e quattro le città mostrate una sola volta. Se scrivo "am" l'elenco dovrà contenere le sole due città di Amsterdam e Rotterdam. Dopo averne selezionata e confermata una e solo una nella Combobox, ad esempio Amsterdam, cliccando nella cella Beneficiari dovrebbe aprirsi un ulteriore elenco a tendina con le voci "Netturbini" "Infermieri" e "Calciatori". Una volta scelta la tipologia di beneficiari "Infermieri", cliccando nella cella Dettaglio dovrebbe comparire solo la stringa "Borse di studio"....e così via. Non è semplice ma spero di essere stato un po' più chiaro....

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

                                              albatros54
                                              Moderatore
                                                81 pts

                                                rs4464 wrote:Se scrivo "am" l'elenco dovrà contenere le sole due città di Amsterdam e Rotterdam

                                                No,perche la combobox cerca tutte le parole che iniziano con"am" non tutte le parole che contengono"am"

                                                 

                                                Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                                                Sempre il mare, uomo libero, amerai!
                                                ( Charles Baudelaire )
                                                #6894 Score: 0 | Risposta

                                                vecchio frac
                                                Senior Moderator
                                                  237 pts

                                                  albatros54 wrote: ho inserito una combobox

                                                  Questo era l'escamotage di cui parlavo all'inizio ed è una buona idea.

                                                  Mi sembrava di semplificare proponendo uno userform in cui pilotare le scelte di diverse caselle di riepilogo dipendenti le ultime dalle precedenti, sia per avere tutto sott'occhio che per non costringere l'utente a posizionarsi in celle diverse per operare la propria scelta.

                                                  #6895 Score: 0 | Risposta

                                                  rs4464
                                                  Partecipante

                                                    OK ma per le scelte successive come devo fare ?

                                                    #6896 Score: 0 | Risposta

                                                    albatros54
                                                    Moderatore
                                                      81 pts

                                                      vecchio frac wrote:Questo era l'escamotage di cui parlavo all'inizio ed è una buona idea.

                                                      nel post#6888 avevo proposto  la tua scelta avendo con la userform, che doveva essere implementata,tutto sotto controllo, ma si vede che a rs4464 non piace

                                                       

                                                      Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                                                      Sempre il mare, uomo libero, amerai!
                                                      ( Charles Baudelaire )
                                                    Login Registrati
                                                    Stai vedendo 25 articoli - dal 1 a 25 (di 122 totali)
                                                    Rispondi a: estrazione valori da cartella A su selezione in cella con convalida da elenco
                                                    Gli allegati sono permessi solo ad utenti REGISTRATI
                                                    Le tue informazioni: