Creare database con Excel



  • Creare database con Excel
    di peppe2014 (utente non iscritto) data: 13/04/2014 18:26:39

    In un foglio di lavoro di Excel 2010 ho una raccolta di voci bibliografiche; alle colonne A, B, C ci sono le parole chiave, che individuano l'articolo (una parola per ciascuna colonna). Vorrei potere estrarre i dati in un altro foglio di lavoro, in modo che ricercando per parola chiave, venissero elencati tutti i record che contengono quella determinata parola chiave. Se ad esempio faccio la ricerca utilizzando la parola GUIDA, vorrei che comparissero tutti i record che nella colonna A, oppure nella colonna B oppure nella colonna C hanno la parola GUIDA.
    Vorrei inoltre che la scelta della parola chiave non fosse libera, ma avvenisse da un menu a tendina in cui sono elencate tutte le parole chiave presenti nelle colonne A-B-C.



  • di totygno71 (utente non iscritto) data: 14/04/2014 13:16:34

    Penso che la descrizione del tuo problema sia un po "nebulosa" è per questo che nessuno è riuscito a darti una risposta...
    Ti conviene allegare il file di esempio con i dati di partenza e il risultato voluto_



  • di peppe2014 (utente non iscritto) data: 14/04/2014 18:28:00

    Ho allegato il file. Come si vede, vi sono due fogli di lavoro. Nel foglio "Bibliografia" ci sono tutti i dati. Nel foglio Ricerca voglio ricercare i dati sulla base di alcune parole chiave. Ho individuato tre chiavi: la chiave 1, la chiave 2 e la chiave 3. La prima indidividua l'argomento in generale, la seconda l'argomento più in dettaglio, la terza individua il dettaglio più fine. Vorrei che sotto la riga di ricerca comparissero i record filtrati sulla base di tali parole chiave. In pratica, vorrei fare sul foglio "Ricerca" quello che normalmente riesco a fare con il Filtro automatico sul foglio principale "Bibliografia".



  • di alfrimpa (utente non iscritto) data: 15/04/2014 18:17:01

    Ciao Peppo,

    Ho provato a fare qualcosa con il tuo file; ovviamente è ancora grezzo e andrebbe rifinito.

    Per il momento ho messo il menù a tendina solo per la chiave1 perchè non so se le tre chiavi devono essere interdipendenti (ossia la terza dipendere dalla seconda e la seconda dalla prima) oppure libere.

    Sul foglio Ricerca inserisci una o più chiavi e poi clicca sul tasto corrispondente.

    Fai delle prove anche per verificare la correttezza dei risultati.

    Fammi sapere

    Alfredo





  • di peppe2014 (utente non iscritto) data: 15/04/2014 19:10:34

    Intanto ti ringrazio molto. Sul mio PC al momento non ho il programma per aprire il file .rar, proverò domani. Intanto ti dico che le tre chiavi devono essere interdipendenti: per ogni chiave, nel menù a tendina devono comparire solo le rispettive sottochiavi.



  • di peppe2014 (utente non iscritto) data: 15/04/2014 23:45:38

    Il file funziona con la chiave 1. Come accennavo le altre due chiavi devono essere interdipendenti. Peró c'è un problema: se aggiungo altre righe al foglio Bibliografia la ricerca continua a funzionare o occorre modificare la macro? Grazie.



  • di alfrimpa (utente non iscritto) data: 16/04/2014 14:38:44

    Ciao Peppo

    Allora relativamente alla tua seconda domanda, se guardi il codice qui sotto ho modificato (in modo che possa farlo anche tu) le dimensioni del database.

    Il problema serio invece (almeno per il mio livello di conoscenza di Excel) sono i menù atendina dinamici interdipendenti.

    Per crearli è necessario inserire nella cartella di lavoro tutta una serie di nomi riferiti a chiave1, 2 e 3 e, come forse saprai, Excel non consente l'inserimento di nomi con spazi all'interno.

    Comunque proverò a pensarci ancora su oppure se tu puoi eventualmente "fare a meno" di questi menù a tendina.

    Ciao

    Alfredo
     
    Sub MacroChiave1_2_3()
        Range("a11:k50").ClearContents
        Sheets("BIBLIOGRAFIA").Range("$A$3:$K$539").AutoFilter Field:=9, Criteria1:= _
            [b4]
        Sheets("BIBLIOGRAFIA").Range("$A$3:$K$539").AutoFilter Field:=10, Criteria1:= _
            [b5]
        Sheets("BIBLIOGRAFIA").Range("$A$3:$K$539").AutoFilter Field:=11, Criteria1:= _
            [b6]
        Sheets("BIBLIOGRAFIA").Range("a4").CurrentRegion.Copy
        Sheets("RICERCA").Range("a10").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("I10:K50").ClearContents
        Range("A11").Select
        Sheets("BIBLIOGRAFIA").Range("$A$3:$K$539").AutoFilter
    End Sub






  • di alfrimpa (utente non iscritto) data: 16/04/2014 14:41:07

    Se per te non è un problema si potrebbero togliere gli spazi dalle chiavi 1, 2 e 3
    e vedere come viene.

    Cosa ne pensi?

    Alfredo





  • di peppe2014 (utente non iscritto) data: 16/04/2014 15:36:58

    Posso fare a meno degli spazi. Grazie mille.



  • di Antonio (utente non iscritto) data: 16/04/2014 15:41:06

    Scusa ho dato uno sguardo veloce al tuo foglio e mi pare di capire che è un data base di ricerca. Non sarebbe semplice utilizzare i filtri automatici su tutte le colonne?



  • di peppe2014 (utente non iscritto) data: 16/04/2014 16:33:00

    E' quello che ho sempre fatto. Ora volevo fare una cosa diversa anche se piú complicata; mi spiego con un esempio. Nelle colonne ho impostato tre chiavi; poniamo che io voglia cercare i record che hanno la parola " invaliditá" in una delle tre chiavi. Ecco: vorrei che impostando la ricerca con " invalidità" mi filtrasse i recrd in cui " invalidità" compare come chive1 oppure chiave2 oppure chiave3. Mi pare che questo non si puó fare con il filtro automatico; o mi sbaglio?



  • di alfrimpa (utente non iscritto) data: 16/04/2014 20:16:01

    Ciao Peppe

    Ti avevo chiesto di fare delle prove con il file che ti ho allegato (inserendo manualmente le chiavi 2 e 3) giusto per essere sicuro della correttezza dell'approccio che sinora ho seguito.

    Dal tuo ultimo messaggio non ne sono tanto sicuro.

    Fammi sapere

    Alfredo





  • di peppe2014 (utente non iscritto) data: 17/04/2014 11:09:54

    Ciao Alfredo. Ho provato il file. Inserendo la chiave 1 funziona bene; non funziona, invece, se inserisco la chiave 2 o la chiave 3. Come dicevo nel post precedente, io vorrei che, inserendo una sola parola chiave, Excel filtrasse tutti i record che presentano la parola inserita come chiave1, chiave2 o chiave3. In pratica, se inserisco la parola chiave "consenso" vorrei che Excel mi filtrasse tutti i record in cui la parola "consenso" è prevista come chiave1, chiave2 o chiave3. Vorrei, inoltre, che l'inserimento della parola chiave avvenisse tramite una casella con menu a tendina. Grazie.



  • di alfrimpa (utente non iscritto) data: 17/04/2014 12:57:16

    Allora per fare come dici tu i menù a tendina non possono essere interdipendenti.

    Se lo fossero una volta inserita la chiave1 la chiave2 non elencherebbe tutti i suoi valori ma solo quelli relativi alla chiave1 e quindi non funzionerebbe come vuoi tu

    Alfredo





  • di peppe2014 (utente non iscritto) data: 17/04/2014 13:19:19

    Va bene per chiavi non interdipendenti; mille grazie. Mi chiedevo: è possibile che i risultati della ricerca siano ordinati in ordine cronologico ( prima i piú recenti)?



  • di alfrimpa (utente non iscritto) data: 17/04/2014 13:23:31

    Comunque ho fatto delle prove inserendo tutte tre le chiavi e mi sembra che il tutto funzioni correttamente.

    Quello che vuoi fare tu è che inserendo una unica chiave i dati vengano filtrati su tre campi (chiave1,2 e 3) e questo non credo sia possibile (almeno per quanto ne so io); dopotutto le macro non fanno altro che fare in automatico quello che tu faresti manualmente.

    E poi se vuoi ricercare una chiave che è contenuta all'interno di chiave1, 2 o 3 come si farebbe a discriminarla?

    Alfredo





  • di alfrimpa (utente non iscritto) data: 17/04/2014 14:02:41

    Ciao Peppe

    Ti allego nuovo file nel quali ho reso le chiavi non interdipendenti.

    La ricerca va fatta solo per una chiave alla volta.

    Provalo un po'

    Alfredo





  • di peppe2014 (utente non iscritto) data: 17/04/2014 18:55:52

    Prima di tutto ti ringrazio. Il file funziona correttamente quando inserisco un chiave alla volta, e va bene, anche se mi dà quasi gli stessi risultati che potrei avere con il filtro automatico, con la comodità comunque di potere fare tre ricerche (una per ogni chiave) molto più rapidamente. Mi chiedevo se fosse possibile avere i risultati filtrati disposti in ordine cronologico (dal più recente al più vecchio). Ancora mille grazie.



  • di alfrimpa (utente non iscritto) data: 17/04/2014 19:19:14

    Te lo avevo detto che le macro fanno in automatico quello che tu faresti manualmente con i filtri.

    Per quanto riguarda l'ordine cronologico i tre campi chiave sono di tipo testuale e non data quindi come faresti a metterli in ordine dal più recente a quelli più vecchi? Mi sa che non è possibile (sempre in base alle mie conoscenze).

    Forse con un programma come Access la cosa è fattibile.

    Alfredo





  • di alfrimpa (utente non iscritto) data: 17/04/2014 19:29:16

    Ciao ho visto ora che nel tuo database c'è un campo anno per cui qualcosa si può fare.

    Proverò a fare qualcosa ma non ti aspettare tempi brevi (la prossima settimana sarò in vacanza

    Alfredo





  • di alfrimpa (utente non iscritto) data: 17/04/2014 20:04:44

    Ciao Peppe

    Prova l'ultimo file che ti ho allegato.

    Credo (spero) di aver risolto il problema dell'ordinamento cronologico.

    Un'ultima cosa: tutto quello che ho fatto è stato realizzato per il 90% con il registratore macro, apportando poi solo lievi modifiche.

    Penso che anche tu con un po' di pazienza lo avresti potuto fare.

    Io a fare queste cose mi ci diverto ma, se posso darti un consiglio e sei a digiuno o quasi del VBA, usa a più non posso il registratore macro e poi studiati il codice generato; vedrai che imparerai moltissime cose.

    Comunque fammi sapere.

    Alfredo





  • di alfrimpa (utente non iscritto) data: 17/04/2014 20:47:38

    Altro piccolo consiglio

    Guardati il codice che è nel file e cerca di studiarlo provando a capire quello che fa.

    Se ti renderai conto, ti potrà venire utile in futuro qualora dovessi modificare/correggere qualcosa

    Buona Pasqua

    Alfredo





  • di peppe2014 (utente non iscritto) data: 18/04/2014 10:21:53

    Grazie di tutto e anche degli ottimi consigli, che certamente metteró in pratica. Buona vacanza e buona Pasqua.



  • di alfrimpa (utente non iscritto) data: 18/04/2014 11:53:27

    Ma non mi hai detto come ti sembra l'ultimo file che ti ho allegato

    Alfredo





  • di alfrimpa (utente non iscritto) data: 18/04/2014 13:08:52

    Ciao Peppe

    Perdonami ma mi sono accorto che nell'ultimo file che ti avevo allegato c'erano degli errori nell'elenco della chiave2.

    Nell'ultimo file allegato credo di averli corretti (ed ho messo le voci in ordine alfabetico nei menù a tendina).

    Verifica bene anche tu e fammi sapere.

    Alfredo





  • di peppe2014 (utente non iscritto) data: 18/04/2014 13:49:17

    Ciao Alfredo, scusami per il ritardo con cui ti rispondo ma ho potuto solo ora provare il file. Mi sembra che funzioni veramente bene, anche per quanto riguarda l'ordinamento cronologico dei record filtrati. Ti ringrazio di cuore, e ti rinnovo gli auguri di una Buona Pasqua.



  • di alfrimpa (utente non iscritto) data: 18/04/2014 19:15:31

    Ciao Peppe spero che tu non abbia abbandonato questa discussione.

    Ho apportato un'ulteriore modifica/abbellimento al file.

    Ti ho creato un modulo inserimento dati che puoi attivare cliccando sul pulsante Inserimento Dati sul Foglio Ricerca

    Il foglio Bibliografia l'ho nascosto (ma se vuoi puoi scoprlo tranquillamente)

    Era solo per conferire al tutto un aspetto un po' più "professionale" anche se questa è una parola grossa.

    Fammi sapere cosa ne pensi.

    Alfredo





  • di alfrimpa (utente non iscritto) data: 18/04/2014 19:16:48

    Ovviamente ho allegato il file che è l'ultimo in alto a destra

    Alfredo





  • di peppe2014 (utente non iscritto) data: 18/04/2014 20:53:42

    Ciao Alfredo. Ho scaricato l'ultima versione del file, funziona molto bene ed ha anche un aspetto grafico decisamente più funzionale con la funzione di inserimento dati. Ti ringrazio tantissimo. Buone vacanze.



  • di Raffaele_53 (utente non iscritto) data: 18/04/2014 22:01:21

    Ciao alfrimpa,
    l'ho visto qualche giorno fa e c'erano magagne (nel non dichiarare quante righe ci saranno, il resto mi sembra OK).
    A) non demoralizzarti
    B) continua a provare, sei quasi sulla strada giusta.

    Ps Option Explicit ti aiuta molto
    Se non riesci, appena posso faccio vedere il mio.
    Di certo altri più esperti mi faranno un mazzo



  • di alfrimpa (utente non iscritto) data: 18/04/2014 22:12:58

    Ciao Raffaele.

    Io ti conosco bene perchè frequento anche altri forum su Excel e so perfettamente quale sia il tuo livello di bravura.

    Io non mi demoralizzo ; è dagli inizi degli anni '80 che "gioco" con i fogli elettronici (all'epoca mi divertivo con la sola cinquantina di comandi macro disponibili in Lotus 123 ver 1.0).

    Da allora ne è passata acqua sotto i ponti e avendo questa passione provo sempre grande soddisfazione quando riesco a realizzare, da solo (ma sempre con l'aiuto di Internet oltre a tanti libri), un qualcosa di divertente, carino ma che sia anche utile ad altri.

    Sono più che convinto che la tua soluzione sarà di ben altro livello rispetto alla mia ma l'importante è che ci si diverta ed io ancora oggi continuo a divertirmi.

    Con simpatia e stima.

    Alfredo

    P.S. Ma il 53 del tuo nick è il tuo anno di nascita? Se è così siamo coetanei





  • di alfrimpa (utente non iscritto) data: 18/04/2014 22:21:04

    Raffaele dimenticavo.

    Hai avuto modo di vedere l'ultima versione del file che ho allegato oggi in serata.

    Mi interesserebbe molto conoscere il tuo parere.

    Non sono un programmatore (quindi mi mancano le basi) ma solo un appassionato e terrò nel debito conto il tuo su "Option explicit".

    Quanto all'essere sulla strada giusta spero di continuare ad avere questa nostra passione anche a 70, 80 anni ed oltre.

    Alfredo





  • di alfrimpa (utente non iscritto) data: 18/04/2014 22:35:49

    Raffaele,

    Sono andato a rivedermi un po' di codice che hai scritto su altro forum (sempre che sia tu ma sono certo di si).

    Beh che dire sei pazzesco: chapeau!!!

    Il tuo file sarà una Ferrari Testarossa rispetto al mio una misera 500

    Alfredo





  • di Raffaele_53 (utente non iscritto) data: 19/04/2014 00:20:12

    Il foglio Biblioteca nascosto, Ok non saprei cosa serve?
    L'userform non funzionante.....?
    Toccando bottoni a casaccio mi sono ritrovato con centinaia di record scritti (errore solo mio)
    Mà tu dichiarando una variabile nell'ultima riga potevi sapere cosa cancellare o scrivere???
    --->URiga = Range("A" & Rows.Count).End(xlUp).Row
    Mi sembra che nel penultimo allegato cancellavi solo 50 righe (errore per me) e le altre righe rimanevano.

    Altra cosa se devi spesso passare da foglio1 e foglio2 usa le variabili.
    Dim sh1 As Worksheet: Set sh1 = Worksheets("Foglio1") ' da cambiare casomai
    Dim sh2 As Worksheet: Set sh2 = Worksheets("Foglio2") ' da cambiare casomai
    Una rottura di palle, mà Ti troverai bene e non dimenticare di eliminarle.
    Set sh1 = Nothing
    Set sh2 = Nothing

    Ps. aspetto il Tuo prossimo allegato per eventuali correzioni. Poi nel Forum me ne faranno altre centomilla.



  • di peppe2014 (utente non iscritto) data: 10/05/2014 19:28:23

    Torno nel forum, avendo ripreso in mano il file database, modificandolo alla luce di una più chiara definizione delle mie esigenze. Il funzionamento è però impreciso: per alcune parole ottengo i risultati attesi, per altre no. Come dicevo in un precedente post, vorrei che inserita la parola da cercare, la macro la cercasse contemporaneamente nelle colonne I, J e K del foglio BIBLIOGRAFIA, in modo da avere nel foglio RICERCA tutti i risultati, cioè tutti i record in cui la parola cercata è presente come chiave1 (colonna I), oppure come chiave2(colonna J) oppure come chiave3 (colonna K). Posto il file sperando che qualcuno mi possa aiutare e ringrazio anticipatamente.



  • di peppe2014 (utente non iscritto) data: 10/05/2014 19:32:52

    Scusate, nella fretta ho inviato il file sbagliato. Quello corretto è il secondo, chiamato DATABASE.
    Grazie.



  • di Textomb data: 10/05/2014 23:17:30

    ciao peppe2014
    ho visto il tuo file Database e ti posto un paio di righe che dovrebbero fare quello che hai descritto nella tua ultima richiesta.
    Solo alcune battute sul tuo lavoro se posso permettermi.
    Il criterio adottato è semplice, intuitivo e molto funzionale.
    Però, ci sono cose che potrebbero essere migliorate e che in caso contrario possono indurti in errore
    Per esempio.
    Sulla maschera di inserimento dati non viene fatto alcun controllo sull'ID. Quindi per errore potrei fare due registrazioni che hanno lo stesso ID.
    Inoltre ho capito che l'ID è un progressivo e allora se è così, perchè non lo assegni in automatico?
    Inoltre il tasto inserisci sulla maschera di inserimento dati non è controllato. Cioè se lo premo tre volte, sempre per errore, registra tre volte gli stessi dati....
    Insomma queste le sbavature più evidenti.
    Infine (ma solo per sfizio...) si potrebbe migliorare anche la gestione della ricerca ed estrapolazione dei testi che rispettano la chiave di ricerca...
     
    Option Explicit
    
    Sub Cerca_TreColonne_Textomb()
    Dim LrRic As Long, LrBibl As Long, shBibl As Worksheet, shRic As Worksheet, k As Byte
    
    Set shRic = Worksheets("RICERCA")
    Set shBibl = Worksheets("BIBLIOGRAFIA")
    
        LrRic = shRic.Range("a" & Rows.Count).End(xlUp).Row
        LrBibl = shBibl.Range("a" & Rows.Count).End(xlUp).Row
        shRic.Range("a11:k" & LrRic).ClearContents
        LrRic = 10
        
        If shBibl.AutoFilterMode Then Else shBibl.Range("a2").AutoFilter
    
    Application.ScreenUpdating = False
        For k = 1 To 3 'Numero delle chiavi da analizzare
            shBibl.Range("a2").AutoFilter field:=(8 + k), Criteria1:=shRic.Range("key_1")
            shBibl.Range("a2").CurrentRegion.Offset(1).Resize(, 8).Copy
            shRic.Range("a" & LrRic + 1).PasteSpecial xlPasteValues
            LrRic = shRic.Range("a" & Rows.Count).End(xlUp).Row
            shBibl.Range("a2").AutoFilter field:=(8 + k)
        Next
        
        shBibl.Range("a2").AutoFilter
        
        ' Alla fine ordino la tabella dei risultati in ordine decrescente in base alla colonna F (anno)
        shRic.Range("a10").CurrentRegion.Sort key1:=Range("f10"), order1:=xlDescending, Header:=xlYes
    
    Application.ScreenUpdating = True
        
        MsgBox "Ricerca ultimata", vbInformation
        
        Set shRic = Nothing
        Set shBibl = Nothing
        
    End Sub



  • di peppe2014 (utente non iscritto) data: 11/05/2014 14:21:46

    Grazie. Sono d'accordo con te sulle modifiche da apportare alla maschera di inserimento dati, ma non saprei come fare. Non capisco come devo usare il codice che mi hai inviato: lo devo aggiungere alla macro, ma in che punto?. Scusa la mia ignoranza...



  • di Textomb data: 11/05/2014 18:25:07

    Quel codice va incollato all'interno di un modulo VBA del tuo progetto.
    Quindi inserisci un pulsante nuovo (oppure quello attuale CERCA) che però dovrà puntare alla nuova macro.
    A proposito del tuo progetto ho visto il foglio delle CHIAVI di ricerca. Ma questo elenco è automatico oppure lo aggiorni manualmente? Perchè mi è sembrato di capire che è ad aggiornamento manuale. Giusto?



  • di peppe2014 (utente non iscritto) data: 11/05/2014 19:48:04

    Si, l'aggiorno manualmente. Provo il tuo codice e poi ti dico.



  • di peppe2014 (utente non iscritto) data: 11/05/2014 19:54:07

    Ho provato a creare una nuova macro incollando il tuo codice ma esce un messaggio di errore "non valido all'interno di una routine". Lo stesso se incollo il codice al fondo in un modulo aggiunto. Dove ho sbagliato?



  • di Textomb data: 11/05/2014 20:05:03

    forse hai incollato tutto il codice compreso l'istruzione Option explicit all'interno di un modulo esistente che già contiene delle altre routine.
    questa istruzione va data in testa al modulo e non in mezzo. Serve per costringerti a dichiare tutte le variabili.
    Ti consiglio di aggiungere un nuovo modulo ed incollare il mio codice.



  • di peppe2014 (utente non iscritto) data: 11/05/2014 22:37:08

    Grazie. Ho provato e mi sembra che funzioni perfettamente!!! Perfetto!!



  • di lepat (utente non iscritto) data: 12/05/2014 08:34:03

    Ti dispiace allegare il file definitivo ?



  • di Textomb data: 12/05/2014 09:05:38

    Questa era l'idea a riguardo per migliroare la maschera di ricerca ed anche per controllare un pò meglio l'inserimento dei dati. allego file "Database Textomb"
    Sulla maschera di ricerca non dovrai più aggiornare manualmente l'elenco delle chiavi di ricerca. Operazione fastidiosa e carica di potenziali errori. (tra l'altro comparivano in un elenco a discesa non ordinate alfabeticamente e quindi impossibile da ritrovare...). Sulla maschera di inserimento dati ho controllato l'ID che è automatico oltre ad aver assegnato alcuni campi obbligatori per la registrazione.
    Provalo e ci saprai dire.



  • di peppe2014 (utente non iscritto) data: 12/05/2014 13:02:21

    Ti ringrazio veramente, il file funzione bene, tuttavia non riesco ad aggiornare l'elenco delle chiavi. Mi spiego: se nel foglio CHIAVI cambio una di queste chiavi (es. alcolismo, che diventa etilismo) tale aggiornamento non compare nell'elenco a discesa del foglio RICERCA. Poichè con il tempo potrei volere aggiungere, eliminare o anche solo modificare una o più chiavi come posso fare?. Tin ringrazio ancora.



  • di Textomb data: 12/05/2014 13:22:35

    pensaci un attimo...
    Se sostituisci una chiave nel foglio delle CHIAVI, per avere efficacia dovresti effettuare la stessa sostituzione anche nel foglio BIBLIOGRAFIA in corrispondenza di tutti i testi che riportavano la chiave originaria. Non credi?
    Allora se è così, vai direttamente nel foglio BIBLIOGRAFIA e fai tutte le sostituzioni che vuoi lì. Direttamente alla fonte.
    Poi, quando proverai a fare una ricerca vedrai che l'elenco delle chiavi è già aggiornato...



  • di peppe2014 (utente non iscritto) data: 12/05/2014 13:55:00

    Hai ragione!! Ho provato e funziona bene. Consentimi, però ancora un'osservazione: nel foglio RICERCA, cliccando su CERCA si apre un elenco a discesa delle chiavi. In alto a destra c'è FILTRO, che dovrebbe elencare le varie chiavi secondo la lettera dell'alfabeto selezionata. Ho notato, però, che non le elenca tutte: ad esempio, se clicco su C mi dà un elenco di sole 4 chiavi, mentre in realtà le chavi sono circa 20, come risulta chiaramente dall'elenco stesso. Mi chiedevo poi: se per caso volessi sostituire il foglio BIBLIOGRAFIA con un foglio analogo, anch'esso chiamato BIBLIOGRAFIA, cambia qualcosa per quanto riguarda la ricerca?. Il nuovo foglio BIBLIOGRAFIA avrebbe alcune chiavi diverse da quello attuale: da quello che tu mi dici, se io sostituisco il foglio BIBLIOGRAFIA, in automatico nel foglio RICERCA si aggiorna anche l'elenco delle chavi. E' così o mi sbaglio?. Grazie di cuore.



  • di Textomb data: 12/05/2014 16:47:24

    a proposito del malfunzionamento sul tasto di ricerca. Scusami ma stamattina non ho fatto prove sufficienti e non mi sono accorto. Il problema è semplicissimo e riside sul fatto che il filtro è case sensitive. In pratica rileva solo le chiavi con l'iniziale maiuscola. Per risolvere il problema, dovresti, sostituire quanto indicato di seguito.
    vai all'interno del codice e, in corrispondenza del Userform2 rintraccia la Private Sub ComboBox1_Change() e all'istruzione:
    If Left(UserForm2.ListBox1.List(i), 1) <> Letter Then UserForm2.ListBox1.RemoveItem (i)
    sostituisci:
    If UCase(Left(UserForm2.ListBox1.List(i), 1)) <> Letter Then UserForm2.ListBox1.RemoveItem (i)

    cit: Mi chiedevo poi: se per caso volessi sostituire il foglio BIBLIOGRAFIA con un foglio analogo, anch'esso chiamato BIBLIOGRAFIA, cambia qualcosa per quanto riguarda la ricerca?
    Assolutamente no! L'importante è che, ovviamente, il nuovo foglio abbia lo stesso nome e soprattutto la stessa struttura e quindi dovrà avere nella colonna A l'indice ID nella B il Titolo e così via fino ad avere le chiavi nelle medesime colonne I, J, K con la seconda riga come intestazione.



  • di peppe2014 (utente non iscritto) data: 13/05/2014 09:32:50

    Grazie mille!! Ora mi sembra che tutto sia a posto e funzionante.



  • di peppe2014 (utente non iscritto) data: 13/05/2014 17:45:16

    Scusami, sono di nuovo qua. Non so cosa sia successo, ma il file non funziona più a dovere. Nella pagina di ricerca, infatti, quando estrao i dati per ciascun record estratto non è più indicata la pagina (colonna I); inoltre, avviando la ricerca, compare un elenco di chiavi molto lungo, dove i primi posti sono occupati da numeri. Allego il file!!



  • di Textomb data: 13/05/2014 21:24:44

    Tu scrivi che non sai cosa sia successo ma il file non funziona più a dovere.
    Nel mio precedente post ti avevo scritto che sostituendo il foglio BIBLIOGRFIA con uno analogo non sarebbe accaduto nulla e ti avevo garantito la funzionalità a condizione che il nuovo foglio avesse la medesima struttura.
    Mi sa invece che il foglio sostituito non è lo stesso. Ha infatti una colonna in più!! Esattamente la colonna C "Nota a sentenza". In quello su cui ho lavoro io non c'era. Infatti adesso tutte le colonne non corrispondono più ed anche le chiavi sono spostate di una colonna a destra.
    PEr non finire qui, anche il foglio di ricerca ha una colonna in più. Per l'appunto le note.
    Ma secondo te, come avrebbe mai potuto funzionare?



  • di peppe2014 (utente non iscritto) data: 13/05/2014 22:37:37

    Hai ragione, non ci avevo fatto caso. Si può rimediare o devo cancellare le colonne in più?.
    Grazie per tutto.



  • di Textomb data: 13/05/2014 23:43:19

    Rimediare non è affatto un problema.
    Il problema serio è che io non ho molto tempo. Spero che tu non abbia fretta. Altrimenti confida nel buon cuore di qualcun altro qui nel forum.
    Considera che l'operazione richiede un pò di tempo perchè si deve aggiungere una textbox anche nella maschera di inserimento dati con tutte le implicazioni derivanti.



  • di peppe2014 (utente non iscritto) data: 14/05/2014 06:45:55

    Ti ringrazio moltissimo per tutto quello che hai fatto. Per il momento ho risolto eliminando le due colone ed accorpando i dati, che posso poi estrarre con il filtro automatico all'interno del foglio Bibliografia.