Forum di Excel e VBA, per condividere esperienze e risolvere problemi su: Excel, Word, Access, Power Point, Microsoft Office, macro, Visual Basic e Visual Studio.
Esercizio N.5 di Textomb data: 02/05/2015 12:58:42
Volevo proporre un esercizio per il Forum.
Semplice ma al tempo stesso ricco di tante possibii applicazioni pratiche. Così ci manteniamo in forma...
Allego l'esempio per maggiore comprensione.
All'interno una griglia di valori in cui le intestazioni di colonne sono i mesi (da gennaio a dicembre) Le intestazioni di righe sono alcune principali città Italiane. I valori all'interno della griglia sono le ore di straordinario pagate dall'Azienda LTD Multiservice software & CO... (ovviamente tutto inventato..)
L'obiettivo è: selezionare una città, dalla casella a discesa quindi il mese da altra casella a discesa ed all'interno della griglia si deve accendere il corrispondente valore.
L'esercizio è semplice e si presta a molteplici soluzioni. Può essere svolto utilzzando solo formule, VBA, magie varie ed altro ancora. Non mi sento di dare alcuna limitazione.
Chi vince, ovviamente non vince nulla. Però verrà dato onore e gloria in pubblica piazza...
Infine lasciamo la priorità a chi ha iniziato da poco ad assaporare le potenzialità di Excel...
Buon divertimento e buona domenica a tutti!!
di ninai (utente non iscritto) data: 02/05/2015 15:05:34
ciao cit. "all'interno della griglia si deve accendere il corrispondente valore"
in che senso??? deve prendere fuoco??
-)
potrei usare la formula =COMBUSTIONE(.........)
credo tu intenda colorare lo sfondo, con formattazione condizionale ;
di Textomb data: 02/05/2015 20:05:52
come dicevo... non ci sono limitazioni.
quindi diamo pure spazio alla fantasia. L'obiettivo resta chiaramente risolvere la problematica.
Resta confermata l'intuizione di ninai e cioè colorare lo sfondo tramite formattazione condizionale. Ma non deve essere vincolante.
E poi, dal bravo ninai, potrei aspettarmi anche un comando vocale...
di Textomb data: 02/05/2015 21:39:21
Per maggior precisazione, laddove ce ne fosse bisogno, oltre ad evidenziare o "accendere" il valore corrispondenete all'interno della griglia, si dovrà archiviare questo valore in una cella esterna alla griglia.
Quindi, nell'esempio che ho postato, se vengono selezionate la città di Piacenza ed il mese di Agosto si dovrà accendere nella griglia il corrispondente valore (245) e lo stesso valore dovrà essere visualizzato in una cella esterna (per es. in R14) dove poter inserire la formula che estrapola il valore corretto...
di alfrimpa data: 03/05/2015 00:41:14
Ma il tutto dovrà avvenire automaticamente o,è possibile lanciare una macro che fa il tutto?
Alfredo
di isy data: 03/05/2015 01:03:36
Ho utilizzato le formattazioni condizionali e scarto per ottenere il valore
Allegato: Formule.xlsx
di isy data: 03/05/2015 01:16:37
Naturalmente la formula si può ridurre in lunghezza...
Auguro buon lavoro!
di brontolo (utente non iscritto) data: 03/05/2015 07:01:34
Nel File, Esercizio N.5 by brontolo.zip ho utilizzato Formattazione condizionale e la Funzione Scarto Applicata a:
- Città
- Mese
- Valore
Nella Funzione Scarto
- Città
può essere tranquillamente modificata:
da
- =SCARTO($B$3;$Q$2-1;1)
a
- =SCARTO($C$3;$Q$2-1;)
Analogamente per la Funzione Scarto
- Mese
da
- =SCARTO($W$7;$U$2-1;1)
a
- =SCARTO($X$7;$U$2-1;)
brontolo
di isy data: 03/05/2015 10:26:23
Con la seguente formattazione condizionale:
=INDIRIZZO(RIGHE($D$3:D3);COLONNE($D$3:D3))=INDIRIZZO($Q$2;$U$2)
Allegato: Esercizio N.5 di isy.xlsx
di alfrimpa data: 03/05/2015 10:52:40
Ciao a tutti.
Giusto per il gusto di partecipare ed avendo io un'"allergia" per le formule propongo una piccola (ma veramente piccola) soluzione con una macro in VBA.
Avrei voluto fare il tutto automaticamente ma, a quanto pare, la variazione delle celle collegate ad una casella a discesa non sono intercettabile dall'evento Change dell'oggetto Worksheet (ho fatto mille prove ma nulla da fare; forse con i controlli ActiveX qualcosa si riesce a fare ma non volevo cambiare la struttura del file proposto).
Buona domenica.
Alfredo
di lepat (utente non iscritto) data: 03/05/2015 11:02:34
alfredo, dove le formule arrivano il vba è solo di impaccio
di alfrimpa data: 03/05/2015 11:09:25
Si Lepat sono d'accordo ma io, come detto, con le formule ci vado poco d'accordo .
E poi era stato detto che non c'erano limitazioni......
Alfredo
di alfrimpa data: 03/05/2015 12:12:14
Ho riallegato il file che ora è tutto automatizzato.
Prima mi ero incartato sulla classica buccia di banana.
Bastava associare la macro alla casella a discesa.
Alfredo
di isy data: 03/05/2015 13:25:22
Con una differente formula da inserire in D3:
=CELLA("indirizzo";A1)=$Z$2
Una semplificazione!
Allegato Esercizio N.5 new.xlsx
Alternativa con VBA. di brontolo (utente non iscritto) data: 03/05/2015 13:37:47
Nel File Esercizio N.5 VBA.zip non ho utilizzato Formattazione condizionle e neppure Funzioni/Formule.
È un pò raffazzonato, prima di sera cerco di "alleggerirlo".
VBA può piacere o non piacere, ma, tantè
Un grazie di cuore a Isy, senza un suo prezioso consiglio, non sarei mai riuscito a rendere funzionale il Foglio "List" con Riquadri bloccati.
brontolo
formato condizionale di canapone (utente non iscritto) data: 03/05/2015 14:51:00
Ciao a tutti,
nel file "cinque" uso come regola per la formattazione condizionale
Ho esteso la regola da D3 al resto del foglio con copia incolla speciale formati.
Saluti
di Marius44 data: 03/05/2015 18:02:17
Un piccolo appunto.
Stavolta non sono state rispettate le consuete regole: "... gli esperti attendano qualche giorno prima di rispondere ..."
Avrebbero dato modo ai neofiti di cimentarsi ed imparare. Anch'io ero giunto allo stesso punto di Alfredo e mi ero ... incartato. Splendida la sua intuizione di associare la macro alla casella a discesa.
Bravi tutti e alla prossima.
di Textomb data: 03/05/2015 19:48:55
ciao Marius
Si è vero. Gli esperti avrebbero dovuto aspettare un pò prima di proporsi. Ma in ogni caso, ne vedrai ancora delle belle.
Ci sono, come dicevo, molteplici soluzioni alla problematica. Ne sono state proposte solo alcune.
Quindi se vuoi puoi ancora continuare a cimentarti e trovarne di altre.
In ogni caso, resta connesso...
di ninai (utente non iscritto) data: 03/05/2015 21:10:20
ciao a tutti
a questo punto mi ci ficco pure io , con la soluzione fatta all'apertura dell'esercizio, non vorrei che già sia stata proposta e mi sia sfuggito.
formattazione, dopo selezione, D3:O40
=E(RIF.RIGA()=$Q$8+2;RIF.COLONNA()=$T$8+3)
per l'estrazione le soluzioni sono numerosissime, per rimanere coerente la formula precedente:
=MATR.SOMMA.PRODOTTO((RIF.RIGA(C3:C40)-2=$Q$8)*(RIF.COLONNA(D2:O2)-3=$T$8)*D3:O40)
La prossima volta stabiliamo giorno ed ora di quando gli "esperti" entrano in giorno,(dovremmo anche specificare chi è esperto e chi non lo è)
Textomb, alla fine ti incarichi di fare il collage di tutte le soluzioni in un file????
Metto in evidenza di Mauro data: 03/05/2015 21:22:30
Discussione interessante, metto in evidenza. Se avete nelle iniziative avvertimenti che provo a promuoverle. Un saluto a tutti.
Utenti esperti di Mauro data: 03/05/2015 21:47:51
P.S.:
cito: "...dovremmo anche specificare chi è esperto e chi non lo è"
Effettivamente sugli utenti esperti c'è un po' di confusione. Ad esempio Ninai è sicuramente un utente esperto ma non risulta iscritto perciò non può essere nominato. Stesso discorso per Lepat. Mentre c'è chi è esperto ma preferisce intervenire come "utente non iscritto". Forse è arrivato il momento di riorganizzare la questione. Scusate l'intromissione. Saluti.
di Marius44 data: 04/05/2015 07:13:00
Grazie a Mauro per il suo intervento.
Visto che hai in programma la riorganizzazione mi permetto suggerire quanto segue: quando l'argomento è interessante intervengono in molti e ciascuno offre la propria opinione, talvolta inserendo un allegato. Ecco: se gli allegati sono tanti lo spazio predisposto risulta insufficiente e si passa ad una seconda riga posta immediatamente sotto che è poco evidente. Dunque, o rimpiccioliamo le icone o allarghiamo lo spazio.
Ancora. Coloro che non sono "esperti" possono "fare carriera" in base ai "punti" che potrebbero essere assegnati ad ogni risposta esatta e coerente data (se parliamo di formule ninai a mio avviso è imbattibile - ma anche altri non scherzano; se parliamo di VBA alfrimpa è uno dei migliori).
Il Forum è eccezionale: serve ad imparare e ad insegnare. Impegniamoci a migliorarlo.
Ciao,
Mario Alessi
di lepat (utente non iscritto) data: 04/05/2015 07:53:22
indipendentemente dalle decisioni di Mauro su lasciare l'accesso libero o non, io eviterei di fare classifiche a punteggio e distinzioni tra esperti e non esperti, siamo qui per imparare, risolvere problemi o passare piacevolmente il tempo, non è meglio se siamo tutti uguali ?
di Mauro data: 04/05/2015 12:56:37
Le mie decisioni dipendono dalle esigenze degli utenti. Se la divisione tra utenti esperti e non genera confusione, possiamo eliminare questa distinzione. Però la decisione deve essere condivisa dalla maggioranza degli esperti. Ok x le precisazioni di Mario.
di scossa data: 04/05/2015 13:04:22
cit. lepat: " io eviterei di fare classifiche a punteggio e distinzioni tra esperti e non esperti....."
sono assolutamente d'accordo!
Non vorrei che questo forum diventasse come la Community Microsoft con i voti alle risposte o, peggio ancora, comi i social con i like, i mi paice, i non mi piace ....... per carità!
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
di Luca73 data: 04/05/2015 13:04:35
Ciao a tutti
per la formattazione condizionale sono arrivato alla stessa di Ninai.
Avrei aggiunto la seguente (di colore più chiaro che evidenzia tutta la riga e la colonna per facilitare la lettura
=O(RIF.RIGA()=$Q$8+2;RIF.COLONNA()=$T$8+2)
applicata a =$C$2:$O$40
Per l'estrazione del dato:
=CERCA.VERT(SCARTO(C3;Q8-1;0);C2:O40;T8;FALSO)
di Textomb data: 04/05/2015 13:06:14
@ ninai
cit. Textomb, alla fine ti incarichi di fare il collage di tutte le soluzioni in un file????
Ovviamente si. Alla fine allegherò un unico file con la sintesi di tutte le soluzioni adotatte.
Ma ancora non mi sento di chiudere l'esercizio. Aspetterò ancora un paio di giorni e poi darò anche la mia versione.
A proposito dei punteggi da assegnare e della distinzione degli utenti esperti e no (vd. Marius) condivido l'osservazione di lepat. Siamo qui per imparare e per offrire la nostra conoscenza laddove possibile.
Tra l'altro, l'assegnazione di punteggi in base alle risposte date negli interventi può essere molto onerosa. Si porrebbe infatti la problematica di chi dovrebbe essere delegato ad assegnarli ed in base a quali criteri. Ci vorrebbe un moderatore che si dedichi a questo. E non mi pare il caso...
Gli esercizi proposti nel Forum rappresentano un'ottima opportunità per imparare cose nuove.
Personalmente andrei avanti così come adesso. Siamo tutti liberi di intervenire oppure di non farlo. C'è chi partecipa alle discussioni con l'utente registrato (come me) e chi invece preferisce non farlo.
In sostanza, il Forum va considerato come un momento per ripiegare in altre attività piacevoli e dilettevoli. Inoltre dare e ricevere aiuto è certamente appagante...
di Marius44 (utente non iscritto) data: 04/05/2015 18:26:51
Mi avete convinto. Grazie a tutti e ... seguo per imparare.
di isy data: 04/05/2015 19:43:42
Ho preso spunto dalle precedenti indicazioni...
Ho inserito in gestione Nomi il riferimento Colore con la seguente Formula:
=E(RIF.RIGA()=pg!$R$2;RIF.COLONNA()=pg!$V$2)
Allego file: Esercizio N.5 N.xlsx
icona allegati di Mauro data: 05/05/2015 07:35:07
Ho modificato l'icona degli allegati, se avete notato altre cose o se avete idee sono a disposizione. Saluti
di Textomb data: 05/05/2015 18:44:47
allego il file "Esercizio N.5 Soluzioni" contenente le soluzioni proposte dagli intervenuti. Spero di non averne dimenticati.
Ho inserito anche la mia... Ho voluto fornire una piccola variante al quesito. Giusto per giocare un pò...
Per me il vincitore di questa tornata è mia moglie!!! Perchè stasera mi prepara la pizza... Ma quella fatta in casa...!!!