Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

menu a tendina concatenati

125 views
Skip to first unread message

Final Job

unread,
Jan 10, 2023, 7:15:09 PM1/10/23
to
Buonasera,
ho necessità di settare, scegliendo tra alcune voci in chiaro contenute
in menù a tendina concatenati, quattro campi descrittivi di un database
esistente nel Foglio "Dati" della Cartella "Archivio".

Una volta settati questi campi, le celle a loro adiacenti devono
assumere il valore di un codice corrispondente ad ogni descrizione.

Le matrici di queste voci descrittive, e le relative corrispondenze in
codici, sono contenute in due tabelle nominate, appunto, "Descrizioni" e
"Corrispondenza Codici" che si trovano nel Foglio "TabStd" della stessa
cartella (quì posizionate per ora e per comodità. Una volta risolto
dovrò alloggiarle in una cartella esterna).

Nel file di esempio, del quale allego un link, riporto un esempio nel
quale sono presenti poche righe di risultati scritti manualmente.

Le due tabelle contenute nel Foglio "TabStd" sono banalmente basate su
correlazioni tra Regioni, Province, Comuni e CAP in quanto da il senso
del legame tra i quattro livelli di valori che devo trattare. Nella
realtà, devo lavorare in altri contesti.

Ho provato a usare le funzioni indiretto e le convalide ma questa
soluzione va bene fino a che i livelli di concatenamento sono massimo 2.
Come passo a 3 mi si ingarbuglia tutto ed io ne ho 4 da gestire di
questi livelli. Inoltre, questo sistema mi rende molto complicato
modificare l'estensione delle tabelle "Descrizioni" e "Corrispondenza
codici" (quelle contenute in TabStd), modifiche necessarie ad
attualizzare le informazioni nel tempo. Le modifiche consistono in cambi
dei contenuti delle voci ma anche in allungamenti o riduzioni delle
scelte per uno o più livelli.

Infine, sottolineo che nelle tabelle del Foglio "TabStd" sono mostrate,
per brevità, solo poche possibilità di scelta tra un livello e l'altro.
Nella realtà, possono essere parecchie.

Sempre se possibile e comunque grazie.
Ale

https://www.dropbox.com/s/eiaatkkepmzodih/Archivio.rar?dl=0

casanmaner

unread,
Jan 11, 2023, 1:43:49 AM1/11/23
to
Ciao Ale,
in questo periodo sono "diversamente libero" da impegni e quindi ho poco tempo a disposizione.
Quello che chiedi, visto la struttura dei dati, penso richieda molto lavoro di preparazione di tabelle di appoggio.
Qui ti metto un esempio di convalide "concatenate":

https://www.dropbox.com/s/horhkqzbhzguw4k/Archivio.xlsm?dl=0

Come noterai ho creato un primo elenco il cui intervallo ha come nome "Regioni".
Poi ho creato un altro elenco, per la regione Piemonte, il cui intervallo ha come nome "Province_Piemonte".
Ancora ho creato un ulteriore elenco, per la provincia di Torino, il cui intervallo ha come nome "Comuni_Provincia_Torino".
Infine, ho creato l'ultimo elenco, per il comune di Torino, il cui intervallo ha come nome "CAP_Comune_Torino"

Noterai che sopra ho poi inserito le celle con le convalide per Regioni, Provincia, Comune, Cap dove rispettivamente ho inserito queste formule nelle convalide per elenco:
=Regioni
=INDIRETTO("Province_" &$M$2)
=INDIRETTO("Comuni_Provincia_" & $N$2)
=INDIRETTO("CAP_Comune_" & $O$2)

Il problema è che dovresti per ogni regione creare l'elenco delle province (assegnando il relativo nome).
Per ogni provincia l'elenco dei comuni (assegnando il relativo nome)
Per ogni comune l'elenco dei CAP (assegnando il relativo nome).

Un lavoro non indifferente.

Inoltre il foglio di appoggio ritengo debba rimanere all'interno della cartella di lavoro.

Final Job

unread,
Jan 11, 2023, 6:10:55 PM1/11/23
to
Ciao Casanmaner, grazie.
Sostanzialmente, la soluzione individuata da Casanmaner è ciò che avevo
messo in pratica io e confermo che il problema è stato dover creare
elenchi di dimensioni importanti.

Ora che il quadro è stato affrontato, però, mi permetto di spostare un
pò il tiro e fare due domande:

1)se si deve ragionare in termini di zone, convalide e funzioni, mi
troverei già molto avvantaggiato dal poter lavorare su di una struttura
tabellare come da mio esempio piuttosto che rappresentare le zone in
colonne successive perchè, considerando le quantità di scelte che
possono apparire, il loro numero sarebbe imponente e quasi impossibile
sarebbe non perdersi qualche corrispondenza. Pensate si possa fare?

2)Sarebbe possibile gestire, in una qualche maniera, la disposizione
tabellare in esempio con qualche Sub/Funzione residente nel foglio Archivio?
Grazie

casanmaner

unread,
Jan 12, 2023, 11:38:31 AM1/12/23
to
Il giorno giovedì 12 gennaio 2023 alle 00:10:55 UTC+1 Final Job ha scritto:
> Ciao Casanmaner, grazie.
> Sostanzialmente, la soluzione individuata da Casanmaner è ciò che avevo
> messo in pratica io e confermo che il problema è stato dover creare
> elenchi di dimensioni importanti.
>
> Ora che il quadro è stato affrontato, però, mi permetto di spostare un
> pò il tiro e fare due domande:
>
> 1)se si deve ragionare in termini di zone, convalide e funzioni, mi
> troverei già molto avvantaggiato dal poter lavorare su di una struttura
> tabellare come da mio esempio piuttosto che rappresentare le zone in
> colonne successive perchè, considerando le quantità di scelte che
> possono apparire, il loro numero sarebbe imponente e quasi impossibile
> sarebbe non perdersi qualche corrispondenza. Pensate si possa fare?
>
> 2)Sarebbe possibile gestire, in una qualche maniera, la disposizione
> tabellare in esempio con qualche Sub/Funzione residente nel foglio Archivio?
> Grazie

Ciao Ale,
il problema è che utilizzando la tua tabella, eventualmente impostando lì i nome, avresti elenchi in convalida con tutta una serie di vuoti, a partire dalle regioni soprattutto, che renderebbe inutilizzabili gli elenchi di convalida.

issdr

unread,
Jan 12, 2023, 1:23:48 PM1/12/23
to
casanmaner wrote:

> il problema è che utilizzando la tua tabella, eventualmente impostando
> lì i nome, avresti elenchi in convalida con tutta una serie di vuoti,
> a partire dalle regioni soprattutto, che renderebbe inutilizzabili gli
> elenchi di convalida.

non entro nel merito, non ho guardato il file, ma avendo affrontato il
problema, avevo passato qui del codice che creava i menu senza vuoti

Final Job

unread,
Jan 13, 2023, 11:32:21 AM1/13/23
to
Il 12/01/2023 17:38, casanmaner ha scritto:

> Ciao Ale,
> il problema è che utilizzando la tua tabella, eventualmente impostando lì i nome, avresti elenchi in convalida con tutta una serie di vuoti, a partire dalle regioni soprattutto, che renderebbe inutilizzabili gli elenchi di convalida.

Grazie
ma se in fase di costruzione o aggoirnamento della tabella i vuoti
vengono riempiti con una stringa che non serve a nulla se non ad evitare
tale condizione (esempio "QW", prime lettere della tastiera prese per
comodità di digitazione)?

Final Job

unread,
Jan 13, 2023, 11:34:26 AM1/13/23
to
Il 12/01/2023 19:23, issdr ha scritto:

> non entro nel merito, non ho guardato il file, ma avendo affrontato il
> problema, avevo passato qui del codice che creava i menu senza vuoti

ok, me se vuoi puoi entrare eh? non disturbi :-)
Non trovo il post di cui parli.
Ciao
Ale

issdr

unread,
Jan 13, 2023, 3:38:53 PM1/13/23
to
non posso in questo periodo. avevo condiviso questo, magari nel codice
trovate qualcosa di utile:

https://user.fm/files/v2-bea964598d505747e82e677599a2020d/conv_cond.xlsm

casanmaner

unread,
Jan 14, 2023, 2:30:07 PM1/14/23
to
Mi sembra di capire che vai a creare un elenco diretto nella convalida dopo aver passato i valori di tutto un intervallo (utilizzando delle worksheetfunction presenti nelle ultime versioni di excel).
Nel caso di Ale occorrerebbe, una volta creata la prima convalida valida per le regione, per i livelli successivi creare delle convalide "dinamiche" in base alla regione selezionata, andando ad individuare l'intervallo seguente in base alla regione selezionata.
Al cambio di regione la successiva convalida dovrebbe cercare le provincie di quella regione, andando a cancellare le convalide presenti nelle celle destinate ai comuni e quelle dei cap.
Anche io non ho al momento moltissimo tempo per lavorarci su ma ho l'impressione che occorra scrivere un po' in base allo schema utilizzato da Ale.
Se mi libero un po' magari vedo cosa si può fare.

Final Job

unread,
Jan 14, 2023, 4:02:04 PM1/14/23
to
Il 14/01/2023 20:30, casanmaner ha scritto:

> Mi sembra di capire che vai a creare un elenco diretto nella convalida dopo aver passato i valori di tutto un intervallo (utilizzando delle worksheetfunction presenti nelle ultime versioni di excel).
> Nel caso di Ale occorrerebbe, una volta creata la prima convalida valida per le regione, per i livelli successivi creare delle convalide "dinamiche" in base alla regione selezionata, andando ad individuare l'intervallo seguente in base alla regione selezionata.
> Al cambio di regione la successiva convalida dovrebbe cercare le provincie di quella regione, andando a cancellare le convalide presenti nelle celle destinate ai comuni e quelle dei cap.
> Anche io non ho al momento moltissimo tempo per lavorarci su ma ho l'impressione che occorra scrivere un po' in base allo schema utilizzato da Ale.
> Se mi libero un po' magari vedo cosa si può fare.

Si ma se siete incasinati non perdeteci tempo, ce la caviamo come sempre
fatto.

Per dare un responso, con l'esempio di issdr riesco ad adattare, in
qualche modo, solo il primo ed il secondo livello.

Utilizzando convalide, funzione indiretto e nomi zone, io sono arrivato
per conto mio al terzo livello al quale le tabelle (che devo per forza
strutturare in orizzontale) assumono già dimensioni tanto importanti. Il
quarto livello mi risulta impossibile.

Stavo pensando (non so se sto per dire una castroneria) di usare la
soluzione tabellare con i quattro livelli in verticale (molto più comoda
nelle modifiche periodiche che vedono incrementare e diminuire
continuamente le voci delle zone) inserendo nelle celle vuote una
stringa "inutile" che pur riempendo la zona, e consentendo quindi un
dimensionamento dinamico, non intralci le funzioni utilizzate nelle
convalide durante le ricerche delle corrispondenze.

Dovrei anche trovare il modo di non fare apparire nelle convalide le
stringhe "inutili".

Se ho detto stupidaggini, mi "corrigerete".
Grazie comunque.
Ciao
Ale

casanmaner

unread,
Jan 14, 2023, 4:33:18 PM1/14/23
to
Ciao Ale,
prova a dare un'occhiata al file di questo link:

https://www.dropbox.com/s/horhkqzbhzguw4k/Archivio.xlsm?dl=0

Premessa: per avere dei riferimenti più semplici da trovare ho creato una tabella per l'intervallo delle "descrizioni" (Regione, Provincia, Comune, Cap).
In questo modo in VBA faccio riferimento ai vari intervalli sulla base delle colonne della tabella e in base all'intestazione di ciascuna colonna.
La tabella ha una formattazione "vuota" pertanto vedi la tua formattazione. Ma la tabella la puoi espandere come ti pare aggiungendo regioni, provincie, comuni, cap.
L'importante è che non vi siano doppioni di regioni, provincie, comuni perché la ricerca cerca la prima voce della regione, poi della provincia, poi del cumune.
Ma immagino che, visto l'elenco e a meno di errori, non dovrebbero esserci diverse sezioni, in diversi intervalli, per una stessa regione.
Nel caso ogni regione deve avere un unico intervallo. Ogni provincia un unico intervallo, ecc. ecc.

La procedura al momento crea gli elenchi nelle celle con sfondo azzurro ma le funzioni che creano gli elenchi da inserire nelle convalide potrebbero essere utilizzate anche in altre celle sulla base dello schema utilizzato per quelle celle.

Final Job

unread,
Jan 14, 2023, 6:00:23 PM1/14/23
to
Funziona ed è ciò che serve. Impagabile la possibilità di lavorare con
una struttura di tabella in cui i 4 livelli si trovano ognuno in
un'unica colonna. Ho solo adattato il codice per riconoscere il record
su cui si sta lavorando per andare ad inserire dati nella riga interessata.

Spero di non essere stato troppo di intralcio.
Ciao, grazie.

Final Job

unread,
Jan 14, 2023, 6:51:35 PM1/14/23
to
Non capisco come aggiornare l'estensione della tabella al variare delle
sue voci.

Il valore del Nome TabDescrizioni come viene determinato e come posso
adeguarlo?

casanmaner

unread,
Jan 15, 2023, 2:32:37 AM1/15/23
to
Ciao Ale,
se aggiungi righe all'interno della tabella questa si estende automaticamente.
Poi volendo puoi trascinare la tabella partendo dall'ultima cella dell'ultima colonna, selezionandone l'angolo e trascinando verso il basso
https://www.dropbox.com/s/h91c8vervx26bc0/Screenshot%202023-01-15%2008.20.38.png?dl=0
https://www.dropbox.com/s/40ifbi4s4gmsbpl/Screenshot%202023-01-15%2008.20.51.png?dl=0

Per la gestione della tabella devi selezionare la Tab della barra Ribbon che compare quando selezioni una delle celle della tabella
https://www.dropbox.com/s/xahjzj35rztelia/Screenshot%202023-01-15%2008.20.57.png?dl=0
Per modificare il nome della tabella basta che tu digiti lo stesso nel campo "Nome tabella".
Al di sotto di quel campo si trova anche il comando "Ridimensiona tabella".
Cliccando si apre una finestra di dialogo dove viene visualizzato l'intervallo attuale della tabella
https://www.dropbox.com/s/6qre76wu8jbxh1s/Screenshot%202023-01-15%2008.24.44.png?dl=0

Puoi così espandere, o ridurre, l'intervallo
https://www.dropbox.com/s/6qre76wu8jbxh1s/Screenshot%202023-01-15%2008.24.44.png?dl=0

e la tabella si ridimensionerà di conseguenza
https://www.dropbox.com/s/6qre76wu8jbxh1s/Screenshot%202023-01-15%2008.24.44.png?dl=0

ciao e buona domenica .... tra poco esco per una corsa :-)

casanmaner

unread,
Jan 15, 2023, 2:35:12 AM1/15/23
to
Il giorno domenica 15 gennaio 2023 alle 08:32:37 UTC+1 casanmaner ha scritto:
> Cliccando si apre una finestra di dialogo dove viene visualizzato l'intervallo attuale della tabella
in realtà l'immagine che avrei voluto mettere di seguito a questa frase è questa:
https://www.dropbox.com/s/jzv5xjgl7vqpv3u/Screenshot%202023-01-15%2008.24.34.png?dl=0

issdr

unread,
Jan 15, 2023, 5:42:40 AM1/15/23
to
casanmaner wrote:

>> https://user.fm/files/v2-bea964598d505747e82e677599a2020d/conv_cond.xlsm
> Mi sembra di capire che vai a creare un elenco diretto nella convalida
> dopo aver passato i valori di tutto un intervallo (utilizzando delle
> worksheetfunction presenti nelle ultime versioni di excel).
> Nel caso di Ale occorrerebbe, una volta creata la prima convalida
> valida per le regione, per i livelli successivi creare delle convalide
> "dinamiche" in base alla regione selezionata, andando ad individuare
> l'intervallo seguente in base alla regione selezionata.
> Al cambio di regione la successiva convalida dovrebbe cercare le
> provincie di quella regione, andando a cancellare le convalide
> presenti nelle celle destinate ai comuni e quelle dei cap.
> Anche io non ho al momento moltissimo tempo per lavorarci su ma ho
> l'impressione che occorra scrivere un po' in base allo schema
> utilizzato da Ale.

sì, ho scaricato il suo file, si potrebbe partire da un filtro impostato
da macro come in immagine, togliendo le vuote dell'ultima colonna,
caricando i dati in un array e lavorando su quello per generare gli
elenchi necessari.

https://user.fm/files/v2-c61251170dd17941109e2869d04abc57/Clipboard09.png

issdr

unread,
Jan 15, 2023, 5:43:24 AM1/15/23
to
casanmaner wrote:

> https://www.dropbox.com/s/horhkqzbhzguw4k/Archivio.xlsm?dl=0
>
> Premessa: per avere dei riferimenti più semplici da trovare ho creato
> una tabella per l'intervallo delle "descrizioni" (Regione, Provincia,
> Comune, Cap).

seleziono la regione ed ho questo errore, cosa sto sbagliando?

https://user.fm/files/v2-45bed5c3e3af57fe5b4c0c5203471b27/Clipboard10.png

casanmaner

unread,
Jan 15, 2023, 7:21:41 AM1/15/23
to
Forse non hai installato qualche componente ".Net"?

issdr

unread,
Jan 15, 2023, 7:27:47 AM1/15/23
to
casanmaner wrote:

> Forse non hai installato qualche componente ".Net"?

molto probabile, grazie.

sto scrivendo qualcosa che non dovrebbe necessitare di appoggi, poi
condivido il file

Final Job

unread,
Jan 15, 2023, 11:45:44 AM1/15/23
to
Ho aggiornato un pò di cose. Premetto che il layout necessario è quello
del Foglio Dati quindi ho spostato riferimenti ed altre cose al fine di
poter operare singolarmente riga per riga.

L'estensione della zona, effettivamente, l'ho raggiunta già ieri con il
trascinamento ma benchè si aggiornasse il range, l'insieme non
funzionava. Ho pistolettato ancora un pò e sono arrivato a quanto
riporto nel file di cui allego il link.

https://www.dropbox.com/scl/fi/jkwxy24yar9z3d3vd316o/Archivio-1-_MIO_3.xlsm?dl=0&rlkey=n6jip85gij9diudht7p7xzgk4

Ho un problema, ma non è gravissimo. Mi riferisco sempre al TabStd. Con
le modifiche che ho fatto non mi vengono più rappresentate
sequenzialmente le regioni nelle convalide della colonna ma mi vengono
riportati anche gli spazi che nella colonna separano le varie voci. Ho
risolto raggruppando manualmente la raccolta delle regioni citate in
colonna A e poi ho aggiornato la convalida su quella colonna. Funziona
ma è poco elegante e neanche tanto funzionale. Se serve lavoro così
perchè non mi azzardo nemmeno a provare a toccare gli equilibri tra i
riferimenti delle procedure ma la curiosità c'è.

Altra cosa che mi viene in mente ora. Devo spostare la tabella dei
risultati del Foglio TabStd e spaziare le colonne facendo precedere ai
campi Regione, Provincia, Comune e CAP un ulteriore rispettivo campo
che, come da esempio nel Foglio Dati, dovrà contenere il relativo codice
corrispondente (le colonne contenenti la tabella di conversione sono
state nascoste per una migliore visualizzazione del problema
precedente). Chiaramente, non appena opero con "taglia ed incolla" o
"inserisci", si perdono i riferimenti e le procedure vanno in errore
quindi domando lumi su come dovrei operare correttamente.

Grazie ad entrambi, non ho fretta e se dovesse essere troppo laborioso
mi adatto tranquillamente a lavorare bene anche così (a meno di
ulteriori sorprese).

Ale

issdr

unread,
Jan 15, 2023, 12:18:33 PM1/15/23
to
Final Job wrote:

> https://www.dropbox.com/scl/fi/jkwxy24yar9z3d3vd316o/Archivio-1-_MIO_3.xlsm?dl=0&rlkey=n6jip85gij9diudht7p7xzgk4

ho tolto da questo tuo ultimo il codice e messo la mia elaborazione.

https://user.fm/files/v2-7ae977b962bcfc641f92dea4d8b0ff06/Archivio(1)_issdr_3.xlsm

lavora solo in vba, facendo riferimento alla struttura delle tabelle con
"vuoti".

fammi sapere come va



casanmaner

unread,
Jan 15, 2023, 1:41:48 PM1/15/23
to
Ciao Ale,
per il tuo primo problema non ho ben capito quale sia.
Comunque con le modifiche che hai fatto, rendere dinamico l'inserimento delle convalide in base alla riga, ha mantenuto fermo il fatto che la popolazione delle convalide per le regioni avvenga solo quando viene selezionato il foglio. Quel metodo poteva andare bene se l'inserimento avesse riguardato una sola riga. Come hai modificato si sarebbe popolata la sola riga selezionata al momento in cui tu fossi passato da un altro foglio al foglio in questione.
Se vuoi rendere dinamico anche l'inserimento delle convalide per la colonna delle regioni devi sfruttare l'evento "SelectionChange" del foglio.
Nel tuo file ho modificato la procedura utilizzando tale evento e impostando che le celle si popolino solo se viene selezionata una cella della colonna "Regioni".
Ho anche provato a eliminare la colonna A dove avevi inserito le regioni di seguito e mi sembra che le convalide che si creano riportano le regioni di seguito senza "vuoti".

Per l'errore dopo aver aggiunto colonne è naturale che avvenga se non modifichi, nel codice dell'evento "change" i riferimenti di colonna dove vanno a posizionarsi i campi Regioni, Province, Comuni e CAP dell'area dove inserisci i dati.
Per ovviare a questo problema ho assegnato dei nomi (a livello di foglio) in corrispondenza delle intestazioni (cRegioni, cProvince, cComuni, cCAP) e nell'evento Worksheet_Change i riferimenti ora sono del tipo:

Cells(Riga, Range("cRegioni").Column)

Prima c'era il riferimento fisso alla lettera della colonna del tipo Range("M" & Riga).
Ma ovviamente se aggiungi una colonna "M" diventa "N", e via dicendo, e la procedura va a verificare il cambiamento di colonne errate.
Ora se si sposta la colonna dell'intestazione la stessa viene intercettata grazie al suo nome e viene letta la colonna in cui si trova.

Ti metto il link al tuo file come da me modificato:
https://www.dropbox.com/s/rlcyc0n3yc2ml0b/Archivio%281%29_MIO_3_mod_casanmaner.xlsm?dl=0

Per test ho aggiunto colonne alla tabella e ora la sezione di inserimento dati parte dalla colonna P (prima era M). Se tu dovessi spostare quelle colonne (Regioni, Province, ecc) la procedura comunque leggerà la posizione dei nomi assegnati alle intestazioni e il tutto verrebbe riprodotto nelle nuove colonne.
Ho anche aggiungo un nuovo foglio dove ho copiato il codice presente in TabStd e ho riportato le etichette di colonna nominandole allo stesso modo, sempre a livello di foglio, e spaziando ogni etichetta di una colonna.
Noterai che le convalide vengono inserite in corrispondenza delle sole colonne specifiche.

E poi, per concludere, mi sono accorto di aver sbagliato ripetutamente! il plurale di provincia è province!!!! Devo tornare alle elementari. Sto diventando vecchio e alcune regole grammaticali me le sto perdendo per strada ... sigh :-(((

casanmaner

unread,
Jan 15, 2023, 1:55:52 PM1/15/23
to
Inserisce "Regione" come prima voce degli elenchi.
E se si inserisce quella voce poi riporta provincia, comune, cap.
https://www.dropbox.com/s/ojxv4nhegzb8q3i/Screenshot%202023-01-15%2019.53.33.png?dl=0

issdr

unread,
Jan 15, 2023, 2:20:57 PM1/15/23
to
casanmaner wrote:

> Inserisce "Regione" come prima voce degli elenchi.
> E se si inserisce quella voce poi riporta provincia, comune, cap.
> https://www.dropbox.com/s/ojxv4nhegzb8q3i/Screenshot%202023-01-15%2019.53.33.png?dl=0

sì, m'era sfuggito che è stata trasformata in tabella la tavola, quindi
c'è una riga in più. qui la riporto com'era in origine, oltre ad aver
ripulito un po' il codice e inserito un ordinamento a bolle per gli
elenchi.

se si vuole mantenere l'intestazione "doppia", basta far slittare
di un'unità la lettura delle regioni (il 3 nella function filtra diventa
4, sostituzione globale nel modulo).

se non piace il bubble sort, si tolgono 9 righe dopo "qui:"

https://user.fm/files/v2-cd999f39d5741bf35976813dce959b46/Archivio(2)_issdr_3.xlsm

issdr

unread,
Jan 15, 2023, 2:31:56 PM1/15/23
to

casanmaner

unread,
Jan 15, 2023, 2:40:04 PM1/15/23
to
Curiosità.
Visto che utilizzi la funzione FILTRO (che è una di quelle presenti in office 365) perché non utilizzare DATI.ORDINA (SORT) invece della bubble sort?
C'è un motivo particolare?

issdr

unread,
Jan 15, 2023, 2:46:07 PM1/15/23
to
casanmaner wrote:

> Visto che utilizzi la funzione FILTRO (che è una di quelle presenti in
> office 365) perché non utilizzare DATI.ORDINA (SORT) invece della
> bubble sort?
> C'è un motivo particolare?

per ripasso? scherzo, ma non troppo... le funzioni del foglio in certi
casi sono più efficienti di quelle vba, sembra un controsenso, ma non è
così.

un buon motivo per non usare .Sort (immagino tu intenda in fase di
acquisizione dei valori) è che volevo mantenere lo specchio delle
tavole/tabelle nell'array. magari se ne poteva fare a meno?

issdr

unread,
Jan 15, 2023, 4:35:20 PM1/15/23
to
casanmaner wrote:

> Visto che utilizzi la funzione FILTRO (che è una di quelle presenti in
> office 365)

anch'io sono contro l'obsolescenza, alla fine si tratta di saltare
qualche vuoto

https://user.fm/files/v2-f7e08f23dd534a5eaaf77965324b4be1/Archivio(4)_issdr_3.xlsm

issdr

unread,
Jan 15, 2023, 4:39:54 PM1/15/23
to
non For c = 3 To UBound(temp, 1)
ma For c = 1 To UBound(temp, 1)

altrimenti si perde il piemonte

casanmaner

unread,
Jan 16, 2023, 1:50:58 AM1/16/23
to
Più che altro non si sa mai che versione di Excel venga utilizzata dall'altra parte :-)
Queste nuove funzioni indubbiamente sono interessanti ma finché tutto è a proprio uso e consumo non ci sono problemi.
Già l'aver utilizzato io una funzione di ordinamento basata su un componente esterno ha creato un problema sul tuo pc.
Figuriamoci queste funzioni. Ora non so Ale che versioni utilizzi attualmente ma ai tempi ricordo utilizzasse anche Excel 2003 :-)

issdr

unread,
Jan 16, 2023, 8:35:14 AM1/16/23
to
casanmaner wrote:

> Il giorno domenica 15 gennaio 2023 alle 22:35:20 UTC+1 issdr ha scritto:
>> casanmaner wrote:
>>
>> > Visto che utilizzi la funzione FILTRO (che è una di quelle presenti in
>> > office 365)
>> anch'io sono contro l'obsolescenza, alla fine si tratta di saltare
>> qualche vuoto
>>
>> https://user.fm/files/v2-f7e08f23dd534a5eaaf77965324b4be1/Archivio(4)_issdr_3.xlsm
>
> Più che altro non si sa mai che versione di Excel venga utilizzata dall'altra parte :-)
> Queste nuove funzioni indubbiamente sono interessanti ma finché tutto
> è a proprio uso e consumo non ci sono problemi.
> Già l'aver utilizzato io una funzione di ordinamento basata su un
> componente esterno ha creato un problema sul tuo pc.

ti ho letto dopo aver sperimentato un'espressione regolare, che
semplificherebbe il codice, quindi non condivido qui la versione

> Figuriamoci queste funzioni. Ora non so Ale che versioni utilizzi
> attualmente ma ai tempi ricordo utilizzasse anche Excel 2003 :-)

un'altra variante, che fa fuori i vuoti dell'array monodimensionale in
cui colloco le liste. spero che la funzione Filter VBA per i vettori
fosse già in quella versione, non riesco a risalire alla data di
introduzione

https://user.fm/files/v2-48e6c00f15d13b73d675d9b577a072ad/Archivio(6)_issdr_3.xlsm

Final Job

unread,
Jan 16, 2023, 8:34:00 PM1/16/23
to
Ringrazio per gli aiuti, datemi un pò di tempo per vedere fin dove
riesco a capire e se riesco ad adattare qualcosa che ho visto sarebbe
utile modificare.

Grazie
Ale



issdr

unread,
Jan 17, 2023, 3:00:44 PM1/17/23
to
di nulla, ok.

metto qua la mia ultima versione, con codice commentato. unica nota, ho
dovuto imporre il formato testo nella colonna dei cap del primo foglio,
perché alcuni cominciano per 0.

https://user.fm/files/v2-600d8ad1de6cdd827eed0dbf66993f3d/Archivio(7)_issdr_3.xlsm


Final Job

unread,
Jan 17, 2023, 9:08:10 PM1/17/23
to
Il 17/01/2023 21:00, issdr ha scritto
>
> metto qua la mia ultima versione, con codice commentato. unica nota, ho
> dovuto imporre il formato testo nella colonna dei cap del primo foglio,
> perché alcuni cominciano per 0.
>
> https://user.fm/files/v2-600d8ad1de6cdd827eed0dbf66993f3d/Archivio(7)_issdr_3.xlsm

Buongiorno.
mi pare ci siano degli errori nei nomi zona del file che posti, può
essere che sia fisiologico a seguito delle dinamiche di esecuzione delle
procedura?

Inoltre, se aggiungo ulteriori dati nelle tabelle descrizioni e codici
del TabStd la procedura non popola i rispettivi campi del codice comuni
nel TAB Dati.

Vorrei chiederti alcune altre cose, se possibile.

- Come faccio a raggruppare descrizioni e relativi codici in un'unica
tabella Come riportato nel file di cui invio il link ES:

Col O Col P Col Q Col R Col S Col T Col Q Col R
Regione CodReg Provincia CodProv Comune CodCom CAP CodCap


- Dovendo spostare nel foglio reale le tabelle rispetto all'esempio, per
il foglio dati ho visto come fare ma per il foglio TabStd mi si creano
problemi. Mi daresti un'indicazione in merito?

- Se dovessi impiegare, in uno stesso foglio, due soluzioni di questo
tipo con valori descrizioni e codici differenti tra le due sarebbe
possibile?

https://www.dropbox.com/scl/fi/z81nzmiph6qyk3dril1kk/Archivio-7-_issdr_3-modificato-MIO.xlsm?dl=0&rlkey=ex4ik11z3b1pu0f3vt0sjxm37

Grazie anche a te
Ale




Final Job

unread,
Jan 17, 2023, 9:15:56 PM1/17/23
to
Il 15/01/2023 19:41, casanmaner ha scritto:
> Ciao Ale,
> per il tuo primo problema non ho ben capito quale sia.
Infatti non c'era! :-) Sai che sono un creativo io ....

> Comunque con le modifiche che hai fatto, rendere dinamico l'inserimento delle convalide in base alla riga, ha mantenuto fermo il fatto che la popolazione delle convalide per le regioni avvenga solo quando viene selezionato il foglio. Quel metodo poteva andare bene se l'inserimento avesse riguardato una sola riga. Come hai modificato si sarebbe popolata la sola riga selezionata al momento in cui tu fossi passato da un altro foglio al foglio in questione.
> Se vuoi rendere dinamico anche l'inserimento delle convalide per la colonna delle regioni devi sfruttare l'evento "SelectionChange" del foglio.
> Nel tuo file ho modificato la procedura utilizzando tale evento e impostando che le celle si popolino solo se viene selezionata una cella della colonna "Regioni".
> Ho anche provato a eliminare la colonna A dove avevi inserito le regioni di seguito e mi sembra che le convalide che si creano riportano le regioni di seguito senza "vuoti".
Ok

> Per l'errore dopo aver aggiunto colonne è naturale che avvenga se non modifichi, nel codice dell'evento "change" i riferimenti di colonna dove vanno a posizionarsi i campi Regioni, Province, Comuni e CAP dell'area dove inserisci i dati.
> Per ovviare a questo problema ho assegnato dei nomi (a livello di foglio) in corrispondenza delle intestazioni (cRegioni, cProvince, cComuni, cCAP) e nell'evento Worksheet_Change i riferimenti ora sono del tipo:
>
> Cells(Riga, Range("cRegioni").Column)
>
> Prima c'era il riferimento fisso alla lettera della colonna del tipo Range("M" & Riga).
> Ma ovviamente se aggiungi una colonna "M" diventa "N", e via dicendo, e la procedura va a verificare il cambiamento di colonne errate.
> Ora se si sposta la colonna dell'intestazione la stessa viene intercettata grazie al suo nome e viene letta la colonna in cui si trova.
Ok, ricevuto.
Grazie

> Per test ho aggiunto colonne alla tabella e ora la sezione di inserimento dati parte dalla colonna P (prima era M). Se tu dovessi spostare quelle colonne (Regioni, Province, ecc) la procedura comunque leggerà la posizione dei nomi assegnati alle intestazioni e il tutto verrebbe riprodotto nelle nuove colonne.
> Ho anche aggiungo un nuovo foglio dove ho copiato il codice presente in TabStd e ho riportato le etichette di colonna nominandole allo stesso modo, sempre a livello di foglio, e spaziando ogni etichetta di una colonna.
> Noterai che le convalide vengono inserite in corrispondenza delle sole colonne specifiche.
Vedo, ma devo provare alcuni adattamenti.

> E poi, per concludere, mi sono accorto di aver sbagliato ripetutamente! il plurale di provincia è province!!!! Devo tornare alle elementari. Sto diventando vecchio e alcune regole grammaticali me le sto perdendo per strada ... sigh :-(((

Ma figurati .....
Grazie, maestro

issdr

unread,
Jan 18, 2023, 6:43:30 AM1/18/23
to
Final Job wrote:

> mi pare ci siano degli errori nei nomi zona del file che posti, può
> essere che sia fisiologico a seguito delle dinamiche di esecuzione
> delle procedura?

non ci sono errori, non hai inserito i cap come testo (e non lo hai
fornito per siracusa). ho forzato le colonne dei cap (anche nella nuova
tavola) a testo ed ho trasformato i numeri esistenti in testo con la
funzione "testo in colonne" (sta sotto "dati"), senza separatori e
selezionando il formato testo

> Inoltre, se aggiungo ulteriori dati nelle tabelle descrizioni e codici
> del TabStd la procedura non popola i rispettivi campi del codice
> comuni nel TAB Dati.

ho fatto delle prove, se lo fai seguendo lo schema non ci sono
problemi. ovviamente i menu a tendina già generati non vengono
rinfrescati, non era nelle richieste il variare le tavole in
corsa. fattibile se lo ritieni necessario, ma andava detto prima.

> Vorrei chiederti alcune altre cose, se possibile.
>
> - Come faccio a raggruppare descrizioni e relativi codici in un'unica
> tabella Come riportato nel file di cui invio il link ES:
>
> Col O Col P Col Q Col R Col S Col T Col Q Col R
> Regione CodReg Provincia CodProv Comune CodCom CAP CodCap

modificando i riferimenti nel codice, ho provato a commentare per
rendere questo genere di operazioni fattibile... ho fatto comunque,
butta un occhio

> - Dovendo spostare nel foglio reale le tabelle rispetto all'esempio,
> per il foglio dati ho visto come fare ma per il foglio TabStd mi si
> creano problemi. Mi daresti un'indicazione in merito?

come qui sopra

https://user.fm/files/v2-d3d0fdf32fa41770a4d4eea3cb62e164/Archivio(8)_issdr_3.xlsm

> - Se dovessi impiegare, in uno stesso foglio, due soluzioni di questo
> tipo con valori descrizioni e codici differenti tra le due sarebbe
> possibile?

tutto è possibile, sempre cambiando i riferimenti. poichè non ho molto
tempo, guarda cos'ho fatto come second best:

https://user.fm/files/v2-6cfd38056ec37027d50c980888f762e1/Clipboard14.png

mi è bastato rendere relativi alcuni riferimenti (la convenzione è che
il foglio con le tavole segue quello con i dati. questi ultimi devono
essere sempre dispari - il primo, il terzo, il quinto...). poi apri una
nuova finestra che insiste sullo stesso file e le affianchi

nell'esempio non ho toccato le descrizioni, ho solo aumentato d'uno
ciascun codice


issdr

unread,
Jan 18, 2023, 6:55:06 AM1/18/23
to
issdr wrote:

> https://user.fm/files/v2-d3d0fdf32fa41770a4d4eea3cb62e164/Archivio(8)_issdr_3.xlsm

quando apri, fai il debug e togli .Count da Sheets.Count

issdr

unread,
Jan 19, 2023, 8:00:06 AM1/19/23
to
issdr wrote:

> (e non lo hai fornito per siracusa)

no, questo non è vero, sono stato io: "testo in colonna" sposta in su di
una cella tutti i contenuti se applicato all'intera colonna, è successo
questo (che considero un baco). selezionando il range a cui applicarlo,
va tutto liscio

Final Job

unread,
Jan 19, 2023, 9:19:30 AM1/19/23
to
Il 19/01/2023 13:58, issdr ha scritto:
> issdr wrote:
>
>> (e non lo hai fornito per siracusa)
>
> no, questo non è vero ..........

Buongiorno.
Vorrei essere certo che non non ci siano malintesi. Nello scrivere in
replica ai vari post non ho mai inteso puntare il dito su una soluzione
o su di un'altra, anche perchè non ho minimamente capacità (e si vede)
per partecipare alle considerazioni più profonde che vengono scambiate
sugli argomenti . Sicuramente non serviva ma .... melius abundare quam
deficere.

E difatti ho qualche difficoltà applicativa ... ma grazie nuovamente.

issdr

unread,
Jan 19, 2023, 11:00:06 AM1/19/23
to
Final Job wrote:

> Vorrei essere certo che non non ci siano malintesi. Nello scrivere in
> replica ai vari post non ho mai inteso puntare il dito su una
> soluzione o su di un'altra, anche perchè non ho minimamente capacità
> (e si vede) per partecipare alle considerazioni più profonde che
> vengono scambiate sugli argomenti . Sicuramente non serviva ma
> .... melius abundare quam deficere.

sì, non serviva... la mia finalità è imparare qualcosa nel cercare di
risolvere i problemi posti, quindi tranquillo.

ho solo precisato che i dati di prova erano corretti e li ho alterati
involontariamete io. il problema da te registrato era solo un problema
di formati: se vuoi inserire i numeri senza pensarci, converti quello
dei cap in testo. in alternativa, lasci il formato generico e anteponi
un appstrofo al numero in fase d'inserimento

Final Job

unread,
Jan 19, 2023, 5:11:17 PM1/19/23
to
Mi fa piacere. Grazie nuovamente.

A riprova di quanto detto sulla mia preparazione, dovrò chiedere
nuovamente suggerimenti perchè non riesco ad inserire due menù a tendina
concatenati in uno stesso foglio che già contiene lo sfruttamento di un
precedente evento Worksheet_Change utilizzato da una funzionalità
esistente.

Ciao
Ale

issdr

unread,
Jan 19, 2023, 7:00:12 PM1/19/23
to
Final Job wrote:

> non riesco ad inserire due menù a tendina concatenati in uno stesso
> foglio che già contiene lo sfruttamento di un precedente evento
> Worksheet_Change utilizzato da una funzionalità esistente.

le celle che innsecano la funzionalità esistente (se ce ne sono di
specificate) rientrano nelle colonne dove ci sono i menu a tendina? (in
tutto o in parte)

Final Job

unread,
Jan 19, 2023, 8:58:54 PM1/19/23
to
No ma meglio sarebbe che io inviassi un esempio dettagliato altrimenti
rischiamo di perderci dietro a questo post. Ora sono fuori tempo
massimo, vedo di tornarci sopra nel fine settimana. Magari apro un post
differente che può essere utile anche ad altri.

Buongiorno e grazie.

Per Casanmaner,
attualmente mi tocca usare Office Professional Plus 2016 perchè sto
usando un portatile che monta questa versione ma io, da ignorante, mi
trovavo bene con il 2007. Il 2003 non lo ho più da tempo e quando è
stata contemplata quella versione in qualche richiesta era perchè in
alcune postazioni che usavamo era ancora montato il 2003.
Ciao!

casanmaner

unread,
Jan 20, 2023, 5:07:19 AM1/20/23
to
Ciao Ale,
dal punto di vista grafico anche io amavo di più la versione 2007.
Però c'è da dire che la versione "office 365" ha diversi strumenti e funzioni piuttosto potenti che riducono, per certe cose, di molto la programmazione.
Certo c'è da studiarle.
Ma, tanto per fare un esempio, avere un elenco univoco ordinato, per il quale in precedenza o impazzivi con formule complesse o ti affidavi a vba, lo ottieni con due formule.
Poi per carità sulle formule "matriciali" è cambiato proprio il modo di lavorare di Excel e c'è da abituarsi.
Poi se devi estrarre query con power query ci sono molte possibilità di lavoro.
Diciamo che se avessero mantenuto l'aspetto "2007" con le funzionalità attuali sarebbe stato il massimo per me.
Le attuale icone sono veramente fastidiose :-)

Final Job

unread,
Jan 22, 2023, 5:11:09 PM1/22/23
to
Il 20/01/2023 11:07, casanmaner ha scritto:

>> Per Casanmaner,
>> attualmente mi tocca usare Office Professional Plus 2016 perchè sto
>> usando un portatile che monta questa versione ma io, da ignorante, mi
>> trovavo bene con il 2007. Il 2003 non lo ho più da tempo e quando è
>> stata contemplata quella versione in qualche richiesta era perchè in
>> alcune postazioni che usavamo era ancora montato il 2003.
>> Ciao!

> Ciao Ale,
> dal punto di vista grafico anche io amavo di più la versione 2007.
> Però c'è da dire che la versione "office 365" ha diversi strumenti e funzioni piuttosto potenti che riducono, per certe cose, di molto la programmazione.
> Certo c'è da studiarle.
> Ma, tanto per fare un esempio, avere un elenco univoco ordinato, per il quale in precedenza o impazzivi con formule complesse o ti affidavi a vba, lo ottieni con due formule.
> Poi per carità sulle formule "matriciali" è cambiato proprio il modo di lavorare di Excel e c'è da abituarsi.
> Poi se devi estrarre query con power query ci sono molte possibilità di lavoro.
> Diciamo che se avessero mantenuto l'aspetto "2007" con le funzionalità attuali sarebbe stato il massimo per me.
> Le attuale icone sono veramente fastidiose :-)

Ciao, maestro.
Che sia da studiare l'evoluzione di un'applicazione dalle potenzialità
di Excel è il minimo e leggo da più parti delle grandi possibilità di
queste nuove versioni. Ciò che non capisco è questa mania di cambiare ad
ogni occasione le interfacce grafiche anche quando funzionano e sono
facilmente "digeribili" nonchè riconoscibili anche dagli utilizzatori
non professionisti e quando ci torni sopra dopo mesi. Però, siamo tutti
d'accordo, credo, sulla proposta: "santo subito". Come si farebbe a
vivere senza i successori del vecchio Simphony?
0 new messages