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 » 19/10/18 15:08

la frase corretta e completa era: "In soldoni è come se per avere il risultato che mi serve debba eseguire d[b]ue volte la macro DayCompare (tasto Ctrl+b)"[/b]
"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: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo

Sponsor
 

Re: Matrice per totale giornaliero per data

Postdi Anthony47 » 19/10/18 23:09

Sono davvero rattristato per averti confuso le idee, non me ne volere
Tranquillo, non mi hai confuso, ma volevo essere certo che non lo fossi nemmeno tu sull'uso di DayRIEP e DayCompare...

Ma ero convintissimo che fosse la DayRiep a creare il foglio..sigh!
...ma con frasi come questa mi fai tornare i dubbi :D (infatti e' proprio la DayRIEP che genera il nuovo foglio col riepilogo giornaliero)

Comunque ti ho descritto ieri sera il mio processo, e con quello io alla prima esecuzione di DayCompare sul foglio appena creato ho 36 "miss", come le righe in piu' che il nuovo riepilogo mostra rispetto a quello del gg precedente.
Tu mi parli di risultati diversi, ma se esegui anche tu il processo che ho descritto (con gli stessi file pubblicati ieri sera) che risultato ottieni?

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

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 20/10/18 14:44

Ahhhhhhhh vedi che poi avevo compreso esattamente che fosse la DayRiep a generare il fogliooooo :lol: :lol: :lol:

Tu scrivi: "Comunque ti ho descritto ieri sera il mio processo, e con quello io alla prima esecuzione di DayCompare sul foglio appena creato ho 36 "miss", come le righe in piu' che il nuovo riepilogo mostra rispetto a quello del gg precedente."

Certo che hai 36 miss e il giorno prima ne avevi meno, :eeh: :eeh: ma tra queste "miss" compaiono ancora alcune spedizioni che sono già presenti nel foglio precedente e questo non va bene....se però (rimanendo sullo stesso foglio) esegui una seconda volta la DayRIEP, le "Miss" variano e quelle che alla prima esecuzione vedevi presenti scompaiono (come è giusto che sia) dalle "miss" lasciando spazio a quelle che corrette...

Il passaggio su descritto mi rendo conto sia abbastanza tortuoso nella forma scritta per spiegare quanto accada, me ne rendo conto, ma è quanto di meglio so fare con le mie misere competenze tecniche.

Ora visto che Tu sei molto paziente con me, per sedebitarmi e farti comprendere meglio ciò che accade ti allegherò i file spiegando passo dopo passo gli eventi.

Apri questo file e non lanciare nessuna macro, l'ho già fatto io e ho generato il foglio 10, ok??

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

ora tu guarda le "miss" - che per comodità ho filtrato- , vedrai che nel foglio 10 (le ho evidenziate in giallo) ve ne sono alcune che non dovrebbero essere nell'elenco delle "miss" infatti sono già presenti nel foglio9 (te le ho evidenziate e sono le : 640-107727 -801-127771 - 811-141085 ) ?ok???

Ora, rimani sul foglio 10 e lancia un'altra volta la DayRYEP e vedrai che l'elenco si modifica nettamente togliendo quelle su indicate dalle "miss" e inserendone altre che nella prima esecuzione non c'erano...

Quindi la mia domanda è semplice: come mai accade questo??

Perché la macro estrae alla prima esecuzione nuove spedizioni mai modificate inserendole tra le miss e già presenti il giorno prima?

Perché se lancio una seconda volta la macro il risultato si allinea togliendo quelle e inserendo quelle corrette?


Non mi uccidere se sono stato prolisso ma ci tengo a farti capire bene cosa succede al fine di poter scovare l'errore e avere, come per le altre tabelle. un risultato esatto ma sopratutto affidabile.

Grazie
"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: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi Anthony47 » 20/10/18 18:12

Ahhhhhhhh vedi che poi avevo compreso esattamente che fosse la DayRiep a generare il fogliooooo

se però (rimanendo sullo stesso foglio) esegui una seconda volta la DayRIEP, le "Miss" variano e etc etc
Deciditi, pero': la DayRIEP serve a generare il foglio col nuovo riepilogo OPPURE serve per confrontare i dati col giorno "precedente"?

E la prossima volta se ti dico "se esegui anche tu il processo che ho descritto (con gli stessi file pubblicati ieri sera) che risultato ottieni?", FALLO.
Ti saresti accorto allora che i risultati ottenuti sono tutti esatti anche sul tuo pc.

Poi prova col tuo processo e ti accorgerai che alla fine i risultati sono sbagliati.

Poi pensa a cosa c'e' di diverso tra il tuo processo e il mio e cerca la cosa che esegui in piu' (di cui in questi messaggi non parli) ed esegui male. Se dopo mezz'ora non l'hai capito allora guarda nell'help on line di Excel la voce "Ordinare i dati in un intervallo o in una tabella". Se dopo due ore che ti maceri sull'interrogativo non hai ancora capito allora chiedi e probabilmente ti rispondero'...
Lo so, a volte sono sadico :diavolo:
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 20/10/18 21:23

Tu lo fai apposta! Di la verità...non è sadismo (quello è nullarispetto a ciò che fai) la tua è pura R A P P R E S A G L I A :aaah :aaah :aaah :aaah

Di seguito:

La DayRiep genera il foglio mentre la Daycompare confronta i dati... appurato questo il quesito che ti pongo è sempre lo stesso

E per riallacciarmi al messaggio precedente riscrivo:


Apri questo file e non lanciare nessuna macro, l'ho già fatto io e ho generato il foglio 10, ok??

xxxxxxxxxxxx Il file già ce lhai e inutile riallegarlo

guarda le "miss" - che per comodità ho filtrato- , vedrai che nel foglio 10 generato dalla DayRIEP (le ho evidenziate in giallo) ve ne sono alcune che non dovrebbero essere nell'elenco delle "miss" infatti sono già presenti nel foglio 9 (te le ho evidenziate e sono le : 640-107727 -801-127771 - 811-141085 ) ?ok???

Ora, rimani sul foglio 10 e lancia un'altra volta la DayCampare e vedrai che l'elenco si modifica nettamente togliendo quelle su indicate dalle "miss" e inserendone altre che nella prima esecuzione non c'erano...

Quindi la mia domanda è semplice: come mai accade questo??

Perché la macro estrae alla prima esecuzione nuove spedizioni mai modificate inserendole tra le miss e già presenti il giorno prima?

Perché se lancio una seconda volta la macro il risultato si allinea togliendo quelle e inserendo quelle corrette?


Non mi uccidere ma ci tengo a farti capire bene cosa succede al fine di poter scovare l'errore dedicando le ore che richiedi...

Ciao Boia!! :lol: :lol: :lol: :lol: :lol: :lol: :lol:
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: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi Anthony47 » 21/10/18 11:53

danibi ha scritto:appurato questo il quesito che ti pongo è sempre lo stesso [etc etc]


Il metodo perche' tu capisca dove crei l'inghippo e' lo stesso che ti ho detto prima
Anthony ha scritto:E la prossima volta se ti dico "se esegui anche tu il processo che ho descritto (con gli stessi file pubblicati ieri sera) che risultato ottieni?", FALLO.
Ti saresti accorto allora che i risultati ottenuti sono tutti esatti anche sul tuo pc.

Poi prova col tuo processo e ti accorgerai che alla fine i risultati sono sbagliati.

Poi pensa a cosa c'e' di diverso tra il tuo processo e il mio e cerca la cosa che esegui in piu' (di cui in questi messaggi non parli) ed esegui male. Se dopo mezz'ora non l'hai capito allora guarda nell'help on line di Excel la voce "Ordinare i dati in un intervallo o in una tabella". Se dopo due ore che ti maceri sull'interrogativo non hai ancora capito allora chiedi e probabilmente ti rispondero'...


Quello che ti dico di guardare nell'help on line e' la cosa che tu fai, e non ce lo dici, e la fai male.

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

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 21/10/18 18:55

Anthony, perdona!,
sono un incompetente cronico in materia di macro e quant'altro vada al di la dell'abc di excel, questo lo so io e questo lo sai tu e me ne rendo conto, ma sono tutto fuorché tardo!

se mi prodigo nello spiegarti cosa succede e telo trascrivo in maniera sfiancante e perniciosa è perché prima faccio quello che mi hai chiesto (sono sempre stato un alunno modello, magari a fatica comprendevo alcune materie, ma osservavo diligentemente e scrupolosamente quanto i mastri prima e i prof dopo di indicavano) ma visto che il risultato produce quello che ti ho scritto sopra più e più volte, mi limito a richiedere umilmente supporto...non amo far perdere tempo a nessuno e mi spiace rubartene per queste mie sciocchezze.

Copiando la matrice nel file la Day Riep mi genera il foglio 10, dopodiché lancio la DayCompare e mi ripete alcune spedizioni del giorno prima nel foglio8, la rilancio una seconda volta e tutto si allinea. punto.

Altro no so che dire: mi spiace e davvero.

Se hai voglia e tempo da spiegarmi l'inghippo la cosa non può che aiutarmi, e i miei grazie saranno sempre infiniti per tutto il supporto che mi offri gratuitamente, altrimenti amen!
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: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 21/10/18 20:38

Alcune errori ortografici nel messaggio di prima:

"i maestri prima e i prof dopo di consigliavano di fare"
"ripete alcune spedizioni del giorno prima nel foglio9" e non foglio8

sorry

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: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi Anthony47 » 21/10/18 23:36

Ripartiamo dal file che hai pubblicato il 20/10 pomeriggio (vedi viewtopic.php?f=26&t=109392&p=646342#p646320)
Contiene gia' Foglio10 che tu hai prodotto.

Ora e' evidente che nel tuo Foglio10 l'elenco ha subito un "Ordinamento" per numero di spedizione crescente, perche' in Foglio10 le spedizioni sono crescenti ma nel foglio di origine, EsportazioneCompetenze_63653514, sono in modo disordinato.

Ne' la DayRIEP ne' la DayCompare contengono al loro interno un ordinamento, quindi l'hai aggiunto tu in qualche modo.
Come lo fai? Non lo dici, ma secondo me hai una versione di macro che ha da qualche parte al suo interno una Call MacroPerOrdinamento che ti avevo detto di autoregistrare.

Torniamo al tuo file, ed eseguiamo nuovamente la sola DayRIEP; verra' allora generato un nuovo riepilogo su Foglio11 con le spedizioni non ordinate; se confrontiamo questo Foglio11 con Foglio9 (basta spostare manualmente Foglio11 tra Foglio10 e Foglio9; poi seleziona Foglio11 e avvia DayCompare) avremo 36 "miss" e 1 variazione.
Dove e' la prima "miss"? Sul numero 355-61635, riga 71
Dov'e' la seconda "miss"? Sul numero 591-1259265, riga 194


MA SUL TUO Foglio10...
Dov'e' la prima "miss"? Sul codice 241-88931; RIGA? 71
Dov'e' la seconda "miss"? Sul codice 355-61937; RIGA? 194

CIOE??
Secondo me la sequenza che tu esegui e':
Codice: Seleziona tutto
Sub LaMiaMacro()
Call DayRIEP2
Call DayCompare
Call MacroPerOrdinamento
End Sub

Ma l'ordinamento inserito nel tuo processo evidentemente lavora solo sulle prime 3 colonne della Tabella del foglio creato, sicche' il numero 355-61635 di riga 71 finisce (insieme con le sue colonne B e C) su un'altra riga, mentre l'indicazione "miss" rimane su riga 71.
Idem per la riga 194; idem per tutte le altre righe.
Per tua curiosita', solo 2 dei 36 "miss" effettivamente mancano su Foglio9; gli altri 34 sono regolarmente presenti. Infatti i "miss" sono stati accoppiati praticamente a caso con i numeri di spedizione.

Infatti se ordino il nuovo Foglio11 per numero di spedizione, avendo pero' dichiarato erroneamente un elenco limitato alle colonne A-B-C, ottengo esattamente il tuo Foglio10: le colonne A-B-C vengono posizionate nel nuovo ordine, la colonna E (ed eventualmente F-G, compilate nel caso di spedizioni "perdute") rimane nella posizione calcolata dalla DayCompare.

E' evidente che se rieseguo DayCompare sull'elenco gia' ordinato (cioe' se la esegui "una seconda volta") i risultati saranno anche stavolta corretti ma nelle righe in cui effettivamente si trovano i codici mancanti

Quindi?
Cerca dove esegui l'ordinamento e posizionalo prima della DayCompare e non dopo; oppure modifichi il codice di Ordinamento affinche' venga selezionato l'intero elenco, che va da colonna A a colonna G

Spero ti si sia accesa la lucina che l'autocombustione non ha invece acceso...
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 22/10/18 08:15

Ciao Anthony e buon lunedì...

il mio non poteva iniziare meglio se non leggendo questo passo del Tuo messaggio che mi gratifica di una capacità a me sin'ora sconosciuta:

Ne' la DayRIEP ne' la DayCompare contengono al loro interno un ordinamento, quindi l'hai aggiunto tu in qualche modo.
Come lo fai? Non lo dici, ma secondo me hai una versione di macro che ha da qualche parte al suo interno una Call MacroPerOrdinamento che ti avevo detto di autoregistrare.


Io, mio caro Anthony non celo nulla del mio operato né tanto meno sarei in grado di generare una macro che ordini in qualche modo la il foglio (Call MacroPerOrdinamento ....questa sconosciuta?! :lol: :lol: :lol: ), l'unica cosa che faccio, dopo aver generato il nuovo foglio e lanciato la Daycompare per verificare variazioni o nuove spedizioni è ordinare il foglio manualmente selezionando le celle A-B-C-D-E in ordine di numero spedizione, mettere un filtro e estrarre solo le modificate, le miss e le lost... tutto qui.

Ora, attraverso questo indizio, il processo di autocombustione con lucina rossa al seguito, diventano irreversibili e si da inizio alla fissione nucleare della mia ormai scarsa materia grigia elucubrando quanto segue:
Probabilmente, ma ignorando che la macro potesse generare dati inesatti a causa di questo ordinamento, dopo aver ordinato il foglio 9 per la stampa l'ho lasciato così e quindi poi quando ho incollato la nuova estrazione generando il foglio 10 macro DayCampare ha generato miss la dove non doveva in quanto non riscontrava dati esatti e collocati modo corretto come da estrazione pre ordinamento...Tu che ne pensi?

Se però questo eventuale mio ordinamento creasse confusione, che ne dici se si genera una macro che tuteli il tutto affinché quando estrae il nuovo foglio ordina per numero di spedizione anziché per data?

Se si adattasse questa macro Sub RSSort già creata per un'altro file matrice che ne pensi?

Sub RSSort()
'
' RSSort Macro
' Ordinamento colonne per numero spedizione
'
' Scelta rapida da tastiera: CTRL+z
'
Columns("A:C").Select
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:= _
Range("A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveSheet.Sort
.SetRange Range("A2:C10000")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub



Grazie per la sempre infinita pazienza,

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: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi Anthony47 » 22/10/18 14:05

Ecco, vedi che cominci a dire che quello che hai pubblicato non e' il risultato della DayRIEP + DayCompare?

Controlla i risultati prima dell'ordinamento.
Se prima sono corretti e dopo l'ordinamento sono inesatti e' l'ordinamento che confonde le acque.

Se ordinassi tutte le colonne A-B-C-D-E allora il "miss" che DayCompare posiziona su riga 71 accanto al codice 355-61635 verrebbe spostato sulla stessa riga del codice 355-61635, cosa non vera nei file che hai allegato. E comunque potenzialmente la tabella arriva a colonna G (se ci sono anche delle spedizioni "lost")

Per estendere la Sub RSSort fino alla colonna G ti bastera' modificare .SetRange Range("A2:C10000") in
Codice: Seleziona tutto
.SetRange Range("A2:G10000")


Oppure usi l'attuale codice ma attivandolo PRIMA della DayCompare

Oppure ti fai una macro di primo livello che attiva in sequenza le macro esecutive; tipo
Codice: Seleziona tutto
Sub Macrone()
Call DayRIEP2                           'Crea nuovo Riepilogo
Sheets(ActiveSheet.Index + 1).Select    'Seleziona foglio creato
Call RSSort                             'Ordina per spedizione
Call DayCompare                         'Confronta con "precedente"
End Sub

Questa esegue la DayRIEP, seleziona il foglio appena creato e lo ordina tramite RSSort, poi lo confronta tramite DayCompare
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 22/10/18 14:31

Anthony, significa che:

Creo all'interno del file MatriceBreviXP la nuova macro Sub RSSort copiandola dal testo che ti ho copiato nel messaggio precedente e la modifico come sotto??

Per estendere la Sub RSSort fino alla colonna G ti bastera' modificare .SetRange Range("A2:C10000") in
CODICE: SELEZIONA TUTTO
.SetRange Range("A2:G10000")

Poi questa è davvero impegnativa per non dire impossibile per me vista la mia ignoranza abominevole:


Cosa significa : "Oppure usi l'attuale codice ma attivandolo PRIMA della DayCompare" Quale attuale codice??

Oppure ti fai una macro di primo livello che attiva in sequenza le macro esecutive; tipo

CODICE: SELEZIONA TUTTO
Sub Macrone()
Call DayRIEP2 'Crea nuovo Riepilogo
Sheets(ActiveSheet.Index + 1).Select 'Seleziona foglio creato
Call RSSort 'Ordina per spedizione
Call DayCompare 'Confronta con "precedente"
End Sub


questa da Te trascritta sarebbe già un macro oppure è un esempio?

Come si costruisce una macro di primo livello? :o :o :o io non so manco costruirla di ultimo livello... :lol: :lol: :lol:

Ciao
Danibi
"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: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi Anthony47 » 23/10/18 02:00

Si, devi inserire il codice della Sub RSSort in un modulo vba standard del tuo file.
Se vuoi usare Sub RSSort dopo che hai eseguito la DayCompare allora devi per forza "allargare" il range fino a colonna G; se invece la usi prima di aver eseguito la DayCompare allora basta tenere le colonne A:C (le uniche colonne in quel momento presenti)

La Sub Macrone e' una macro che assembla le altre che ora usi "sfuse" e fa il processo intero. Il codice che t'ho dato e' completo e funzionante.

Per macro di primo livello intendo una macro che ne raggruppa altre al suo interno, come Macrone
Dopo 110 messaggi che facciamo, la chiudiamo questa discussione?

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

Re: Matrice per totale giornaliero per data

Postdi danibi60 » 23/10/18 07:06

Anthony: sì chiudiamola!

...ma nella mi auguro remota possibilità si presentassero in futuro richieste di aiuto supporto per queste macro apro nuovo topic o scrivo sempre in questo post, o preferisci io sparisca definitivamente?

Grazie,
Daniby

PS.
"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: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Matrice per totale giornaliero per data

Postdi Anthony47 » 24/10/18 02:02

Se ora e' tutto chiaro allora chiudiamo 'sta lunga litania.
Visto che oramai e' anche difficile da leggere direi che per il futuro e' meglio aprire una nuova discussione.

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

Precedente

Torna a Applicazioni Office Windows


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


Chi c’è in linea

Visitano il forum: Nessuno e 41 ospiti