Condividi:        

Gestione Magazzino

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: Gestione Magazzino

Postdi Anthony47 » 27/08/22 18:39

Il file che hai pubblicato e' parzialmente allineato al mio messaggio del 9-ago pomeriggio, dove ti istruivo su come inserire una colonna in coda alle colonne pre-esistenti (A:J; quindi la nuova colonna in K).
"Parzialmente allineato" perche' manca la modifica per rendere ancora fruibile il "doppioclick" su cella ex L1 (ora diventata M1) e lo sblocco delle modifiche con 123 in cella ex Q1 (ora diventata L1).
Modifiche che sono contenute nel suddetto messaggio: viewtopic.php?f=26&t=112528&start=20#p661581

Ma tu avevi chiesto come inserire la colonna aggiuntiva in posizione B...
Le istruzioni del mio precedente messaggio (20-ago "sera") sono quindi riferite al formato originale della tua tabella, con le colonne che occupano A:J; dove quindi in L1 puoi inserire un numero bancale (in N1 viene subito calcolato il numero di pezzi in E e U; in P1 viene visualizzato in quale riga quel bancale si trova; doppioclick su L1 ti porta sulla riga del bancale)

Inoltre con "assegna sul foglio MOVIMENTI un "nome" alle celle L1 e Q1" non intendo quel che scrivi tu, ma intendo "Assegna un NOME a quelle celle" (cerca in google "Excel creare intervallo denominato").

La procedura che ho suggerito (non e' l'unica possibile):

Immagine

1- Seleziona la cella o l'intervallo che si vuole nominare
2- All'interno della "casella nome" scrivi il nome che vuoi assegnare a quell'intervallo
3- Conferma con Enter
Devi eseguire questa procedura una volta selezionando prima L1 e poi Q1 (ripeto: L1 e Q1 del tracciato originale, non con la colonna aggiuntiva in K)

Ora quelle celle possono essere indirizzate usando anche il loro NOME, sia in formule che in vba. E soprattutto quando aggiungi righe o colonne il NOME puntera' alla nuova posizione dell'intervallo

A questo punto le modifiche all'interno della Worksheet_BeforeDoubleClick e Worksheet_Change servono per usare i NOMI di quelle celle (e non piu' il loro inndirizzo) in modo da poter liberamente aggiungere colonne nella tabella senza dover piu' fare aggiustamenti.

Dopo aver poi aggiunto in B la nuova colonna DDT devi modificare nella Sub ImportaPIT una riga (il 2 che diventa 3)

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

Sponsor
 

Re: Gestione Magazzino

Postdi danibi60 » 29/08/22 06:53

Ciao Anthony, per quanto riguarda l'assegnazione nomi ora ho compreso e applicato la modifica da Te suggerita..Ho cercato per quanto scrivi in questo passaggio:

A questo punto le modifiche all'interno della Worksheet_BeforeDoubleClick e Worksheet_Change servono per usare i NOMI di quelle celle (e non piu' il loro inndirizzo) in modo da poter liberamente aggiungere colonne nella tabella senza dover piu' fare aggiustamenti.

e immagino Tu ti riferisca a questo:

Poi nel codice vba di MOVIMENTI:
1) all'interno della Worksheet_BeforeDoubleClick sostituisci l'attuale =$L$1 con =Range("BANC").Address
2) all'interno della Worksheet_Change sostituisci (in 2 posizioni) l'attuale Range("Q1") con Range("IGNORA")


Ma non ho trovato nella VBA di "Movimenti" dove inserire queste due modifiche, nel senso che non trovo né Worksheet_BeforeDoubleClick né la Worksheet_Change

Me le puoi indicare...

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: Gestione Magazzino

Postdi Anthony47 » 29/08/22 09:38

La Worksheet_BeforeDoubleClick e la Worksheet_Change sono nel modulo vba del foglio MOVIMENTI.
Il modo piu' semplice di arrivarci e', partendo da Excel:
-tasto sx sul tab col nome del foglio; scegli Visualizza codice

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

Re: Gestione Magazzino

Postdi danibi60 » 29/08/22 10:11

Se copio il testo per intero = Range("BANC").Address all'interno delle virgolette dove è scritto $L$1 mi dice che non è corretto...

Devo copiare per intero quanto mi hai scritto o semplicemente inserire al posto di $L$1: "BANC"

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

Re: Gestione Magazzino

Postdi Anthony47 » 29/08/22 13:09

Al posto di ="$L$1" devi scrivere = Range("BANC").Address
Avatar utente
Anthony47
Moderatore
 
Post: 19147
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Gestione Magazzino

Postdi danibi60 » 29/08/22 13:44

Fatto, 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: Gestione Magazzino

Postdi danibi60 » 28/12/22 15:35

Ciao Antony, come stai? Trascorso un buon Natale?

Vorrei utilizzare il file che mi avevi predisposto in questa discussione e utilizzarlo per un altro cliente. In questo caso la macro costruita non servirà in quanto (così come da esempio inserito nel file) il dataentry è molto semplice e manuale.
Ho provato a inserire un esempio ma avvengono alcuni errori che bloccano gli inserimenti o gli aggiornamenti, ad esempio:
Nel caso specifico il N° Bancale (colonna F) non esiste più, ma solo la quantità
Potrebbe accadere che (come nell'esempio) che abbia un entrata di 25 colli ma un uscita di soli 20 se inserisco 20 il file non si aggiorna manifestando un errore
Inoltre nella tabellina di riepilogo alla dx del file compare un n° 1 che non so da dove sbuca...
Allego file

Grazie infinite
"C:\Users\Utente\Dropbox\Gestione Magazzino D_C20730.xlsm"
"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: Gestione Magazzino

Postdi Anthony47 » 28/12/22 19:56

Non hai allegato il link al dropbox del file cui fai riferimento
Inoltre dovresti descrivere che cosa si vuole fare, perche' non vorrei andare a leggere i 40 messaggi precedenti per farmene una idea...
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19147
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Gestione Magazzino

Postdi danibi60 » 28/12/22 20:39

Strano il link l'ho visto copiato...

Riprovo

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

Vorrei gestire il carico e scarico magazzino utilizzando questa matrice solo che a differenza del file precedente che utilizzava una macro per importare i dati in questo caso li inserisco manualmente.

Il problema in prima battuta sono gli errori che ti ho segnalato nel messaggio precedente sistemati questi Ti spiegherei come poter valorizzare economicamente il tutto e cioè:

Il costi sono per ogni singolo bancale di €10,00 totale così composti :€3 scarico + €3 carico + €4 giacenza a magazzino

che significa: ipotizziamo che oggi mi entrino 50 bancali

immediatamente come da accordi con il mio cliente addebito subito € 6 (€3+€3 scarico e carico), il rimanente €4 a fine mese...

per il mese zero addebitereri per questi 50 €500 (3+3+4)

immaginiamo ora che tra 10 giorni ne entrino altri 50, per il mese zero sempre €500,00

avrei in questo momento giacenti 100 bancali

tra venti giorni mi chiedono di far uscire 20 bancali, nulla cambia per quanto già emesso a fine mese, ma dal mese successivo le cose cambiano in quanto e ipotizzando che entrino altri 50 bancali dovrei:

Per Il residuo di 80 del mese precedente addebitare solo gli €4 di costo magazzino e per i nuovi 50 sempre €500,00

Mi fermo qui e attendo le tue domande....con la speranza d'essermi spiegato con sufficiente chiarezza.
"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: Gestione Magazzino

Postdi Anthony47 » 29/12/22 13:22

Mi spiace, ma evidentemente tu sei immerso in queste operazioni tutti i giorni e ti sembra strano che noialtri ...ne siamo esenti; ma e' così e ti assicuro che non ti seguo proprio (pur ricordando che in estate ti avevo supportato su un file che era molto simile a questo)

Hai allegato un file con due fogli, ma non riesco a collegare quello che dici con i fogli.

Quindi rassegnati a dover spiegare la cosa da zero altrimenti non facciamo passi avanti: partendo dal file allegato spiega come ci operi e che cosa devi ottenere
Avatar utente
Anthony47
Moderatore
 
Post: 19147
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Gestione Magazzino

Postdi danibi60 » 29/12/22 17:37

Ciao è sicuramente come dici Tu, a volte si rischia di dare per scontate cose che non lo sono...

indi per cui rewind:

Il file che ti ho allegato ha due fogli, il secondo non serve a nulla è solo rimasto allegato accidentalmente in quanto lo stesso file da te elaborato in estate lo suo proficuamente per un altra attività che si compone appunto attraverso l'uso dei due fogli

Attività che per questo secondo lavoro mi serve solo attraverso l' utilizzo di un solo foglio in quanto i dati che andrò appunto ad inserire, non devono esser catturati da un secondo foglio attraverso delle macro ma inseriti manualmente.

Di fatto devo gestire un deposito di materiali che hanno la necessità d'esser caricati con questa logica sfruttando le colonne già esistenti e eventualmente cambiando le sole intestazioni (cosa che ho già fatto)

Ora, se in cella H2 inserisco 25 è corretto che nella colonna a fianco saldo vi sia la voce entrata, in cella K se inserisco 25 come uscita devo come da macro inserire la data di uscita e fin qui tutto ok
Ammettiamo però che di quella tale quantità ne escano solo 12 se inserisco tale numero è corretto che la cella diventi rossa, vorrei però che da qualche parte mi comparisse il delta rimasto a magazzino di quel tale lotto e che di conseguenza nello specchietto alla destra R1:V33 a sua volta ne venga sviluppato il conteggio tenendolo in considerazione epr gli addebiti che ne seguiranno, addebiti che vorrei (magari a fianco dello stesso specchietto) comparissero con la logica di calcolo spiegata nel messaggio precedente e che di seguito copio:
Il costi sono per ogni singolo bancale di €10,00 totale così composti :€3 scarico + €3 carico + €4 giacenza a magazzino

che significa: ipotizziamo che oggi mi entrino 50 bancali

immediatamente come da accordi con il mio cliente addebito subito € 6 (€3+€3 scarico e carico), il rimanente €4 a fine mese...

per il mese zero addebitereri per questi 50 €500 (3+3+4)

immaginiamo ora che tra 10 giorni ne entrino altri 50, per il mese zero sempre €500,00

avrei in questo momento giacenti 100 bancali

tra venti giorni mi chiedono di far uscire 20 bancali, nulla cambia per quanto già emesso a fine mese, ma dal mese successivo le cose cambiano in quanto e ipotizzando che entrino altri 50 bancali dovrei:

Per Il residuo di 80 del mese precedente addebitare solo gli €4 di costo magazzino e per i nuovi 50 sempre €500,00

Mi fermo qui e attendo le tue domande....con la speranza d'essermi spiegato con sufficiente chiarezza.

Danibi

ps
riallego il file mondato del foglio superfluo
https://www.dropbox.com/s/j65qmsdfi2hp8 ... .xlsm?dl=0
"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: Gestione Magazzino

Postdi Anthony47 » 29/12/22 22:54

Capisco qualcosa di piu'...
Ma il contributo richiesto e' relativo a come calcolare entrate /uscite /giacenze (diciamo la tabella secondaria in R:V) in modo da gestire correttamente la fatturazione o alla compilazione della tabella principale e al funzionamento delle macro che ci sono dietro?
Altra cosa che non capisco: se hai una registrazione su una riga di 25 entrate e 12 uscite, dove andrai a registrare le 13 uscite successive che azzerano quell'entrata?
Avatar utente
Anthony47
Moderatore
 
Post: 19147
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Gestione Magazzino

Postdi danibi60 » 30/12/22 10:33

Ciao, Anthony,

1) no la macro la puoi eliminare serviva solo, come Ti ho scritto, per la gestione dello stesso file (composto da due fogli) e che mi avevi aiutato a costruire in Estate, per questo lavoro e per i calcoli non credo serva...

2) esatto, serve per gestire entrate /uscite /giacenze elencate nel foglio principale e riportate in sintesi in R:V

3) infatti è proprio qui la necessità, là dove uscissero meno bancali di quelli entrati dove indicare il delta, come portarselo appresso sia come riga di lotto sia come addebito poi mensile della solo costo giacenza (€4,00)


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

Re: Gestione Magazzino

Postdi Anthony47 » 01/01/23 17:05

Aspettando la mezzanotte ho modificato ieri sera il tuo file, ma poi non ho avuto tempo per proportelo; puoi scaricare l'elaborato qui: https://www.dropbox.com/s/q0gyhfz43l3sr ... .xlsm?dl=0

Le modifiche:
1) ho eliminato le Sub Worksheet_BeforeDoubleClick e Sub Worksheet_Change presenti

2) ho inserito una nuova Sub Worksheet_Change, che si occupa di verificare le uscite, e se inferiore alla consistenza del lotto AGGIUNGE in tabella una nuova riga contenente in colonna Q.tà Bancali il "riporto" (cioe' la quantita' non uscita) e come data la stessa data del lotto ma spostata di 100 anni in avanti. Un messaggio "transitorio" (dura 3-4 sec) informa di questa aggiunta (per questo ho inserito una UserForm).
E' possibile che una riga di "riporto" possa generare un ulteriore riporto (quindi una ulteriore riga aggiunta), se anche la sua uscita sia inferire alla colonna Q.tà Bancali
NON HO gestito la situazione in cui si vada a modificare la quantita' in uscita di una riga che ha gia' inserito un "riporto", ma mi sono limitato a un msgbox che avverte che probabilmente va modificata la riga del riporto.
Esempio:
-una riga con 25 bancali; ne escono 15; in questa situazione la macro inserisce una riga con un "riporto" di 10 bancali
-mi accorgo che ne sono usciti invece 10 e modifico la quantita' di colonna Uscita
-la macro mi avverte che probabilmente devo modificare la riga di riporto, dove manualmente bisognera' a cambiare il riporto da 10 (25 meno 15) a 15 (25 meno 10)

3) ho modificato le formule nella tabella R:V
-la data iniziale viene inserita a mano in R2
-in R3 calcolo l'inizio del mese successivo con la formula =FINE.MESE(R2;0)+1
-copia R3 verso il basso per ottenere i periodi successivi
-formatto colonna R in modo da visualizzare solo mmm-aa (es dic-22)
-in S2 calcolo le quantita' entrate dal 1° al 31 del mese indicato in R2, con la formula =SOMMA.PIÙ.SE(Movimenti[Q.tà Bancali];Movimenti[Data];">="&R2;Movimenti[Data];"<"&R3)
-in T2 calcolo le quantita' uscite nel mese indicato in R2, con al formula =SOMMA.PIÙ.SE(Movimenti[Uscita];Movimenti[Data U];">="&R2;Movimenti[Data U];"<"&R3)
-in U2 calcolo la quantita' in giacenza alla fine del mese indicato in R2, con la formula =SOMMA.SE(Movimenti[Data];"<"&R3;Movimenti[Q.tà Bancali])-SOMMA.SE(Movimenti[Data U];"<"&R3;Movimenti[Uscita])
-la colonna V (Controllo) non ricordo che significato aveva e l'ho lasciata immutata
-copia le formule in S-T-U verso il basso

A questo punto mi pare che la tabella ti dia le quantita' entrate e la giacenza di fine mese, con cui puoi calcolare il valore da fatturare al Cliente

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

Re: Gestione Magazzino

Postdi danibi60 » 02/01/23 08:56

Ciao Anthony, ma figurati! grazie a prescindere per la Tua sempre generosa disponibilità

Ho simulato alcuni inserimenti ma ho da chiederti alcune cose:

1) La macro, nonostante abbia sbloccato il tutto non parte e mi avvisa con un messaggio : "selezione una cella colorata e riprova" l'ho fatto ponendomi su K3 ma niente da fare...

2) In colonne I e J vedo indicato sempre "Entrata" sia quanto scarico completamente la quantità come in cella K2 sia quando scarico solo in parziale (vedi K3 e K4)

3) Come mai nello specchietto posto in R:V in cella Controllo V7 compare quel numero in negativo?

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

Grazie 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: Gestione Magazzino

Postdi Anthony47 » 02/01/23 20:00

1) La macro, nonostante abbia sbloccato il tutto non parte e mi avvisa con un messaggio : "selezione una cella colorata e riprova" l'ho fatto ponendomi su K3 ma niente da fare...
Non so che cosa fanno le macro nel tuo file, ma ho preso per buono che "no la macro la puoi eliminare serviva solo, come Ti ho scritto, per la gestione dello stesso file (composto da due fogli) e che mi avevi aiutato a costruire in Estate". Io non le ho eliminate ma le ho ignorate, lasciandole quindi nel file.
Ho invece rimosso le Sub Worksheet_BeforeDoubleClick e Sub Worksheet_Change, inserendo una nuova Sub Worksheet_Change che si occupa di gestire l'eventuale uscita parziale di un lotto, come ho scritto:
"ho inserito una nuova Sub Worksheet_Change, che si occupa di verificare le uscite, e se inferiore alla consistenza del lotto AGGIUNGE in tabella una nuova riga contenente in colonna Q.tà Bancali il "riporto" (cioe' la quantita' non uscita) e come data la stessa data del lotto ma spostata di 100 anni in avanti"

Io ho capito che tu le entrate le fai manualmente, cioe' vai a scrivere le colonne A:H del foglio Movimenti.
Il mio intervento e' esclusivamente sulla gestione di uscite parziali, e poi sulle formule della tabella riassuntiva in R:V

Le colonne I:J non so che cosa vorrebbero indicare e non le ho toccate; se spieghi il loro obiettivo magari possiamo rivedere le formule che ci sono dietro.

Il file che alleghi non so come e' stato costruito:
-in riga 3 c'e' una giacenza di 14 e una uscita di 12, ma non vedo la riga con il "riporto" di 2 che dovrebbe essere stata creata quando hai inserito l'uscita parziale
-idem in riga 5 (giacenza di 20, uscita di 19); non c'e' la riga di riporto (che a me viene regolarmente creata se provo a editare la quantita' 19 in colonna Uscita)

La colonna V, che mostra numeri negativi, come scritto "non ricordo che significato aveva e l'ho lasciata immutata"; se mi ricordi che dovrebbe fare magari posso contribuire.
Ragionandoci sopra, dovrebbe servire a fare un doppiocheck sulla giacenza, che quindi potrebbe essere calcolata alternativamente con questa formula in V3 da copiare verso il basso:
Codice: Seleziona tutto
=U2+S3-T3
Ho fatto questa modificaa nel file da me condiviso, vedi se ti torna.

Insomma nel file che pubblicai ieri le prove che devi fare e' di inserire uscite totali o parziali sulle righe esistenti, e verificare il meccanismo di inserimento della riga di "Riporto"; poi aggiungere manualmente nuove entrate /uscite e controllare che le formule in R:V diano risultati coerenti con la fatturazione che devi creare.
Se chiarisci il significato di colonne I-J possiamo rivedere le formule

Credo che dovresti anche rivedere tutte le formattazioni condizionali, mi pare che siano abbastanza confuse probabilmente dopo operazioni di taglia e cuci.
Da decidere anche se la gestione di uscite superiori alla giacenza (es giacenza 8, uscita 9 di riga 4) sia da gestire con una formattazione condizionale (che indica l'errore) o con la WorksheetChange (che la impedisce).

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

Re: Gestione Magazzino

Postdi danibi60 » 02/01/23 21:12

Allora, giusto per ricordarti il vecchio file costruito quest'estate te lo allego così tu possa comprendere a cosa servissero allora sia le formule sia le macro costruite che però con quanto chiesto ora non mi servono ma almeno ti chiariscono alcune funzioni e formattazioni di allora.

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

Ma torniamo a questo:
Tu parlavi di macro in quanto mi hai scritto:

2) ho inserito una nuova Sub Worksheet_Change, che si occupa di verificare le uscite, e se inferiore alla consistenza del lotto AGGIUNGE in tabella una nuova riga contenente in colonna Q.tà Bancali il "riporto" (cioe' la quantita' non uscita) e come data la stessa data del lotto ma spostata di 100 anni in avanti. Un messaggio "transitorio" (dura 3-4 sec) informa di questa aggiunta (per questo ho inserito una UserForm).

Ecco quando io (come nel file che ti riallego scalo solo 20 colli dalla prima riga) non mi si crea nessuna " nuova riga contenente in colonna Q.tà Bancali" da qui la mia domanda nel secondo messaggio:

1) La macro, nonostante abbia sbloccato il tutto non parte e mi avvisa con un messaggio : "selezione una cella colorata e riprova" l'ho fatto ponendomi su K3 ma niente da fare...

Oppure ho compreso male io?

inoltre


Le colonne I:J non so che cosa vorrebbero indicare e non le ho toccate; se spieghi il loro obiettivo magari possiamo rivedere le formule che ci sono dietro.

queste colonne possono anche esser eliminate a meno che si voglia tenere la voce "entrata" che compaia quando inserisco un nuovo inserimento ma il la colonna Tipo puoi eliminarla tranquillamente.

Infine


-in riga 3 c'e' una giacenza di 14 e una uscita di 12, ma non vedo la riga con il "riporto" di 2 che dovrebbe essere stata creata quando hai inserito l'uscita parziale
-idem in riga 5 (giacenza di 20, uscita di 19); non c'e' la riga di riporto (che a me viene regolarmente creata se provo a editare la quantita' 19 in colonna Uscita)


Immagino che tu non veda la riga con i vari riporti in quanto appunto non si creata l'automatismo da te indicato :

2) ho inserito una nuova Sub Worksheet_Change, che si occupa di verificare le uscite, e se inferiore alla consistenza del lotto AGGIUNGE in tabella una nuova riga contenente in colonna Q.tà Bancali il "riporto" (cioe' la quantita' non uscita) e come data la stessa data del lotto ma spostata di 100 anni in avanti. Un messaggio "transitorio" (dura 3-4 sec) informa di questa aggiunta (per questo ho inserito una UserForm).

Ti riallego il file dove ho simulato tre inserimenti in data 29/12 - 30/12 e 30/12 con due uscite parziali e una completa e da nessuna parte compare il residuo di 7 pezzi....

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

Grazie 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: Gestione Magazzino

Postdi Anthony47 » 02/01/23 23:02

Devi spegnere e riaccendere il pc, poi riparti col mio file

E comunque il messaggio "selezione una cella colorata e riprova" appartiena alla Sub ImportaPIT: perche' la mandi in esecuzione?
Avatar utente
Anthony47
Moderatore
 
Post: 19147
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Gestione Magazzino

Postdi danibi60 » 03/01/23 12:28

Ciao, ho spento e riacceso e ora ho visto che genera una riga sotto.
Ho però alcune perplessità in merito:
Va benissimo che crei una riga sotto con il riporto ma ho il dubbio che essendo modificabili possa creare accidentalmente un errore scrivendoci sopra magari, che ne pensi?
Sarebbe possibile rendere modificabile per le linee di riporto la sola voce della quantità in uscita?
Inoltre, sarebbe possibile, per coerenza con il dato, visto i dati scaricati si modificasse in automatico anche il peso complessivo posto in celle G3 G5 G5
La colonna "Tipo" la puoi cancellare, a meno che ti possa esser utile per inserire qualcosa.
Nella colonna "Saldo", per le righe di riporto, anziché "Entrata" e solo nelle righe di residuo, fare in modo che compaia la dicitura es.: "Riporto", piuttosto che "Residuo" o altro che evidenzi che tale riga/righe siano la conseguenza degli scarichi e quindi non editabili.

Inoltre nello specchietto posto in R:V compare un 39 che non dovrebbe esserci in quanto alla voce entrata il numero corretto è di 25... giusto?


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

Per il momento mi fermo qui...

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

Re: Gestione Magazzino

Postdi Anthony47 » 03/01/23 16:01

Va benissimo che crei una riga sotto con il riporto ma ho il dubbio che essendo modificabili possa creare accidentalmente un errore scrivendoci sopra magari, che ne pensi?
Sarebbe possibile rendere modificabile per le linee di riporto la sola voce della quantità in uscita?
Tutte le righe sono modificabili a piacere dell'utente, perche' preoccuparsi in particolare dei "riporti"?
Comunque si puo' intervenire sulla Sub WorksheetChange, ad esempio questa blocca le modifiche sulle colonne 1:7 della tabella, lasciando modificabile le altre (quindi anche la Quantità):
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cTRow As Long, ccVal, oVal, Caso1 As Boolean, ShutOn
Dim myC As Range, dtCol As Long
'
dtCol = Range("Movimenti").Cells(1, 1).Column
Application.EnableEvents = False
For Each myC In Target
    If Cells(myC.Row, dtCol).Value > 55000 Then
        If myC.Column >= dtCol And myC.Column < (dtCol + 6) Then
            Application.Undo
            ShutOn = Now + TimeSerial(0, 0, 3)
            Application.OnTime ShutOn, "ShutForm"
            UserForm1.Label1.Caption = "La riga " & myC.Row & " è un ""Riporto"", i valori non possono essere modificati"
            UserForm1.Show
            GoTo ExErr
        End If
    End If
Next myC
With Target.Cells(1, 1)
    If .Column = Me.Range("Movimenti[Uscita]").Column And .Value <> "" Then
        ccVal = Target.Cells(1, 1).Value
        Application.Undo
        oVal = Target.Cells(1, 1).Value
        Application.Undo
        cTRow = .Row - Me.Range("Movimenti").Cells(1, 1).Row + 2
        If Year(Me.Range("Movimenti").Cells(cTRow, 1)) - Year(Date) > 50 And oVal > 0 Then
            MsgBox ("Hai modificato l'Uscita di una riga che ha un ""Riporto"" alla riga successiva" & vbCrLf _
              & "Probabilmente e' necessario modificare manualmente la Quantità del ""Riporto""")
            Caso1 = True
        End If
        If .Value < .Offset(0, -3).Value Then
            If Caso1 = False Then
                Selection.ListObject.ListRows.Add (cTRow)
                Me.Range("Movimenti").Cells(cTRow - 1, 1).Resize(1, 8).Copy Me.Range("Movimenti").Cells(cTRow, 1)
                Me.Range("Movimenti").Cells(cTRow, 1) = Application.WorksheetFunction.EDate(Me.Range("Movimenti").Cells(cTRow, 1).Value, 1200)
                Me.Range("Movimenti").Cells(cTRow, "H") = .Offset(0, -3).Value - .Value
                ShutOn = Now + TimeSerial(0, 0, 4)
'msg>
                Application.OnTime ShutOn, "ShutForm"
                UserForm1.Label1.Caption = "Aggiunta riga " & cTRow + 1 & " con il residuo da spedire"
                UserForm1.Show
'<msg
            End If
        End If
    End If
End With
ExErr:
Application.EnableEvents = True
End Sub

Il mio file su dropbox ora e' allineato a questo codice: https://www.dropbox.com/s/q0gyhfz43l3sr ... .xlsm?dl=0


noltre, sarebbe possibile, per coerenza con il dato, visto i dati scaricati si modificasse in automatico anche il peso complessivo posto in celle G3 G5 G5
La colonna G e' gestita da una formula, ma nel "riporto" secondo me e' meglio non modificare i dati del lotto, perche' in realta' si tratta di continuazione della gestione precedente, non una nuova entrata.

La colonna "Tipo" la puoi cancellare, a meno che ti possa esser utile per inserire qualcosa.
Io la ignoro


Nella colonna "Saldo", per le righe di riporto, anziché "Entrata" e solo nelle righe di residuo, fare in modo che compaia la dicitura es.: "Riporto", piuttosto che "Residuo" o altro che evidenzi che tale riga/righe siano la conseguenza degli scarichi e quindi non editabili
Usando in questa colonna la seguente formula avremo o l'indicazione Riporto, se la data dell'operazione e' molto futura, oppure Entrata, se la colonna H contiene un valore:
Codice: Seleziona tutto
=SE(ANNO([@Data])>2050;"Riporto";SE([@[Q.tà Bancali]]>0;"Entrata";""))



Inoltre nello specchietto posto in R:V compare un 39 che non dovrebbe esserci in quanto alla voce entrata il numero corretto è di 25... giusto?
La riga 2 mostra la data 30/12/2022, quindi non viene interpretata come un Riporto ma una entrata; le entrate del mese sono quindi 25+14

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

PrecedenteProssimo

Torna a Applicazioni Office Windows


Topic correlati a "Gestione Magazzino":


Chi c’è in linea

Visitano il forum: Nessuno e 33 ospiti