5 combobox univoche
Hai un problema con Excel? 
5 combobox univoche
di cristian (utente non iscritto) data: 04/07/2013 00:07:17
Ciao come consigliato avvio una nuova discussione
In un file ho un foglio “elenco” con dei 5 elenchi con parole collegati a 5 combobox
La 1ª combobox seleziona il termine per esteso e seleziona la cella a fianco con un termine abbreviato
La 2ª combobox seleziona i termini , e sono visibili solo quelli che si relazionano con la 1ª combobox
La 3ª combobox seleziona i termini , e sono visibili solo quelli che si relazionano con la 2ª combobox
La 4ª combobox seleziona i termini , e sono visibili solo quelli che si relazionano con la 3ª combobox
La 5ª combobox seleziona i termini , e sono visibili solo quelli che si relazionano con la 3ª combobox
Si può fare così strutturato oppure bisogna fare una tabella unica come nella discussione “3 combobox univoche” ?
Grazie della disponibilità
allego file.
di HarryBosch data: 05/07/2013 00:16:24
Sei sicuro che il database sia impostato nel modo giusto?
Ho dato un'occhiata al file, ma non riesco a capire come le combobox devono richiamarsi fra loro..
- Ok, la prima si carica con tutti i valori della colonna H.
- In base alla scelta della Combo1, si carica la Combo2 (in seguito al corrispettivo riferimento)
- Ma i valori della combo2, dove sono poi nella "famiglia"? Nella colonna O?
- E la variazione della combo3? Nei termini generali non vedo collegamenti...
Magari se mi fai degli esempi pratici (proprio con i nomi delle tabelle) riesco a capire meglio
di cristian (utente non iscritto) data: 05/07/2013 14:25:13
ciao HarryBosch,
il foglio non è strutturato come un database, era soltanto il posizionamento di termini per essere utilizzati dalle combobox, in seguito è nata l'esigenza di filtrare i termini in base alla scelta precedente, ho inviato il file così mettendo solo un termine comune nella colonna riferimento, per vedere se si poteva fare qualcosa anche lasciandolo così, del tipo se c'è il termine in riferimento lo filtra, se invece è vuoto i termini si vedono tutti giusto per semplificare un pò la ricerca.
ma forse è meglio che prepari un file tipo database che forse sarà più funzionale.
comunque l'esempio sarebbe se nel foglio scheda faccio partire la macro cliccando sul tasto in alto in centro seleziono vegetali, che poi seleziona il termine "v" che poi nella combobox2 dovrebbe far vedere per primo "abies" , selezionandolo nella combobox3 con riferimento "abies" c'è conifere che sarà visibile e avanti per le altre 2.
penso che sarà meglio prepari un foglio tipo database..... cosa dici?
ti ringrazio fin d'ora della disponibilità
di HarryBosch data: 05/07/2013 22:59:13
Ho abbozzato qualcosa, ma mi sono fermato dopo il caricamento della terza combo.
A questo punto, come ti dicevo in precedenza, non riesco a trovare un collegamento con la 4 tabella, ovvero non trovo la relazione tra "famiglia" e "termini generali": mi sembra che tra le due tabelle non ci siano dati uguali da ricercare.
Prova a dare un'occhiata e fammi sapere su come procedere...
di cristian (utente non iscritto) data: 06/07/2013 00:51:03
ciao HarryBosch,
grazie dell'aiuto, ho messo i termini in comune ho pensato di tenere come termine di collegamento quello della 1ªcombobox, è possibile che se una combobox è vuota ci sia il simbolo "_" ,
e che la combobox5 sia libera dal collegamento delle altre 4 ?
veramente grazie della disponibilità.
cristian
ho allegato il file.
di cristian (utente non iscritto) data: 08/07/2013 12:04:15
Ciao HarryBosch
ho provato e funziona và bene il codice fino alla 3ª combobox la 4ª e la 5ª le lascio svincolate dalle prime 3. Poi si vedrà se è funzionale annche per la 4 e la 5.
Volevo chiederti come faccio a dirgli che le voci selezionate nelle combobox vengano copiate nel foglio scheda in queste posizioni:
combobox1 cella A2
combobox2 cellaB2
combobox3 cella C2
combobox4 cella D2
combobox5cella H2
grazie tante della disponibilità.
Allego file
di HarryBosch data: 10/07/2013 01:02:47
Ok, nel mentre che pensi alla 4° e 5° combo, per riportare i dati sul foglio, basta semplicemente assegnarli al Range voluto:
Sheets("FoglioX").[A2] = combobox1
Riallego il file Combo2
di HarryBosch data: 10/07/2013 01:03:29
File Combo3 per la precisione :)
di cristian (utente non iscritto) data: 10/07/2013 10:15:30
ciao HarryBosch,
ho visto funziona,
ma volevo chiedererti se era possibile che, solo per la combobox1, il valore riportato nela celle del foglio "scheda" fosse il secondo termine (abbreviazione)
esempio:
Vegetali destinati alla produzione ==> il valore riportato fosse vdp
vegetali ==> il valore riportato fosse v
il resto sembra funzionare tutto, complimenti sei veramente bravo grazie.
di HarryBosch data: 12/07/2013 11:11:59
Per riportare il valore abbreviato, puoi modificare l'istruzione legata al pulsante di inserimento, come qua sotto mostrato:
invece di
.[a2] = ComboBox1
diventa
.[a2] = Sheets("elenco").Columns("h").Find(ComboBox1).Offset(, 1)
In sostanza l'istruzione dice di cercare (FIND) il valore della Combobox1 lungo la colonna H del foglio "elenco", e di prendere il valore che sta nella colonna a fianco --> .offset(,1)
Offset (utilizzato anche in altre parti del codice) serve per eseguire uno spostamento da un punto preciso; la sintassi è:
Offset(riga, colonna)
dove con riga indichi di quante righe spostarti in basso e con colonna di quante colonne spostarti a destra.
Se usate con segno negativo, allora ti sposti in alto con le righe e a sinistra con le colonne.
Vuoi Approfondire?