Discussione:
menu a tendina concatenati
(troppo vecchio per rispondere)
Final Job
2023-01-11 00:13:01 UTC
Permalink
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
2023-01-11 06:43:47 UTC
Permalink
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
2023-01-11 23:08:00 UTC
Permalink
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
Post by casanmaner
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.
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"
=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
casanmaner
2023-01-12 16:38:29 UTC
Permalink
Post by Final Job
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
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
2023-01-12 18:23:40 UTC
Permalink
Post by casanmaner
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
2023-01-13 16:34:24 UTC
Permalink
Post by issdr
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
2023-01-13 20:38:44 UTC
Permalink
Post by Final Job
Post by issdr
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
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
2023-01-14 19:30:05 UTC
Permalink
Post by issdr
Post by Final Job
Post by issdr
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
non posso in questo periodo. avevo condiviso questo, magari nel codice
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.
Se mi libero un po' magari vedo cosa si può fare.
Final Job
2023-01-14 20:59:57 UTC
Permalink
Post by casanmaner
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".
casanmaner
2023-01-14 21:33:16 UTC
Permalink
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
2023-01-14 22:57:03 UTC
Permalink
Post by casanmaner
Ciao Ale,
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.
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, grazi
Final Job
2023-01-14 23:51:33 UTC
Permalink
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
2023-01-15 07:32:35 UTC
Permalink
Post by Final Job
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?
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
Loading Image...
Loading Image...

Per la gestione della tabella devi selezionare la Tab della barra Ribbon che compare quando selezioni una delle celle della tabella
Loading Image...
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
Loading Image...

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
2023-01-15 07:35:10 UTC
Permalink
Post by casanmaner
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:
Loading Image...
Final Job
2023-01-15 16:42:58 UTC
Permalink
Post by Final Job
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?
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
2023-01-15 17:18:26 UTC
Permalink
Post by Final Job
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
2023-01-15 18:55:50 UTC
Permalink
Post by issdr
Post by Final Job
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
Inserisce "Regione" come prima voce degli elenchi.
E se si inserisce quella voce poi riporta provincia, comune, cap.
Loading Image...
issdr
2023-01-15 19:20:46 UTC
Permalink
Post by casanmaner
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
2023-01-15 19:31:49 UTC
Permalink
Post by issdr
Post by casanmaner
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
file sbagliato, ecco quello giusto:

https://user.fm/files/v2-40aca739ab0b68d24d8cb5cc6cdad9f9/Archivio(3)_issdr_3.xlsm
casanmaner
2023-01-15 19:40:02 UTC
Permalink
Post by issdr
Post by issdr
Post by casanmaner
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
https://user.fm/files/v2-40aca739ab0b68d24d8cb5cc6cdad9f9/Archivio(3)_issdr_3.xlsm
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
2023-01-15 19:45:48 UTC
Permalink
Post by casanmaner
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
2023-01-15 21:35:06 UTC
Permalink
Post by casanmaner
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
2023-01-15 21:39:39 UTC
Permalink
Post by issdr
Post by casanmaner
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
non For c = 3 To UBound(temp, 1)
ma For c = 1 To UBound(temp, 1)

altrimenti si perde il piemonte
casanmaner
2023-01-16 06:50:56 UTC
Permalink
Post by issdr
Post by casanmaner
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.
Figuriamoci queste funzioni. Ora non so Ale che versioni utilizzi attualmente ma ai tempi ricordo utilizzasse anche Excel 2003 :-)
issdr
2023-01-16 13:35:07 UTC
Permalink
Post by casanmaner
Post by issdr
Post by casanmaner
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
Post by casanmaner
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
casanmaner
2023-01-15 18:41:46 UTC
Permalink
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 :-(((
Final Job
2023-01-18 02:13:54 UTC
Permalink
Post by casanmaner
Ciao Ale,
per il tuo primo problema non ho ben capito quale sia.
Infatti non c'era! :-) Sai che sono un creativo io ....
Post by casanmaner
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
Post by casanmaner
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.
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.
Post by casanmaner
https://www.dropbox.com/s/rlcyc0n3yc2ml0b/Archivio%281%29_MIO_3_mod_casanmaner.xlsm?dl=0
Grazie
Post by casanmaner
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.
Post by casanmaner
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, maestr
issdr
2023-01-15 10:43:18 UTC
Permalink
Post by casanmaner
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?

Loading Image...
casanmaner
2023-01-15 12:21:39 UTC
Permalink
Post by issdr
Post by casanmaner
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
Forse non hai installato qualche componente ".Net"?
issdr
2023-01-15 12:27:39 UTC
Permalink
Post by casanmaner
Forse non hai installato qualche componente ".Net"?
molto probabile, grazie.

sto scrivendo qualcosa che non dovrebbe necessitare di appoggi, poi
condivido il file
issdr
2023-01-15 10:40:08 UTC
Permalink
Post by casanmaner
Post by issdr
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.

Loading Image...
Final Job
2023-01-13 16:29:52 UTC
Permalink
Post by casanmaner
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 di
Final Job
2023-01-17 01:31:34 UTC
Permalink
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.
issdr
2023-01-17 20:00:31 UTC
Permalink
Post by Final Job
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.
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
2023-01-18 02:07:59 UTC
Permalink
Il 17/01/2023 21:00, issdr ha scritto
Post by issdr
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=ex4ik11z3b1pu0f3v
issdr
2023-01-18 11:43:23 UTC
Permalink
Post by Final Job
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
Post by Final Job
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.
Post by Final Job
Vorrei chiederti alcune altre cose, se possibile.
- Come faccio a raggruppare descrizioni e relativi codici in un'unica
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
Post by Final Job
- 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
Post by Final Job
- 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:

Loading Image...

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
2023-01-18 11:55:01 UTC
Permalink
Post by issdr
https://user.fm/files/v2-d3d0fdf32fa41770a4d4eea3cb62e164/Archivio(8)_issdr_3.xlsm
quando apri, fai il debug e togli .Count da Sheets.Count
issdr
2023-01-19 12:58:53 UTC
Permalink
(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
2023-01-19 14:19:27 UTC
Permalink
(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 grazi
issdr
2023-01-19 15:59:13 UTC
Permalink
Post by Final Job
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
2023-01-19 22:08:46 UTC
Permalink
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à
issdr
2023-01-20 00:00:04 UTC
Permalink
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
2023-01-20 01:58:51 UTC
Permalink
Post by issdr
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)
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 mo
casanmaner
2023-01-20 10:07:17 UTC
Permalink
Post by Final Job
Post by issdr
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)
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!
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
2023-01-22 22:11:07 UTC
Permalink
Post by casanmaner
Post by Final Job
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
Loading...