Previous page | 1 | Next page
Facebook  

Unire celle automaticamente nel corso degli anni

Last Update: 7/4/2020 7:18 AM
Author
Print | Email Notification    
Post: 2
Registered in: 6/25/2020
Age: 26
Junior User
2019
OFFLINE
6/25/2020 2:41 PM
 
Modify
 
Delete
 
Quote

Buongiorno a tutti!

Mi trovo bloccato sulla lavorazione di un foglio excel nel quale dovrei far si che, come potete vedere nel file che poi vi allego di seguito, si uniscano verticalmente ed in automatico nelle 6 colonne previste, le celle corrispondenti ai giorni che vanno dal lunedì al venerdì per tutti i mesi dell'anno e per tutti gli anni previsti nel foglio "Festività” (foglio che poi ho utilizzato per l'aggiornamento automatico del calendario e per l'evidenziazione in giallo delle feste, come potete immaginare). La cosa che mi farebbe comodo sarebbe che quando cambio l’anno, nell'apposita cella, e scrivo per esempio 2025, oltre a cambiarsi tutto il calendario mi cambi la formazione delle celle unite.

Mi spiego meglio: nel 2020 il 1° gennaio ’20 è un mercoledì, a me servirebbe che nelle colonne dedicate (alla sinistra della colonna DATA) mi venga una cella singola vuota per ognuna delle 6 colonne visto che è festa, che mi si uniscano le celle del 2 e 3 gennaio che sono giovedì e venerdì e che mi rimangano di nuovo singole le celle de 4, 5, 6 gennaio che sono sabato, domenica ed epifania. L’automatismo sarebbe comodo nel momento in cui una volta inserito 2021 nell’apposita cella ed essendo il 1° gennaio ‘21 un venerdì festivo mi lasci quella cella vuota così come il 2 e il 3 che sono ovviamente sabato e domenica e che si uniscano in automatico le celle del 4 e del 5 lasciando vuota l’epifania.
Questo mi serve perché io vorrei inserire un valore nella cella unita e vorrei che questo valore mi si divida in automatico e che quindi mi vengano riportati i valori divisi QUASI equamente nelle celle che vanno appunto dal lunedì al venerdì o da feriale a feriale come nell’esempio descritto sopra.
Perché quasi? perché trattandosi di unità non posso dividerle come nell’esempio che vedete nel file ma avrei bisogno di soli numeri interi che preferirei venissero arrotondati per eccesso nei primi 1/2/3 giorni feriali, anche in base alla quantità di giorni che c’è tra un festivo e l’altro, cercando di lasciare quantomeno l’ultimo feriale della serie come gli altri nel caso il valore nella cella unita sia divisibile equamente o scarico delle mezze unità che sono state arrotondate nei primi giorni della serie di feriali. (spero di essermi spiegato)

Ora, farlo a mano non sarebbe impossibile ma sarebbe sicuramente molto lungo, dovrei farlo tutti gli anni sarebbe tanto tanto scomodo.
Mi è parso di capire che per farlo serva una macro dedicata, cosa che io non so manco dove stia di casa, figuriamoci a farla da zero.

C’è modo di farlo o è una cosa assurda ed impensabile?
E soprattutto c'è qualcuno che, gentilmente, riesca a risolvermi questi problemi e darmi una mano?

Non essendo sicuro che abbia preso in allegato il file metto il link di google drive dove potete scaricare il file:
https://drive.google.com/file/d/1Ppi...ew?usp=sharing


Grazie mille in anticipo e una buona giornata a tutti!
Post: 602
Registered in: 7/4/2012
Senior User
2013
OFFLINE
6/25/2020 5:26 PM
 
Modify
 
Delete
 
Quote

Se ho capito bene le celle B412:B415 devono essere unite? Idem per C,D,E,F,G
Mà un domani, ci saranno dei dati al loro interno? Vanno cancellati?
Al VBA sono "indigeste" le celle unite, vedrò cosa fare...
Post: 2
Registered in: 6/25/2020
Age: 26
Junior User
2019
OFFLINE
6/26/2020 9:09 AM
 
Modify
 
Delete
 
Quote

Re:
ABCDEF@Excel, 25/06/2020 17:26:

Se ho capito bene le celle B412:B415 devono essere unite? Idem per C,D,E,F,G
Mà un domani, ci saranno dei dati al loro interno? Vanno cancellati?
Al VBA sono "indigeste" le celle unite, vedrò cosa fare...




Le celle che non sono evidenziate in giallo andrebbero unite sia nella colonna B sia come hai detto tu nelle C,D,E,F,G. Cambiando gli anni cambierebbero le evidenziazioni delle festività e dei fine settimana e quindi sarebbe comodo cambiasse anche l'unione celle di conseguenza.

Per quanto riguarda i dati, io mi sono portato avanti con il completamento della tabella fino a dicembre, rimarranno vuote fino a che non arriverò a quella settimana dove, a quel punto, inserirò i valori nelle celle.
la domanda mi sorge qui: una volta inserito l'anno diverso andrebbero cancellate ma a quel punto poi se torno indietro ho perso i dati definitivamente?
provo a spiegarmi meglio: mettiamo che abbia compilato tutto il 2020 e ora mi trovi nel 2021 diciamo ad aprile. Se volessi controllare aprile 2020, una volta messo il 2021 come selezione dell'anno nell'apposita cella i dati 2020 sono persi per sempre giusto?

inoltre se mi dici che le celle unite sono indigeste anche alle macro a questo punto mi fai pensare di provare a valutare altre vie..😱😱
[Edited by Sicccio 6/26/2020 9:12 AM]
Post: 603
Registered in: 7/4/2012
Senior User
2013
OFFLINE
6/26/2020 5:32 PM
 
Modify
 
Delete
 
Quote

L'unica modifica reale è stato di spostare la convalida_Anno in festività.
Appena cambi anno, vengono eliminati i dati/sboccato le celle unite, poi vengono riunite nuovamente. NB. Non saprei il motivo la FC diventa "stramba"

A riguardo il salvataggio ci devo pensare... Se Lun-Mar-Mer sono unite col valore 5, creando un DB "Lineare" in quale giorno metterò il 5? Se riesco assegnare lo stesso valore a tutti tre giorni. Va bene?
Ps. Lineare, intendo le righe con una Data (tutte le altre escluse)
Post: 3
Registered in: 6/25/2020
Age: 26
Junior User
2019
OFFLINE
6/29/2020 11:37 AM
 
Modify
 
Delete
 
Quote

Re:
ABCDEF@Excel, 26/06/2020 17:32:

L'unica modifica reale è stato di spostare la convalida_Anno in festività.
Appena cambi anno, vengono eliminati i dati/sboccato le celle unite, poi vengono riunite nuovamente. NB. Non saprei il motivo la FC diventa "stramba"

A riguardo il salvataggio ci devo pensare... Se Lun-Mar-Mer sono unite col valore 5, creando un DB "Lineare" in quale giorno metterò il 5? Se riesco assegnare lo stesso valore a tutti tre giorni. Va bene?
Ps. Lineare, intendo le righe con una Data (tutte le altre escluse)




Ciao, intanto grazi mille e scusa il ritardo nella risposta ma ho dato un occhiata a fondo al foglio per provare anche un po a capire.
Per quanto riguarda la formattazione stramba posso risolvere il problema non formattando quelle colonne con le celle unite, è meno intuitivo a colpo d'occhio ma con un po di abitudine non penso sia un problema.
Il problema sorge in alcuni anni, come per esempio nel 2030 quando una volta inserito mi si presenta la schermata in foto allegata.

Non vorrei vanificare il lavoro da te fatto perchè immagino richieda anche diverso tempo ma se è così complicato il discorso ci possono essere altre vie percorribili che non siano complicate fino a questo punto?
Post: 608
Registered in: 7/4/2012
Senior User
2013
OFFLINE
6/29/2020 1:44 PM
 
Modify
 
Delete
 
Quote

A riguardo i salvataggi, ho preferito creare il foglio(Base, senza celle unite) e di non cancellare annate vecchie. Ps. Solo selezionando l'annata da festività, vedrai i festivi reali. Invece nel VBA, se non trova l'annata (crea un foglio nuovo), se il foglio esiste già si posiziona solamente sul foglio scelto. Da provare...

Ritornando sul ragionamento della FC (che adesso si riferisce a =$H$6:$H$500), presumo che il colpevole siano i bordi delle celle (*). Suggerisco di modificare il foglio base, nel quale togli i colori alle colonne B:G e metti solo le celle bordate sui mesi con (tutti i bordi) e prova a rimmettere la Tua FC (non unire in base, celle H3:H4).
(*) = Intendo dire che quando unisci le celle, i bordi spariscono in quelle unite e quando le sbocchi non ritornano. Penso che da adesso dovendo elaborare solo una volta, dovrebbe essere a posto.
Ps. L'errore lo già visto (pensavo a riga69 =29 febbraio), corretto.
Post: 4
Registered in: 6/25/2020
Age: 26
Junior User
2019
OFFLINE
6/30/2020 10:14 AM
 
Modify
 
Delete
 
Quote

Re:
ABCDEF@Excel, 29/06/2020 13:44:

A riguardo i salvataggi, ho preferito creare il foglio(Base, senza celle unite) e di non cancellare annate vecchie. Ps. Solo selezionando l'annata da festività, vedrai i festivi reali. Invece nel VBA, se non trova l'annata (crea un foglio nuovo), se il foglio esiste già si posiziona solamente sul foglio scelto. Da provare...

Ritornando sul ragionamento della FC (che adesso si riferisce a =$H$6:$H$500), presumo che il colpevole siano i bordi delle celle (*). Suggerisco di modificare il foglio base, nel quale togli i colori alle colonne B:G e metti solo le celle bordate sui mesi con (tutti i bordi) e prova a rimmettere la Tua FC (non unire in base, celle H3:H4).
(*) = Intendo dire che quando unisci le celle, i bordi spariscono in quelle unite e quando le sbocchi non ritornano. Penso che da adesso dovendo elaborare solo una volta, dovrebbe essere a posto.
Ps. L'errore lo già visto (pensavo a riga69 =29 febbraio), corretto.




Ciao, ho provato a farlo girare facendo qualche prova e mi pare funzioni alla grande. Mi piace molto il fatto che selezionato l'anno si crei un foglio nuovo, in questo modo se ho bisogno dei vecchi dati li ho a disposizione.
Per quanto riguarda i colori delle non sono un problema, il vero problema come dici tu sono i bordi che non metterò.

L'ultimo paio di cose e poi non ti rompo più le scatole (le elenco che mi rimane più comodo):
1) Non so perchè ma nel file vecchio sono stato distratto e non avevo inserito le colonne chiamate "GUASTO" (che occupano le colonne D,G,J) nella parte di tabella dove vanno unite le celle, è un problema andare ad aggiungerle nella macro in modo che si uniscano come fanno le altre? in sostanza il gruppo di colonne da unire passa da B:G a B:J;
2) le celle unite a me servono perchè una volta inserito il valore nella cella unita (a sinistra della colonna "DATA"), questo si divida in automatico in base al numero di celle che sono state unite e appaia nelle rispettive celle (a destra della colonna "DATA"). Provo a spiegarmi: nella colonna B ho la sezione DELIVERY sotto la regione UMBRIA; attivo la macro e inserendo 2020 nel calendario nella sezione deliveri si uniscono le celle affianco ai giorni 2,3 gennaio e poi 7,8,9,10 gennaio e così via. Quello che a me servirebbe è che, una volta inserito il valore 50 nella cella unita (B7:8) riferita al 2,3 gennaio nella sezione DELIVERY dell'UMBRIA mi appaia 25 nelle celle AA7 e AA8. Se metto 700 nella cella unita B12:15 dovrebbe apparire 175 nelle celle AA12, AA13, AA14 e AA15 e così via per tutte le colonne.
tutto questo dovrebbe variare con la variazione dell'anno sperando non sia troppo complicato
Spero anche sia comprensibile la spiegazione perchè è difficile descrivere il tutto 😂😂
In ogni caso allego il file con i risultati scritti a mano per dare un'idea.

NB la colonna BB nelle date dal 7 al 10 gennaio è in rosso perchè a me nelle celle servirebbero valori interi divisi in quel modo piuttosto che 5,5 ogni giorno, è possibile tenere conto anche di questo?

Grazie ancora dell'aiuto, davvero tanto tanto apprezzato.

Saluti
Post: 609
Registered in: 7/4/2012
Senior User
2013
OFFLINE
6/30/2020 12:39 PM
 
Modify
 
Delete
 
Quote

Non so il motivo, il Tuo Pc ha cambiato Festività in Festivitˆ (ho cambiato il nome in Festivi). Adesso unisce le colonne B/J

Il VBA calcola quante righe può unire, mà non conosce il valore che inserirai. Pertanto ho dei grossi dubbi.
Comunque se Ti va bene, prova inserire i valori in B>>>AA
Se va bene mi devi dire tutti gli altri
C>>>??
D>>>?? ecc ecc. Però ricordati che per esempio il 31-ago-2020 dovrebbe essere unito assieme il 1,2,3,4 sett (causa spazi fine-mese non lo fà/farà)
Se non va bene vai in Base ALT+F11 e cancella tutto a destra + in modulo1, riga39 da cancellare
Ps. Ricordati di cancellare i valori inseriti alla destra delle date

>>>NB la colonna BB nelle date dal 7 al 10 gennaio è in rosso
Non vedo/capisco cosa intendi dire...
[Edited by ABCDEF@Excel 6/30/2020 3:07 PM]
Post: 5
Registered in: 6/25/2020
Age: 26
Junior User
2019
OFFLINE
6/30/2020 4:39 PM
 
Modify
 
Delete
 
Quote

Re:
ABCDEF@Excel, 30/06/2020 12:39:

Non so il motivo, il Tuo Pc ha cambiato Festività in Festivitˆ (ho cambiato il nome in Festivi). Adesso unisce le colonne B/J

Il VBA calcola quante righe può unire, mà non conosce il valore che inserirai. Pertanto ho dei grossi dubbi.
Comunque se Ti va bene, prova inserire i valori in B>>>AA
Se va bene mi devi dire tutti gli altri
C>>>??
D>>>?? ecc ecc. Però ricordati che per esempio il 31-ago-2020 dovrebbe essere unito assieme il 1,2,3,4 sett (causa spazi fine-mese non lo fà/farà)
Se non va bene vai in Base ALT+F11 e cancella tutto a destra + in modulo1, riga39 da cancellare
Ps. Ricordati di cancellare i valori inseriti alla destra delle date

>>>NB la colonna BB nelle date dal 7 al 10 gennaio è in rosso
Non vedo/capisco cosa intendi dire...



Ho provato a farlo girare e mi pare che funzioni benissimo.
Per quanto riguarda quelle eccezioni del 31 agosto che va collegato all'1,2 settembre, per esempio, purtroppo non saprei come fare perchè ho bisogno di avere le percentuali di produzione sotto ogni mese; saranno casi in cui, quando capitano, dividerò personalmente i valori per far si che si adeguino alla tabella.

Per quanto riguarda la distribuzione dei valori:
B>>>AA;
C>>>AG
D>>>AM
E>>>AP
F>>>AV
G>>>BB
H>>>BE
I>>>BK
J>>>BQ

Riguardo al NB. invece io ho necessità di lavorare con numeri interi quindi che le divisioni diano risultati interi approssimati per eccesso nei primi giorni della settimana finchè possibile e approssimare per difetto negli ultimi.
Ti allego il file per farti vedere cosa intendo e, andando nel foglio 2020 vedrai che:
inserendo nella cella unita B12 il valore 22 la macro lo divide equamente nelle 4 celle in AA e quindi riporta 5,5 in ognuna. La mia domanda era se si poteva far si che, anzichè 5,5 riportasse in AA12 e in AA13 il valore 6 mentre in AA14 e AA15 il valore 5 che sommati danno comunque 22 come risultato.
Altro esempio, cella unita B18 inserisco 79 e il valore viene diviso per 5 come è giusto che faccia e viene riportato 15,8 nelle cinque celle della colonna AA. A me servirebbe di vedere numeri interi e quindi 16 nelle celle AA18, AA19, AA20, AA21 e 15 in AA22 che come risultato da comunque 79.

Spero di essere fatto capire, intanto continuo a ringraziarti dell'aiuto.

Post: 612
Registered in: 7/4/2012
Senior User
2013
OFFLINE
6/30/2020 7:34 PM
 
Modify
 
Delete
 
Quote

>>>il valore 6 mentre in AA14 e AA15 il valore 5
Questo non lo posso fare (troppe variabili), solo all'ultima cella.

Suggerisco d'eliminare il 29 Febbraio e tutte le righe pause-mese (tali formule puoi metterle dopo la colonna BT
Post: 6
Registered in: 6/25/2020
Age: 26
Junior User
2019
OFFLINE
7/3/2020 2:06 PM
 
Modify
 
Delete
 
Quote

Re:
ABCDEF@Excel, 30/06/2020 19:34:

>>>il valore 6 mentre in AA14 e AA15 il valore 5
Questo non lo posso fare (troppe variabili), solo all'ultima cella.

Suggerisco d'eliminare il 29 Febbraio e tutte le righe pause-mese (tali formule puoi metterle dopo la colonna BT




Ciao, grazie mille, gira tutto benissimo; scusa inoltre il ritardo nella risposta ma ho lavorato per sistemare un po' il file secondo il tuo consiglio di eliminare il 29 febbraio e le righe pause-mese.
Ora non ci sono più gli spazi bianchi tra i mesi e ho spostato le formule al lato in un'altra tabella.
A questo punto ti chiederei un paio di cose se puoi aiutarmi ancora:

1) Nel nuovo file ho creato un foglio chiamato "Base Bisestile" che è esattamente identico a quello da te creato col nome "Base" solo con la semplice aggiunta del 29 di febbraio e le formule ai lati aggiornate. È possibile fare in modo che la macro capisca da sola se l'anno è bisestile e nel caso lo sia anziché lavorare sul foglio "Base" per unire le celle lavori su "Base Bisestile"?

2) Mi è stato comunicato che, a partire da agosto, il sabato verrà considerato come lavorativo normale per noi, quindi dalla formattazione condizionale non viene già più evidenziato e dovrà essere trattato come feriale a tutti gli effetti. È dunque un problema inserirlo nella macro per l'unione delle celle, considerando il sabato come ultimo feriale di una settimana e quindi come cella più scarica di numeri interi? (sempre salvo feste infrasettimanali ovviamente)

Grazie tante, un saluto
Post: 617
Registered in: 7/4/2012
Senior User
2013
OFFLINE
7/3/2020 7:02 PM
 
Modify
 
Delete
 
Quote

Ok, compreso sabato (tranne sab 02mag2020 ..., da solo). Fai una verifica.
Modifica le formule da BY in poi =SE.ERRORE(MEDIA.SE($P$6:$P$36;">0");"")
Mi aspettavo dopo qualche riga d'inizio_mese 5 righe (3 d'intestazione + due dati del mese). Intendo quando lavorerai dicembre, devi andare sino in BY28 per vedere?

Ps Comunque non mi piaciono le due "BASI". Il VBA, poteva aggiungere il 29feb, casomai le formule (media.se) cambiano in BY/CV. Vedi ex Foglio1 BY40 ed BY68
Pps. Per finire, ho tolto la FC ed il VBA colora i festivi
Post: 5,975
Registered in: 11/14/2004
Master User
Office 2019
OFFLINE
7/4/2020 7:18 AM
 
Modify
 
Delete
 
Quote

Ciao la numerazione di un calendario parte sempre dalla prima data 01/01/2020 esempio del la scrivi in A1 in A2 scriverai la formula

=A1+1

e trascini in basso quando l'anno sarà bisestile in automatico ti riporterà 29/02/20.

anche in A1 si può inserire la formula che automatizza il calendario all'anno corrente con la formula

=Data(Anno(Oggi());1;1)

al primo gennaio del 2021 in automatico la data in "A1" diventerà 01/01/2021 di conseguenza anche tutte le altre date si adegueranno.

l'unica formula diversa sara il giorno 366 se non è un anno bisestile perche riporterà 01/01/2022, ma facilmente superabile, faccio conto che sia la riga 366, con la formula

=SE(ANNO(A365)<>ANNO(365+1);"";365+1)

cose diversa se le date siano espresse per mese in orizzontale, si dovrebbe definire il mese di Febbraio ed i mesi di 30 Giorni sempre con le formule.

Ciao By Sal [SM=x423051]



se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie





Iscriviti al nuovo sito che ho aperto troverai altre RISPOSTE
https://www.bysal-excel.it
Admin Thread: | Close | Move | Delete | Modify | Email Notification Previous page | 1 | Next page
New Thread
 | 
Reply
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Home Forum | Bacheca | Album | Users | Search | Log In | Register | Admin
Tutti gli orari sono GMT+01:00. Adesso sono le 3:00 PM. : Printable | Mobile | Regolamento | Privacy
FreeForumZone [v.5.1] - Copyright © 2000-2020 FFZ srl - www.freeforumzone.com