Unire celle automaticamente nel corso degli anni

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
Pagine: [1], 2
Sicccio
00giovedì 25 giugno 2020 14:41
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!
ABCDEF@Excel
00giovedì 25 giugno 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...
Sicccio
00venerdì 26 giugno 2020 09:09
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..😱😱
ABCDEF@Excel
00venerdì 26 giugno 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)
Sicccio
00lunedì 29 giugno 2020 11:37
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?
ABCDEF@Excel
00lunedì 29 giugno 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.
Sicccio
00martedì 30 giugno 2020 10:14
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
ABCDEF@Excel
00martedì 30 giugno 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...
Sicccio
00martedì 30 giugno 2020 16:39
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.

ABCDEF@Excel
00martedì 30 giugno 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
Sicccio
00venerdì 3 luglio 2020 14:06
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
ABCDEF@Excel
00venerdì 3 luglio 2020 19:02
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
by sal
00sabato 4 luglio 2020 07:18
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]



Sicccio
00lunedì 13 luglio 2020 09:34
Re:
ABCDEF@Excel, 03/07/2020 19:02:

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




Ciao, scusa ma ho avuto problemi col pc che mi è andato in riparazione ed è tornato da poco.
Ho controllato, funziona tutto bene. I festivi li colora a parte le ultime due celle, BR e BS ma funziona tutto alla grande.

La questione delle due basi l'avevo pensata pein questo modo: ho immaginato che la VBA potesse inserire il 29 febbraio ma non ero sicuro che potesse sistemare le formule nella tabella delle percentuali tenendo conto di quella riga aggiunta. Ecco quindi il motivo delle due basi, in questo modo era generalizzato e quindi pensavo fosse più facile il tutto.
A parte questo comunque, solo una cosa non ho capito, in questo momento la VBA funziona sulle due basi? quindi nel caso di anni bisestili mi copia il foglio "base Bisestile" e nel caso di normale mi copia il foglio "Base"?

Per il resto seguirò subito i consigli della modifica alla formula e di dividere la tabella percentuali perchè effettivamente risulta nel primo caso più bello e, nel secondo, molto più comodo.

Intanto grazie mille
Sicccio
00lunedì 13 luglio 2020 09:35
Re:
by sal, 04/07/2020 07:18:

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]






Ciao Sal, grazie del consiglio, lo terrò sicuramente a mente quando dovrò ricreare qualcosa del genere.

Grazie mille dell'aiuto, un saluto
Sicccio
00martedì 21 luglio 2020 16:18
Re:
ABCDEF@Excel, 03/07/2020 19:02:

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



Buongiorno, scusate se scrivo nuovamente ma il file è quasi pronto; qualche piccolezza e credo che poi sia a posto.

Una cosa non credo sia fattibile ma chiedo comunque per essere sicuro e parto proprio da quella che è sicuramente anche la più complicata.

Prendendo per esempio la settimana del 2020 che va dal 1 giugno al 7 giugno dove il 2 è festivo infrasettimanale.
Dopo aver girato la macro, le celle saranno disposte in questo modo:
1 giugno, singola;
2 giugno, evidenziata (festivo);
dal 3 al 6 giugno, celle unite a sinistra della data;
7 giugno, gialla (domenica);


1 - il “problema”, in questo caso, sorge perché se io inserisco un valore nella cella del 1 giugno questo viene solo copiato a destra della data nelle rispettive colonne perché separa dalle celle unite a causa della festività del 2 giugno.
Numericamente parlando:
devo inerire il numero 123, se inserisco 123 nella cella del 1 giugno lo copia a destra della data ma a me servirebbe che lo dividesse e scrivesse 25 perché poi il due giugno non va considerato per ora e poi ci dovrebbe essere nuovamente 25 nelle caselle alla destra della data corrispondenti al 3,4,5 di giugno e 23 in quella corrispondente al 6.
La domanda sta qui:
è possibile quindi fare in modo che se una settimana è divisa da una festa infrasettimanale io inserisco il valore nel lunedì o nel primo gruppo di celle unite e fare la divisione per le celle che non sono festive?
(allego il file per capire con l’esempio che ho appena scritto)

2 -mi è capitato di inserire il valore 14, e ho visto che dividendolo per 6 mi scrive per i primi 5 giorni 3 e l’ultimo -1 che purtroppo per me sarebbe errato, mi serve almeno sempre un numero intero positivo quindi dividendo 14/6 mi dovrebbe uscire una cosa del tipo 3, 3, 3, 2, 2, 1.

3 - Una volta che ho inserito un valore nelle elle unite, nel caso poi lo cancelli, i valori divisi che stanno a destra della data rimangono, è possibile farli sparire se cancello un valore nella cella unita?

4 - mi sono accorto solo ora che domeniche e festivi sono evidenziate ma se inserisco i valori nella sezione delle celle unite, questi non vengono trasportati alla destra delle date nelle rispettive colonne, è possibile aggiornare la macro e far si che vengano trasportati? non servono divisioni perchè queste vengono fatte manualmente per questioni organizzative quindi basta solo una sorta di copia e incolla.
(nello stesso punto dove c’è l’esempio ci saranno anche i valori inseriti del 2 giugno e di domenica 7 dove si vedrà che non vengono trasportati)

5 - la macro quando gira evidenzia domeniche e festivi, potrebbe essere aggiornata per far si che arrivi completamente in fondo alla tabella? perché nelle ultime due colonne non ci sono celle gialle dovute all’evidenziazione della macro.
(sempre file allegato)

NEL FILE, NEL FOGLIO 2020, ANDANDO ALLE DATE DELL’ESEMPIO CI SONO RIPORTATE LE CASISTICHE ELENCATE CON I RELATIVI COMMENTI, SPERO DI ESSERE STATO CHIARO PERCHÈ E DIFFICILE SPIEGARE UNA COSA CHE NON SI SA FARE😅😂

Intanto ringrazio per l’aiuto e la disponibilità, un saluto!

Sicccio

ABCDEF@Excel
00martedì 21 luglio 2020 21:31
Sono solo miei pensieri oppure mie limitazioni del VBA, da controllare bene.
1) Non penso si possa fare, sarebbe logico scrivere il 1-giugno = 25 e 3-giugno 98
Se desideri "qualcosa di settimanale", dovresti cambiare tutta la struttura... e se poi il Lunedi sarà un festivo?
2) Ho già scritto che ci sarebbero troppe variabile, ho corretto il -1 con 3,3,3,3,2,0
3) OK
4) ... dovrebbe funzionare, non ho capito il ...PER TUTTI I FESTIVI E LE DOMENICHE
5) OK

Ps. In quasiasi foglio (tranne Festivi), dove fai modifiche "strutturali" interviene il Worksheet_Change che può segnalarti errori-vari. Ho messo in "Festivi" due bottoni per abilitare/disabilitare il Worksheet_Change

Pps. Causa errore, da oggi i nomi dei fogli saranno A-2020, A-2021 ecc ecc. Prova riempire il mese di febbraio, in modo che veda in BY/CJ dei risultati (vedo se riesco mettere altre formule per eliminare la "Base Bisestile")
ABCDEF@Excel
00mercoledì 22 luglio 2020 11:44
Corretto altro errore
Sicccio
00mercoledì 22 luglio 2020 14:24
Re:
ABCDEF@Excel, 21/07/2020 21:31:

Sono solo miei pensieri oppure mie limitazioni del VBA, da controllare bene.
1) Non penso si possa fare, sarebbe logico scrivere il 1-giugno = 25 e 3-giugno 98
Se desideri "qualcosa di settimanale", dovresti cambiare tutta la struttura... e se poi il Lunedi sarà un festivo?
2) Ho già scritto che ci sarebbero troppe variabile, ho corretto il -1 con 3,3,3,3,2,0
3) OK
4) ... dovrebbe funzionare, non ho capito il ...PER TUTTI I FESTIVI E LE DOMENICHE
5) OK

Ps. In quasiasi foglio (tranne Festivi), dove fai modifiche "strutturali" interviene il Worksheet_Change che può segnalarti errori-vari. Ho messo in "Festivi" due bottoni per abilitare/disabilitare il Worksheet_Change

Pps. Causa errore, da oggi i nomi dei fogli saranno A-2020, A-2021 ecc ecc. Prova riempire il mese di febbraio, in modo che veda in BY/CJ dei risultati (vedo se riesco mettere altre formule per eliminare la "Base Bisestile")



Buongiorno, intanto grazie mille.

Per quanto riguarda il nuovo file,
1) immaginavo non si potesse fare, ma volevo essere sicuro viste le mie scarsissime conoscenze. Come dici tu farò a mano tanto non capita così spesso nell'arco di un anno.
2) va bene anche questo. Anche in questo caso dovrebbe accadere raramente che i numeri siano così bassi da presentare uno zero se non nelle colonne arancioni l'unica cosa è che poi certe percentuali non me le farà perchè dividerà per 0, devo trovare una soluzione a questo.
3) perfetto, ora cancella in automatico i valori dalle righe evidenziate in giallo o nelle righe che non hanno celle unite (vedi 1 giugno 2020) ma nelle altre continua a non cancellarsi.Questo succede perchè diventerebbe troppo complicato farli cancellare dalla vba?
4)Funziona perfettamente ora.
Nel commento quella parte era scritta in maiuscolo solo perchè avevo dimenticato il blocco maiuscole attivo non per altre ragioni. In ogni caso ieri non andava ma temo che il mio pc avesse qualche problema perchè anche la macro la metà delle volte non apriva il foglio con l'anno selezionato. 🤷‍♂️
5)Perfetto.

Allego il file con i dati inseriti in febbraio come mi hai chiesto per vedere di togliere "base bisestile". Quella era sta creata perchè ovviamente le formule sotto "MEDIA % MENSILE" deve tenere conto del bisestile quando c'è. Se però riesci a far si che, se l'anno è bisestile, quelle formule si adeguino di conseguenza ad aggiungere il giorno 29 in febbraio e quindi traslare gli intervalli delle successive per me non c'è problema e una volta che ci sei riuscito puoi anche eliminare "Base Bisestile". Io non l'ho fatto perchè per una cosa del genere non saprei nemmeno da dove iniziare

Grazie ancora e un saluto!
ABCDEF@Excel
00mercoledì 22 luglio 2020 21:24
>>>non hanno celle unite (vedi 1 giugno 2020)
Spiegati meglio. Cosè che dovevo vedere? >>>ma nelle altre continua a non cancellarsi

Non è detto che modificando diventa migliore.
Ho trovato un metodo per i numeri, naturale che se ci sono 6 giorni non puoi mettere un numero inferiore a 6.
Il VBA fà i bisestili e NON, le formule mi sembrano corrette per Febbraio però sono da riscrivere in tutti gli altri mesi.
Di norma si lavora sempre sul foglio BASE e poi si verifica creando una nuova annata.
Formule. Copia il range BY62:CJ63 ed incolla per ogni mese, a questo punto iniziando da gennaio noterai che la formula è composta da due CONFRONTA(DATA($K$2;2;1) al primo devi sostituire il 2 con 1=gennaio ed al secondo CONFRONTA(DATA($K$2;3;1) il 3 con 2=febbraio per tutte le 15 formule.
Quando arrivi a dicembre al primo devi sostituire il 2 con 12=dicembre, invece al secondo metti CONFRONTA(DATA($K$2+1;1;1)

Ps. Ricordati di ripulire il Foglio Base da eventuali dati
Pps. Ricordati che "se per caso" il VBA và in errore (ti appare l'editing con una riga gialla e premi annulla, disabiliti il Change), dovrai premere il bottone in Festivi Abilita
Sicccio
00giovedì 23 luglio 2020 08:10
Re:
ABCDEF@Excel, 22/07/2020 21:24:

>>>non hanno celle unite (vedi 1 giugno 2020)
Spiegati meglio. Cosè che dovevo vedere? >>>ma nelle altre continua a non cancellarsi

Non è detto che modificando diventa migliore.
Ho trovato un metodo per i numeri, naturale che se ci sono 6 giorni non puoi mettere un numero inferiore a 6.
Il VBA fà i bisestili e NON, le formule mi sembrano corrette per Febbraio però sono da riscrivere in tutti gli altri mesi.
Di norma si lavora sempre sul foglio BASE e poi si verifica creando una nuova annata.
Formule. Copia il range BY62:CJ63 ed incolla per ogni mese, a questo punto iniziando da gennaio noterai che la formula è composta da due CONFRONTA(DATA($K$2;2;1) al primo devi sostituire il 2 con 1=gennaio ed al secondo CONFRONTA(DATA($K$2;3;1) il 3 con 2=febbraio per tutte le 15 formule.
Quando arrivi a dicembre al primo devi sostituire il 2 con 12=dicembre, invece al secondo metti CONFRONTA(DATA($K$2+1;1;1)

Ps. Ricordati di ripulire il Foglio Base da eventuali dati
Pps. Ricordati che "se per caso" il VBA và in errore (ti appare l'editing con una riga gialla e premi annulla, disabiliti il Change), dovrai premere il bottone in Festivi Abilita



Buongiorno, forse mi sono spiegato male, perdonami.
Allego un file per spiegarmi meglio dove puoi vedere che nella cella C151 non c'è scritto il valore (99) perchè da me è stato cancellato. Nel range di celle AG151:AG156 però sono rimasti i dati di quando il valore era presente. Questo credo sia dovuto al fatto che la cella C151 è un'unione di celle, perchè se provi a cancellare il valore nella cella C150 (festivo) e nella cella C158 (1° giugno ma cella non unita a nessun'altra perchè tra due festivi), noterai che i rispettivi valori nelle celle AG150 e AG158 scompariranno.
La mia domanda dunque era: è possibile che una volta cancellato il valore nella cella C151 scompaiano automaticamente anche i valori nelle celle AG151:AG156 e quindi adeguare questa cosa a tutto il foglio?

Ho dato un'occhiata veloce al nuovo file da te caricato:
perfetto il metodo per i numeri. Ovviamente si, se il numero fosse inferiore a 6 è naturale che vengano degli 0 ma sarebbero giorni non produttivi anche per noi quindi così va benissimo.
Ora procedo a sistemare in tutti i mesi le formule che hi scritto in BY62:CJ63; le ho provate inserendo i dati in febbraio e mi pare funzionano egregiamente.

Intanto ti ringrazio
ABCDEF@Excel
00giovedì 23 luglio 2020 14:36
Ps. Se le celle unite fossero 6 (giorni settimanali), con 5,4,3,2,1,0 appaiono dei zeri. Se le celle unite sono 3 (causa un festivo), non puoi mettere 2,1,0

La procedura funziona grazie al Worksheet_Change, che da parte sua ha dei grossi limiti. Non sopporta il copia/incolla (andrebbe in errore), se inserisci un carattere, invece di un numero (andrebbe in errore). Bisognerebbe fargli delle contromisure agli errori, mà potrebbero essere errori infiniti. Di norma (l'errore) si visualizza quando appare una maschera grigia (errore di run-time 13) con due bottoni. Se premi "Debug" (ti fà vedere la riga gialla con l'errore da correggere), se premi "Fine" esci dalla procedura disabilitandolo fino alla chiusura del files. Per qualsiasi motivo che sia successo, non controlla più nulla e stà a Te ripulire/mettere a posto/farlo rifunzionare.
Per funzionare nuovamente chiudi/riapri oppure vai in Festivi e premi abilita.
Comunque (grazie a Te) ho trovato un'altro mio errore di scrittura VBA.
Se vai in BASE premi ALT+F11, sulla destra vedrai 9 righe simili (cambiano solo le sigle) CC = "AA". Le nove righe successive saranno...
If Cells(Target.Row, 1) = "" Then R = 1 Else R = Cells(Target.Row, 1)
Devono diventare ...
If Cells(Target.Row, 2) = "" Then R = 1 Else R = Cells(Target.Row, 2)

La prossima volta, allega l'ultimo (quello con le formule fatte) che ricontrollo. Non serve quotare tutto il post

EDIT >>>dicembre, invece al secondo metti CONFRONTA(DATA($K$2+1;1;1)
Forse è meglio mettere CONFRONTA(DATA($K$2;12;31)
Sicccio
00venerdì 31 luglio 2020 10:52
Re:
Ciao, ti allego il file che ho provato a sistemare.

Per quanto riguarda le formule nelle tabelline piccole sula destra sono a posto come avevi detto.
Ho cambiato nel VBA come da te proposto e ho inserito il 2 al posto dell'1. Inoltre mentre guardavo mi sono accorto che mancava cc="Bk"riferito quindi alla colonna I, mi sono preso la libertà di aggiungerlo seguendo ciò che tu avevi fatto precedenteente.

Ora, a parte i limiti del Worksheet_Change, provando a inserire i dati nel foglio A-2024 (come noterai da file allegato c'è qualche problemino.
La divisione non la fa più settimanale come doveva essere e non capisco quale sia il motivo, addirittura la colonna AA sfora in febbraio 😓

Oltre a questo, mi pare di capire che sia possibile fare poco altro a causa del Worksheet_Change ma mi chiedevo se fosse possibile trovare qualche escamotage per ovviare al problema della cancellazione dei dati nelle celle unite.
Per esempio, nella foto (foglio A-2021) si vede bene come avendo messo 0 esce l'errore di runtime, è possibile dunque inserire una stringa nel vba dove è specificato che se e solo se inserisco 0 nelle celle unite allora le celle a destra della data rimangano vuote?

In allegato il file con le modifiche che ho fatto e dove troverai l'esempio degli errori che ti ho descritto.

Grazie per la pazienza e l'aiuto

ABCDEF@Excel
00venerdì 31 luglio 2020 19:09
A riguardo BK, giusto e bravo. Ero impegnato a capire come creare i numeri 3,3,3,3,2,1 che non ho controllato bene la struttura.

A riguardo>>>If Cells(Target.Row, 2) = "" Then R = 1 Else R = Cells(Target.Row, 2)
Deve ritornare con 1. Stavo lavorando sù base e non vedevo il numero della colonna A (erano passati diversi giorni e non mi ricordavo bene). Quando il VBA crea un'annata , inserisce in A il numero dei giorni-uniti.
Se ti dà fastidio vedere i numeri in colonna A nelle annate, puoi in Base selezionare la colonna A e dargli il carattere Bianco

Da me se cancello (solo un numero per volta) in B/J cancella sempre i dati della rispettiva colonna. Non vorrei che Tu selezioni ex A-2024 range B7:J7 e col mouse destro "cancella tutto" (la prima riga del VBA, dice se stai modificando "più righe/colonne" = ESCI dalla procedura). Se noti ancora questo malfunzionamento, fammelo sapere con un'esempio reale/allegato
Che io sappia le colonne L/Z potrebbero essere nascoste, di certo il VBA non interviene su queste colonne.

Ps. Hai verificato con valori semplici, se le formule fanno il loro dovere nei vari mesi sia in bisestile che normale? NB Le formule di fine Dicembre BY365:CJ366 ....CONFRONTA(DATA($K$2;12;31);$K$1:$K$371;0)-1) devi togliere il -1 finale

Salvo altri errori miei il files dovrebbe essere OK

EDIT a riguardo lo zero, come scritto non puoi inserire valori inferiori alle celle unite (nel caso specifico 02/01/2021, non sono unite mà è sempre 1 giorno)
Vedo se riesco tramite VBA inserire un MSG d'errore, oppure in determinati giorni devi proprio inserire un zero?

Sicccio
00lunedì 3 agosto 2020 15:58
Per ora non credo di dover inserire 0 in alcuna cella quindi direi di non complicare troppo la cosa.
Ho sistemato il VBA, le formule di dicembre e resa bianca la colonna A nella quale non mi piaceva vedere i numeri. ora con calma controllerò se le formule delle percentuali mensili funzionano.

Riguardo le colonne L/Z non devono rientrare nel VBA quelle le ho gestite con delle formule perchè mi basta che si sommino dei valori dalla colonna AA in poi quindi vanno bene così e non le toccherei a meno che tu non abbia consigli da darmi.

Per quanto riguarda il problema della cancellazione dei valori dalle celle unite:
avevo pensato anche io che selezionare più cose e cancellare tutto creasse problemi ma in realtà io cancello i valori cella per cella.
L'unica soluzione che ho trovato oggi è che cancelli manualmente il valore dalla barra della formula, in questo modo me lo cancella ovunque.
Nella registrazione che ho allegato (perdona la bassa qualità ma altrimenti non me la caricava) puoi vedere che ho cliccha sulla cella unita B123:B126, cancellato il valore che era inserito (utilizzando canc o backspace) e i valori nelle celle AA123:AA126 rimangano visibili.
Successivamente si vede che solo quando cancello il 50 (con due battute di backspace o comunque una per ogni cifra inserita in origine) allora vengono cancellati anche i valori nel range AA123:AA126.

La cosa curiosa è che questo discorso non vale per le celle rimaste singole come per esempio una qualsiasi cella del range B128:J128, dove se inserisco un qualsiasi valore e lo cancello direttamente cliccando sulla cella e premendo canc o backspace allora scompare anche dalle celle che vanno da AA in poi.
Non so spiegarmi questa cosa ma per ora potrebbe andare bene, spero di non avere troppi casi di valori da cancellare.

Intanto ti ringrazio tanto e ti aggiorno poi sulla funzione o eventuali problematiche delle medie percentuali.
ABCDEF@Excel
00martedì 4 agosto 2020 00:32
>>>Riguardo le colonne L/Z ...no nessun consiglio

>>>Per ora non credo di dover inserire 0
Dato che fai una MEDIA.SE(......;">0") non servirebbe a nulla, comunque per casi straordinari. Invece di scrivere in B/J, puoi scrivere nella colonna relativa.

Strano il problema della cancellazione, da me che sia unita o no.
Vado sulla cella, clicco backspace e appena mi sposto su un'altra cella si cancella/scrive (hai provato backspace+invio). Usi un MAC? Le impostazioni d'Excel sono quelle predefinite?

Se desideri, puoi aggiungere queste righe al VBA (seleziona foglio Base ALT+F11). Ogni volta che modifichi più celle insieme, appare un msg.
'''prima
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Rows.Count > 1 Or Target.Columns.Count > 1 Then Exit Sub
'''
'''
'''
Application.EnableEvents = True
End Sub

'''dopo
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Rows.Count > 1 Or Target.Columns.Count > 1 Then
    MsgBox "ATTENZIONE, hai modificato più celle insieme"
Else
'''
'''
'''
Application.EnableEvents = True
End If
End Sub
Sicccio
00mercoledì 5 agosto 2020 17:08
Ciao, le impostazioni non ricordo di averle toccate quindi direi di si, sono quelle originali. Inoltre si uso un Mac, questo complica le cose?

Per quanto riguarda la stringa da aggiungere al VBA che avevi postato nell'ultima risposta, non saprei in che parte del codice metterla, ho provato a dare un'occhiata ma non ho trovato la posizione dove inserirla.

Ho apportato una modifica al foglio base aggiungendo una colonna adiacente alla colonna K delle date in modo che mi indichi il numero della settimana e ho modificato la VBA aggiornandola. Finisco di aggiornare le formule delle medie mensili e poi se non erro ci dovremmo essere.

Detto questo, una volta che ho finito di modificare tutte le percentuali, ti invierei il file in modo che tu possa dare una controllata agli aggiornamenti sulla VBA e nel caso correggere eventuali errori. Va bene?

Grazie mille
ABCDEF@Excel
00giovedì 6 agosto 2020 11:00
Sò che il MAC si comporta in modo differente con il VBA (alcune volte non funziona)

La riga del VBA è la seconda, pertanto devi modicarla + inserire la 2/3 ed infine aggiungere la penultima.

Se hai aggiunto una colonna dopo K, penso che devi modificare solo le nove righe similari a CC = "AA" in CC = "AB" ecc ecc
Per le formule, se vuoi provare selezionando le "ex" colonne BY:CJ (adesso credo BZ:CK)
Ora con Sostituisci metti trova con P" e sostituisci con Q"
Avrai fatto 12 formule insieme, basta modificare le altre 14 formule e sei a posto
Sicccio
00venerdì 11 settembre 2020 13:48
Ciao,

è passato non poco dall'ultima volta che ho scritto in questa discussione perchè l'ho sfruttato per fare i test e devo dire che funziona tutto bene.
È sorto solo un picoclo problema ovvero che l'azienda committente ci ha cominciato a fornire certi dati in maniera diversa quindi ho dovuto modificare un po il file.

facendo queste modifiche ho messo un po le mani sul VBA e dovrei aver sistemato un po di cose, o almeno spero.
Ho infatti eliminato 3 delle 9 colonne a sinistra delle date (B,C,D,E,F,G,H,I,J) e poi modificato nel VBA le stringhe che permettono di riportare i valori alla destra della data infatti ora i valori vengono riportati secondo questo criterio:
B>>T
C>>Z
D>>AF
E>>AI
F>>AO
G>>AU

Inoltre nella parte "crea annata" ho sostituito tutte le K che facevano riferimento alla vecchia colonna DATA con delle H che si riferiscono alla nuova colonna DATA.

Il problema sorge perchè le modifiche funzionano per la creazione del foglio "A-XXXX" dopo aver selezionato l'annata desiderata oltre al fatto che i numeri inseriti in B,C,D,E,F,G vengono riportati nelle rispettive colonne. Purtroppo però, le celle non si uniscono più automaticamente e non si evidenziano più in giallo le festività e le domeniche.

Perdonami se ti chiedo un ulteriore aiuto ma ho provato a fare da solo per quello che potevo ma queste cose non riesco proprio a capire dove trovare e dove modificarle.
Allego il file dove se provi a selezionare un qualsiasi anno dal Foglio festivi vedrai il problema che ho provato a spiegare a parole.

Grazie in anticipo, nuovamente.

ABCDEF@Excel
00venerdì 11 settembre 2020 17:43
Prova, devi correggere le formule in BC:BH
Ps. In foglio Base cella AH6 = 202000,00% ???
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 18:56.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com