Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Matrice per totale giornaliero per data

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 18/09/18 13:14

Ciao Anthony, ho risolto da me!

Nella macro della Pivot il range delimitava il calcolo sino a C1000, l'ho modificata portandola a C5000, così non dovrebbero più esserci problemi.

Grazie,

DAniby
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 374
Iscritto il: 11/07/13 09:21
Località: Bergamo

Sponsor
 

Re: Matrice per totale giornaliero per data

Postdi Anthony47 » 18/09/18 13:25

Bene...
Avatar utente
Anthony47
Moderatore
 
Post: 17438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 20/09/18 18:15

Grazie!
Danibi60
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 374
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 26/09/18 15:30

Cioa Anthony, come stai?

Ogni tanto ti scoccio con qualche richiesta delle mie...

Nel file del quale ti allego il link, la macro "DayRIEP" estrae i dati lavorandomi SOLO la mia filiale, vedi dettaglio macro : "tSped = "023-", avrei bisogno che lo stesso file con le stesse formule, mi estraesse i dati di tutte le altre filiali (che hanno numerazioni che partono da 000 sino a 999) escludendo però dal calcolo la mia 023,

In tutta onestà ho provato a modificare la macro ma con risultati disastrosi, puoi essermi d'aiuto?

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

Grazie,

Daniby
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 374
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi Anthony47 » 27/09/18 01:09

La Sub DayRIEP originale contiene una riga If Left(Cells(I, 1), 4) = tSped Then
Se vuoi calcolare "tutto meno la filiale 023" allora modificherai quell'istruzione in
Codice: Seleziona tutto
        If Left(Cells(I, 1), 4) <> tSped Then


Prova e fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 17438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 02/10/18 08:11

Ciao Anthony, come stai?

Perdona il ritardo ma ogni fine del mese porta in dote un caos enorme e quindi diventa d'obbligo muoversi per priorità.

Ho comunque testato la nuova Sab DayRIEP e - ma non avevo dubbi - funziona che è una meraviglia.

Vorrei chiederti però (non mi maledire Ti prego!) se fosse possibile fare in modo che anziché gestire il tutto attraverso i due file distinti che mi sviluppano i controlli quotidiani sulle filiali, fare in modo che il tutto si muova all'interno di uno solo.

Ora abbiano:

a) uno che verifica solo la mia (023) questo per intendersi: https://www.dropbox.com/s/nk1no3q2ojlha ... .xlsm?dl=0

b) e l'altro(quello di cui sopra e per il quale hai appena costruito la nuova DayRiEP) che verifica tutte le altre filiali: https://www.dropbox.com/s/fau0goasglo0c ... .xlsm?dl=0

Il file unico però dovrà mantenere le stesse caratteristiche che ogni singolo dispone e cioè:

1) La macro "DayCompare" generi ogni volta un foglio nuovo alla destra del foglio "Esportazione per competenze" con l'estrazione del dettaglio sia solo per la 023 e sia solo per tutte le altre.

2) la macro "DayRIEP" generi le differenze con il giorno prima sia per la 023 e sia per tutte le altre

3) Si generino comunque due pivot che evidenzino i totali giorno e progressivo (come avviene tutt'ora) sia per la 023 sia per tutte le altre.


Spero come sempre di essermi spiegato al meglio con il dizionario tecnico a mia disposizione e naturalmente che la cosa si possa fare senza comportare da parte tua una dispendiosa perdita di tempo, nel caso il tutto fosse complicato, non disperare, va bene anche così.

Un grazie di cuore anche e solo per l'attenzione che poni alle mie richieste,
Daniby60
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 374
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi Anthony47 » 03/10/18 00:04

Essendo notoriamente io un pelandrone ti propongo quest'altra cosa che dovrebbe fare molto di quello che chiedi, lavorando su un solo file (scegli tu quale dei due) che sara' usato per ambedue le analisi.

Innanzitutto creati due varianti di Sub DayRIEP, chiamandole Sub DayRIEP_023(cippa) e Sub DayRIEP_Oth(cippa)
Dopo questa modifica queste due macro non potranno piu' essere eseguite singolarmente

La "_023" e' quella che estrae i dati della tua filiale; la "_Oth" quelli di tutte le altre

In ognuna aggiungi questa riga in questa posizione:
Codice: Seleziona tutto
tSped = "023-"
rSh.Name = rSh.Name & "_023"     ' & "_Oth"     '<<< AGGIUNGI ADATTANDO
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row

Come avrai intuito, nella Sub DayRIEP_023(cippa) userai "_023", mentre nella Sub DayRIEP_Oth(cippa) userai "_Oth"

Poiche' sul file saranno aggiunti due fogli a ogni ciclo, bisognera' modificare anche la DayCompare affinche' non faccia il confronto tra un foglio e quello subito alla sua destra ma con quello lontano di due posizioni verso destra.
A questo scopo, parti dal codice della DayCompare e modifica questa parte:
Codice: Seleziona tutto
LastY = Sheets(ActiveSheet.Index + 2).Cells(Rows.Count, 1).End(xlUp).Row  '!!!
LasTd = Cells(Rows.Count, 1).End(xlUp).Row
'
Set yRan = Sheets(ActiveSheet.Index + 2).Range("A1").Resize(LastY, 1)     '!!!

Le istruzioni modificate sono quelle marcate "!!!" (+1 diventa +2)
Per evitare equivoci, chiama questa versione Sub DayCompareStep2.

Poi Crea una ulteriore macro che richiama tutte queste:
Codice: Seleziona tutto
Sub DayRiepBIG()
Dim myBase As String
    myBase = "EsportazioneCompetenze_63653514"
    Sheets(myBase).Select
    Call DayRIEP_Oth(1)
    Sheets(Sheets(myBase).Index + 1).Select
    Call DayCompareStep2
    Sheets(myBase).Select
    Call DayRIEP_023(1)
    Sheets(Sheets(myBase).Index + 1).Select
    Call DayCompareStep2
End Sub

Questa e' la nuova macro da lanciare, che si preoccupera' di eseguire prima la DayRIEP_Oth, poi la DayCompareStep2, poi la DayRIEP_023 e nuovamente la DayCompareStep2.

Durante l'esecuzione della macro saranno stati creati due fogli aggiuntivi; quello adiacente a EsportazioneCompetenze_63653514 avra' il nome tipo FoglioXYZ_023 e il successivo FoglioXYZ_Oth (così sai subito cosa contengono).

Rimane la tabella pivot, ma noi ne vogliamo due.

Per cominciare modifica il nome del foglio esistente in Tabella Pivot_023.
Poi crea una copia di questo foglio:
-tasto dx sul tab col nome foglio; scegli Sposta o Copia; spunta Crea una copia e seleziona "Prima del foglio" Tabella Pivot_023.
Modifica il nome di questo nuovo foglio (sara' il primo a sinistra) in Tabella Pivot_Oth

Infine tasto destra sul tab col nome Tabella Pivot_Oth; scegli Visualizza codice; identifica questa istruzione
tSheet = Sheets(Sheets("EsportazioneCompetenze_63653514").Index + 1).Name

Modifica Index +1 in Index +2

A questo punto spostati tra i fogli TabellaPivot_xxx; quello a sx conterra' i dati delle filiali "Altre", quello a destra della filiale 023

C'e' il problema che al primo confronto DayCompareStep2 indichera' per il FoglioXYZ_Oth una gran serie di incongruenze; ma da quel momento in poi le coppie di fogli si confronteranno correttamente.

Spero ti sia tutto chiaro, comunque sai dove trovarci...
Avatar utente
Anthony47
Moderatore
 
Post: 17438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 03/10/18 08:41

Ciao Anthony

non ho parole per ringraziarti, non solo per il tempo che dedichi alle mie richieste, ma nel gratificarmi a tal punto da pensare che possa aver compreso alla perfezione le tue istruzioni.

Ho provato un sacco di volte - di certo sbagliando visti i risultati - ma nonostante le tue istruzioni così chiare non mi è stato possibile far funzionare il tutto come invece avrebbe dovuto.

Ti allego quanto ho creato al fine Tu mi possa indicare dove ho sbagliato.

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

Grazie,
Daniby
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 374
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi Anthony47 » 03/10/18 14:29

Non sei stato disciplinato e non hai seguito le indicazioni, e il risultato e' errato e monco.

1) Parti da uno dei file che usi oggi, ad esempio Matrice Brevi-023.xlsm (che gestisce la filiale 023)

2) Modifica il nome della sua DayRIEP() in Sub DayRIEP_023(cippa); aggiungi l'istruzione rSh.Name = rSh.Name & "_023" ' & "_Oth" '<<< AGGIUNGI ADATTANDO

3) Copia il codice della DayRIEP dall'ALTRO file, e incollalo nel file Matrice Brevi-023.xlsm che stiamo modificando. Cambiane il nome in Sub DayRIEP_023(cippa) e aggiungi l'istruzione rSh.Name = rSh.Name & "_Oth" ' & "_Oth" '<<< AGGIUNGI ADATTANDO (l'ho gia' adattata io...)

4) Non ricordo se nel file pubblicato stamattina esisteva gia' la DayCompareStep2 (il file l'ho parecchio manipolato, e quello che scarico ora mi sembra diverso da quello di stamattina). Comunque nel file Matrice Brevi-023.xlsm da cui siamo partiti c'e' la Sub DayCompare: cambiane il nome (in DayCompareStep2) e modifica quelle due istruzioni che ora devono contenere "Index + 2" (invece che "Index + 1")

5) Rinomina il foglio Pivot (in Tabella Pivot_023) e duplicalo; se segui alla lettera le istruzioni allora il foglio alla sinistra di tutti si chiamera' Tabella Pivot_Oth e il secondo (quello appena duplicato) Tabella Pivot_023.

6) Visualizza il codice del foglio Tabella Pivot_Oth, identifica la riga tSheet = Sheets(Sheets("EsportazioneCompetenze_63653514").Index + 1).Name e modifica "Index + 1" in "Index + 2". Il codice del foglio Tabella Pivot_023 invece non deve cambiare.

7) Infine inserisci in un Modulo standard del vba la nuova Sub DayRiepBIG, che e' la macro principale, l'unica che andra' lanciata:
Codice: Seleziona tutto
Sub DayRiepBIG()
Dim myBase As String
    myBase = "EsportazioneCompetenze_63653514"    '<<< E' GIUSTO QUESTO NOME??
    Sheets(myBase).Select
    Call DayRIEP_Oth(1)
    Sheets(Sheets(myBase).Index + 1).Select
    Call DayCompareStep2
    Sheets(myBase).Select
    Call DayRIEP_023(1)
    Sheets(Sheets(myBase).Index + 1).Select
    Call DayCompareStep2
End Sub
Controlla che il contenuto della riga marcata <<< sia giusto

Ora il file da cui siamo partiti e' diventato "bivalente"; cioe' crea un foglio col riepilogo della 023 e un altro foglio col riepilogo delle altre. La DayCompareStep2 confrontera' questi nuovi fogli con i fogli DUE posizioni piu' a destra presenti nel file.

Quando vuoi esegui la nuova Sub DayRiepBIG; controlla il contenuto di FoglioXYZ_023 e di FoglioXYZ_Oth; controlla il contenuto delle due pivot.

Alla prima esecuzione il risultato della DayCompareStep2 sara' anomalo (probabilmente solo per il riepilogo delle Altre) ma dalla volta successiva tutto si allineera'

Puo' essere utile che il file cosi' modificato sia salvato come Matrice Brevi-bivalente.xlsm

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 03/10/18 17:33

Anthony, credimi ti ho seguito pedestremente, ma spesso le istruzioni che prevedono per te passaggi molto semplici, per me sono complessi, uno tra tutti: come rinomino le DayRIEP() in Sub DayRIEP_023(cippa)? (cippa che sta a significare? lo devo scrivere?)
Se faccio modifica me ne crea un'altra e mi incasino.

Inoltre questi due passaggi per me sono complessi:

2) Modifica il nome della sua DayRIEP() in Sub DayRIEP_023(cippa); aggiungi l'istruzione rSh.Name = rSh.Name & "_023" ' & "_Oth" '<<< AGGIUNGI ADATTANDO

3) Copia il codice della DayRIEP dall'ALTRO file, e incollalo nel file Matrice Brevi-023.xlsm che stiamo modificando. Cambiane il nome in Sub DayRIEP_023(cippa) e aggiungi l'istruzione rSh.Name = rSh.Name & "_Oth" ' & "_Oth" '<<< AGGIUNGI ADATTANDO (l'ho gia' adattata io...)


Grazie,
Daniby
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 374
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 03/10/18 17:45

Inoltre se cerco di rinominare in Sub DayRIEP_023(cippa) mi dice: nome macro errato.

Inoltre tu scrivi: aggiungi l'istruzione rSh.Name = rSh.Name & "_023" ' & "_Oth" '<<< AGGIUNGI ADATTANDO .... dove?

A seguire scrivi:
Copia il codice della DayRIEP dall'ALTRO file, e incollalo nel file Matrice Brevi-023.xlsm che stiamo modificando, da quale altro file devo copiare il codice?

Ecco queste solo alcune delle mie nceppature...
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 374
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi Anthony47 » 04/10/18 00:15

Per "ALTRO File" intendo quello con cui processi tutte le filiali diverse da 023.

Per "modificare il nome" di una macro devi modificare la prima riga; esempio:
Prima:
Codice: Seleziona tutto
Sub DayRIEP()
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=109392&p=641951#p641951
Dim cSh As Worksheet, rSh As Worksheet, tSped As String, cSped As String
Dim myNext As Long, cVal As Single, speDat As Date
'
'etc etc etc


Modificata:
Codice: Seleziona tutto
Sub DayRIEP_023(cippa)
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=109392&p=641951#p641951
Dim cSh As Worksheet, rSh As Worksheet, tSped As String, cSped As String
Dim myNext As Long, cVal As Single, speDat As Date
'
'etc etc etc

"cippa" in questo contesto e' un parametro della macro; ma e' un parametro fasullo, l'ho inserito solo per impedire che le nuove Sub DayRIEP_XYZ possano essere eseguite singolarmente dall'utente.

Dove inserire l'istruzione rSh.Name = rSh.Name & "_023" ' & "_Oth" '<<< AGGIUNGI ADATTANDO l'avevo scritto nel messaggio "precedente":
[Sia nella Sub DayRIEP_023(cippa) che nella Sub DayRIEP_Oth(cippa)] aggiungi questa riga in questa posizione:
Codice: Seleziona tutto
    tSped = "023-"
    rSh.Name = rSh.Name & "_023"     ' & "_Oth"     '<<< AGGIUNGI ADATTANDO
    For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row


Spero sia piu' chiaro...
Avatar utente
Anthony47
Moderatore
 
Post: 17438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 04/10/18 15:05

Anthony, io opero in questo mdo (sicuramente errato, ma non ne conosco altri):


apro il file =>Visualizza => Macro => Visualizza Macro => Seleziono DayREP => esegui istruzione, si apre la macrco e scrivo (dove è evidenziato in giallo) Sub DayRIEP e modifico scrivendo: Sub DayRIEP_023(cippa), mi presenta una pop up che mi informa :" Questa oeprazione riavvierà il progetto. Continuare?

Io clicco a questo punto su ok

A questo punto la però la nuova macro :Sub DayRIEP_023(cippa) nmon compare più da nessuna parte e quindi non riesco a creare la seconda macro: Sub DayRIEP_Oth(cippa)

Indi per cui proseguire è un problema...

Daniby
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 374
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 05/10/18 09:10

Mi sa che devo averti annoiato o, quel che è peggio, fatto arrabbiare comprendendo così finalmente che hai a che fare con un incapace...

Sappi che sto insistendo nel provare a effettuare le modifiche da Te suggerite, ma senza risultato alcuno in quanto, ogni volta che rinomino la macro poi essa scompare dall'elenco... gettandomi nello sconforto più totale.


Aggiungo, visto che mi voglio far odiare da Te definitivamente, che da un nuovo gestionale sto estraendo un file denominato "Matrice XP")"simile per necessità a quello delle matrici precedenti ma disposto come dati in celle diverse e che mi servirebbe per avere una fotografia giornaliera per Tutte le filiali (la numerazione è sempre da "000" sino a "999") ma nonostante abbia provato a cambiare alcuni parametri delle macro cercando di utilizzare lo stesso file, il risultato è un disastro...

Ti allego il tipo di file che estraggo denominato appunto Matrice XP:

https://www.dropbox.com/s/p54tf200r3744 ... .xlsx?dl=0

Le filiali sono disposte in colonna B, mentre i dati da sommare sono disposti tra colonna AB sino a colonna AH

Il file matrice è sempre quello che mi avevi preparato tu per vedere tutte le filiali eccetto la mia 023 e che ti allego da me modificato nelle macro ma che non funziona completamente, capisco che non deve esser semplice comporre e modificare macro...ma ci provo...

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

dove sbaglio?

Grazie mille,

Daniby60
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 374
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 05/10/18 13:50

Ciao Anthony, non ci crederai ma siccome se è vero tu sia un pelandrone, io sono uno che non molla mai, sembra sia riuscito a creare il famoso file cippa...ci ho lavorato tutta la notte scorsa e tutto oggi...

Te lo allego per un controllo, ma credo di esser stato bravo sopratutto grazie alle tue precise indicazioni.

Ho capito come creare e modificare le macro copiandole prima su di un file di testo , poi modificandole e successivamente creando nuovi moduli...morale ecco il risultato. ...pat pat pat....pacche sulle spalle...

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

Per la mia ultima richiesta invece nulla da fare con la costruzione vera e propria della macro non ci riesco...quindi Ti chiedo aiuto.

Daniby
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 374
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi Anthony47 » 05/10/18 15:04

Mi ero rassegnato a inviarti il file che avevo preparato io, ma vedo che non e' necessario. Pat pat pat

Per modificare le macro non e' necessario passare da Notepad; le puoi modificare direttamente all'interno del vba (se quella macro non e' in esecuzione), come fai su Notepad.

Vedo che nelle Sub DayRIEP_XYZ(cippa) non hai pero' inserito l'istruzione che modifica il nome dei fogli aggiunti; le istruzioni precedenti dicevano:
Sia nella Sub DayRIEP_023(cippa) che nella Sub DayRIEP_Oth(cippa)] aggiungi questa riga in questa posizione:
Codice: Seleziona tutto
    tSped = "023-"
    rSh.Name = rSh.Name & "_023"     ' & "_Oth"     '<<< AGGIUNGI ADATTANDO
    For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row


Oggi mi sono accorto che quella rinomina non va bene; la riga da "aggiungere adattando" diventa
Codice: Seleziona tutto
rSh.Name = Format(Now, "yymmdd_hhmmss") & "_023"     ' & "_Oth"
In questo modo i fogli verranno rinominati come AAMMGG_hhmmss_023 (o _Oth); es: 181005_112755_023

Ovviamente in questo modo gestiamo il formato che io conoscevo, non l'ultimo pubblicato come COM_ATTIVE OTTOBRE 2018NUOVO.xlsx

D'altra parte io non sono in grado di seguire le modifiche che arbitrariamente il fornitore di quel file applica; e il fatto che per fare delle modifiche relativamente semplici abbiamo penato tanto mi fa pensare che analogamente peneremmo a seguire modifiche applicate al sorgente dati.

Una soluzione facile da attuare, nel caso che le modifiche riguardino solo la posizione delle informazioni nelle colonne del foglio e non anche il loro significato, potrebbe essere registrare una macro che copia una dopo l'altra le colonne dal nuovo foglio e le incolli sulla colonna giusta del foglio EsportazioneCompetenze_63653514; cioe' una macro che "normalizza" il contenuto del foglio EsportazioneCompetenze_63653514 sulla base di quanto le macro successive sono in grado di elaborare.

Tuttavia, visto che si tratta di un'applicazione business ti suggerirei di appoggiarti a un consulente informatico per realizzare una soluzione modulare, in grado di gestire anche modifiche al layout dei dati di partenza.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 05/10/18 16:22

Anthony grzie a prescindere!

No non mi interessa coinvolgere un esterno anche perché i gestionali sono due dai quali estraggo i dati:

- Uno mi estrae il foglio "EsportazioneCompetenze_63653514" e che ti è servito per poter creare le macro che a oggi mi elaborano le differenze giorno su giorno tra la mia 023 e il resto

- L'altro mi estrae il foglio "Matrice XP" presente nel file che ti ho girato prima COM_ATTIVE OTTOBRE 2018NUOVO.xlsx e nel quale avevo provato a modificare le macro in funzione dei parametri in esso contenuti e che a differenza della matrice precendet non mi serve per avere l'analisi tra una filiale e il resto, ma analizzarle tutte.

Per tipologia i dati sono identici a quelli del file su indicato solo posizionati in colonne diverse : in colonna B tutte le filiali e tra AB sino a colonna AH i vari importi.

Credi sia possibile?

Grazie,
Daniby
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 374
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 06/10/18 11:59

Ciao Anthony, questa modifica da Te suggerita, inaspettata ma davvero utile, fa si che non vi siano sovrapposizioni tra una verifica e l'altra visto che ogni foglio, al di la della data si rinomina anche in funzione al tempo...davvero strabiliante!
Grazie,

CODICE: SELEZIONA TUTTO
rSh.Name = Format(Now, "yymmdd_hhmmss") & "_023" ' & "_Oth"

Sarà di certo possibile, come scrivi tu:
"Per modificare le macro non è necessario passare da Notepad; le puoi modificare direttamente all'interno del vba (se quella macro non e' in esecuzione), come fai su Notepad."

Ma è altrettanto vero che generando la modifica ad una macro, poi di fatto scompare e per modificare la seconda mi diventava un problema...(certamente sbagliando io, s’intende!)

Ad ogni modo, tutto è bene ciò che finisce bene... e questo attraverso qualsiasi passaggio, della serie: " il fine giustifica i mezzi!!!

Mezzi che però, per quanto riguarda la richiesta per l'elaborazione della nuova matrice, (vedi messaggio precedente del file che ti avevo inviato COM_ATTIVE OTTOBRE 2018NUOVO.xlsx) non mi aiutano e, seppur abbia provato a modificare (per quelle che sono le mie misere conoscenze delle macro) il risultato è sempre drammaticamente fallimentare....sigh sigh sigh,,,
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 374
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 06/10/18 14:21

Ciao Anthony,

guarda un pò il file che ho creato all'interno del quale ho modificato le macro al fine mi estragga i dati che mi servono. (semi pat pat pat per il momento )

Quando eseguo la dayRIEP2 mi genera correttamente il foglio (in questo caso Foglio8) e con la dayCompare mi evidenzia (come in questo caso) tutte le spedizioni sono nuove in quanto nessun foglio 7 a confronto è disponibile in questo momento e sembra che tutto funzioni.

Siccome mi dava un debug facendo la somma delle varie righe da AB sino a AH ho direttamente messo il totale posto in AI...è una scorciatoia che non dovrebbe crearmi problemi.

Unica curiosità; come mai nel foglio 8 mi crea in cella 34 e 35 questi due totali che a me non dicono nulla?

TRASPORTO COLLETTAME 26/09/2018 565,0999756
TRASPORTO MERCE PESANTE 02/10/2018 52,59999847


Inoltre, ma qui non capisco dove sia l'errore, la pivot non funziona, come mai?

Mi presenta un debug del quale non comprendo le origini.

Ecco il risultato del mio lavoro : https://www.dropbox.com/s/bhp75d6bs8obw ... .xlsm?dl=0

Grazie per la pazienza.
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 374
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi Anthony47 » 07/10/18 17:34

Mi pare di capire che, siccome avevi un tracciato record nuovo, hai provato a modificare da solo la Sub DayRIEP2 per adattarla e ottenere il riepilogo giornaliero; e mi pare ci sei riuscito!
Magari e' meglio che invece di DayRIEP2 usi un nome diverso, es DayRiepTracciato2; cosi' sappiamo sempre cosa fa e sappiamo distinguerla dalle altre versioni di DayRiep.

Se nel calcolo di cVal ti dava un errore e' perche' la colonna AD contiene una stringa; vuota ma sempre stringa (vedi quell'Apostrofo nella colonna)

Mi chiedi come mai in riga 34 e 35 compaiono due scritte in colonna E:G. Quel messaggio in quelle colonne dice che quelle due voci mancano nell'elenco appena creato, MA erano presenti nell'elenco con cui hai eseguito la DayCompare; mancando il foglio con cui hai eseguito il DayCompare (c'e' solo Foglio8) non ne posso avere conferma.
Noterai pero' che quelle voci esistono nel foglio EsportazioneCompetenze, ma non hanno ne' un numero di spedizione ne' una data, quindi non sono state allocate nell'elenco creato tramite DayRIEP.

Infine, a spanne a me la tabella pivot funziona regolarmente, sia come codice macro all'attivazione del foglio (vedi Private Sub Worksheet_Activate) sia come risultati forniti. Potrebbe non funzionare se DOPO il foglio EsportazioneCompetenze ci fosse un foglio vuoto.
In che cosa tu dici che non funziona?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17438
Iscritto il: 21/03/06 16:03
Località: Ivrea

PrecedenteProssimo

Torna a Applicazioni Office Windows


Topic correlati a "Matrice per totale giornaliero per data":


Chi c’è in linea

Visitano il forum: Nessuno e 10 ospiti