Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Gestionale magazzino con più di mille articoli

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

Gestionale magazzino con più di mille articoli

Postdi primal80 » 13/08/19 23:24

Buongiorno
ho trovato il Vs sito cercando su internet una soluzione al mio problema lavorativo.
Attualmente mi occupo della gestione del magazzino di una società che lavora con più reparti (unico magazzino ma diversi reparti es. pasticceria, gelateria, ristorante ecc..) .
Il lavoro dovrebbe permettere di conoscere i consumi effettivi di ciascun reparto e determinare così l'eventuale reparto da migliorare o chiudere.
Il gestionale che usano non ci permette di conoscere i costi di ciascun reparto ma solo quelli complessivi
Su internet ho trovato un file excel adatto al mio caso ma dopo un pò il file è diventato molto lento (cerca.vert deve trovare un dato valore tra più di mille articoli) e la stessa macro utilizzata per l'inserimento dati impiega troppo tempo rispetto al primo utilizzo
Al momento Vi chiedo solo se fosse possibile:
Velocizzare la macro INSERIMENTO DATI
Velocizzare il cerca.vert che mi PERMETTE DI TROVARE la giacenza e il costo ultimo del prodotto (Foglio DATI)
Spero di esser stata chiara
Inoltre con le mie insufficienti conoscenze in fatto di formule, ho provato a creare un menu a tendina che mi permetta di trovare l'articolo (ci sono più di mille articoli) digitando solo le prime lettere ma a volte il testo reso è totalmente diverso da quello cercato

https://file.pizza/shallots-sausage-pepperoni-limburger

Grazie a chiunque vorrà aiutarmi
primal80
Newbie
 
Post: 3
Iscritto il: 13/08/19 23:10

Sponsor
 

Re: Gestionale magazzino con più di mille articoli

Postdi alfrimpa » 14/08/19 08:45

Il link al file non funziona!
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1187
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Gestionale magazzino con più di mille articoli

Postdi zsadist » 14/08/19 08:54

alfrimpa ha scritto:Il link al file non funziona!

confermo
Adattati! L'incapacità di cambiare direzione porta alla sconfitta
zsadist
Utente Junior
 
Post: 61
Iscritto il: 04/04/19 13:48

Re: Gestionale magazzino con più di mille articoli

Postdi Anthony47 » 14/08/19 14:31

Per le istruzioni su come allegare un file:
viewtopic.php?f=26&t=103893&p=605487#p605487
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 16453
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Gestionale magazzino con più di mille articoli

Postdi primal80 » 14/08/19 14:44

Buongiorno
grazie per l'interesse
Ecco un nuovo link

https://gofile.io/?c=eufajl
primal80
Newbie
 
Post: 3
Iscritto il: 13/08/19 23:10

Re: Gestionale magazzino con più di mille articoli

Postdi Anthony47 » 14/08/19 17:12

Il tuo file contiene circa 30mila volte la funzione OGGI; questa e' "volatile", cioe' si ricalcola in continuazione, e con ciò si porta dietro il ricalcolo di tutte le celle "subordinate"; un lavoro immane.
D'altra parte un Cerca.Vert su 1000-10mila righe sarebbe un'operazione assolutamente normale.

Facciamo cosi':
-in File /Opzioni /Formule imposta transitoriamente il ricalcolo della cartella di lavoro = Manuale
-usiamo la cella Dati!A1 per inserirvi la data odierna; metti per ora la data manualmente, da tastiera
-col comado Trova, cerca "oggi()", senza virgolette; usa le opzioni In = Cartella di lavoro e Cerca in = Formule; non eseguire ancora il comando
-sul tab Sostituisci inserisci "Dati!A1", senza virgolette
-premi Sostituisci tutto e aspetta qualche secondo fino al messaggio di completamento
-in File /Opzioni /Formule riporta il ricalcolo della cartella di lavoro = Automatico

A questo punto tutti i ricalcoli dovrebbero essere grandemente velocizzati

Per popolare la cella Dati!A1 con la data, possiamo aggiungere questo codice all'interno del modulo "QuestaCartellaDiLavoro /ThisWorkbook" del vba:
Codice: Seleziona tutto
Private Sub Workbook_Open()
Sheets("Dati").Range("A1") = Int(Now)
End Sub

Per identificare la posizione del modulo vba, vedi viewtopic.php?f=26&t=103893&p=647675#p647675

In questo modo la data viene compilata automaticamente all'apertura del file (se invece tieni il file aperto da un giorno all'altro allora troveremo un altro "evento" con cui aggiornare la data)

Vedo che la tua "Tabella_articoli" (la matrice usata nel Cerca.Vert) e' il ordine crescente: questo potrebbe farci usare un'altra formulazione del Cerca.Vert, con una formula pero' leggermente piu' complicata. Ma con le righe in gioco secondo me il gioco non vale la candela.
Inoltre le versioni piu' recenti (da un anno a questa parte) hanno ridotto il divario di prestazioni tra elenchi ordinati e disordinati

Le modifiche cosi' fatte secondo me avranno gia' impatto sull'esecuzione di INSERIMENTO_DATI; per ulteriore precauzione possiamo aggiungere questi blocchi di informazioni in queste due posizioni:

Codice: Seleziona tutto
'.. codice esistente
'..
    MsgBox ("     Dati Incompleti")
    End
    End If
'PRIMO BLOCCO DA AGGIUNGERE >>>
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'<<< FINE BLOCCO
    Range("Riga_dati").Select
    Selection.Copy
'..
'..
'..
'..
    Range("A1").Select
    'Range("Data").Select

'SECONDO BLOCCO DA AGGIUNGERE >>>     
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.Calculate
'<<< FINE BLOCCO     

End Sub

Ci sarebbero ulteriori miglioramenti che potrebbero essere apportati, principalmente evitare gli spostamenti tra i fogli, ma richiede una migliore conoscenza di cosa dovrebbe fare la macro quindi mi lascio questa opzione nel caso che i miglioramenti (con quanto fin qui suggerito) non siano adeguati.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 16453
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Gestionale magazzino con più di mille articoli

Postdi primal80 » 16/08/19 16:35

Mille grazie!
E' diventato velocissimo ed ora riesco ad inserire i dati senza spreco di tempo
Resta il problema della tendina nella casella ARTICOLO.
Attualmente inserisco le iniziali del prodotto che mi occorre in C12 (foglio Archivio Movimentazioni) e nella casella C11 scorro fra le possibili soluzioni
Io vorrei invece digitare le prime lettere direttamente nella cella C11 e poi scorrendo la tendina inserire l'articolo cercato
Ho visto che si può fare ma io non ci riesco.
Inoltre cosa insolita a volte se cerco ad esempio "scat" mi esce tra i vari risultati "Vodk" (Iniziali che non corrispondono a quelle da me cercate).
Ho già provveduto ad ordinare alfabeticamente i prodotti.

Consigli?
primal80
Newbie
 
Post: 3
Iscritto il: 13/08/19 23:10

Re: Gestionale magazzino con più di mille articoli

Postdi Anthony47 » 17/08/19 20:20

Lavorando sulle celle (parlo di C11 e C12) e' difficile ottenere un funzionamento dinamico, meglio si puo' fare con altri "strumenti".

Facciamo cosi':
1) Sul foglio "Archivio Movimentazioni" aggiungi una "Casella di testo" prelevandola dai Controlli ActiveX; non preoccuparti delle dimensioni; visualizza le sue Proprietà e cambia il "(Name)" da quello di default in "TBFiltro" (senza virgolette)

2) Sullo stesso foglio inserisci anche una "Casella di riepilogo", sempre prelevandola dai Controlli ActiveX; non impostare nessuna proprietà ma cambiane il "(Name)" in "LBFiltro" (senza virgolette)

3) Adesso vai sul modulo vba del foglio "Archivio Movimentazioni": tasto dx sul tab col nome foglio; scegli Visualizza Codice. E' gia' presente del codice, tu sai a che serve e io non lo tocco.

IN TESTA AL MODULO aggiungi questo codice:
Codice: Seleziona tutto
Dim wArr, ELock As Boolean       'Rigorosamente IN TESTA al modulo

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$11" Then
'Fill WArr:
    With Sheets("Descrizione articoli")
        wArr = .Range(.Range("B12"), .Range("B10000").End(xlUp)).Value
    End With
    With Me.TBFiltro
        .Text = " "
        .Text = ""
        .Visible = True
        .Top = Target.Top
        .Left = Target.Offset(0, 1).Left
        .Width = Target.Width
        .Height = Target.Height
        .BackColor = RGB(255, 255, 0)
    End With
    With Me.LBFiltro
        .Visible = True
        .Top = Me.TBFiltro.Top + Me.TBFiltro.Height + 2
        .Left = Me.TBFiltro.Left
        .Width = Me.TBFiltro.Width * 1.5
        .Height = Target.Height * 3 + 50
        .BackColor = RGB(255, 255, 200)
    End With
    Me.TBFiltro.Activate
Else
    Me.TBFiltro.Visible = False
    Me.LBFiltro.Visible = False
End If
End Sub

Private Sub lbfiltro_Click()
'
If ELock = False Then
    Debug.Print LBFiltro.ListIndex, LBFiltro.Value
    Range("C11") = Me.LBFiltro.Value
    Range("C12").Select
Else
    Debug.Print "LOCKED", LBFiltro.ListIndex, LBFiltro.Value
End If
End Sub

Private Sub TBFiltro_Change()
Dim lArr(), I As Long, J As Long, TBTxt As String, LBH As Long
'
ELock = True
'If IsEmpty(wArr) Then
'    With Sheets("Descrizione articoli")
'        wArr = .Range(.Range("B12"), .Range("B10000").End(xlUp)).Value
'    End With
'End If
ReDim lArr(1 To UBound(wArr))
TBTxt = Me.TBFiltro.Text
For I = 1 To UBound(wArr)
    If InStr(1, wArr(I, 1), TBTxt, vbTextCompare) > 0 Then
        J = J + 1
        lArr(J) = wArr(I, 1)
    End If
Next I
If J = 0 Then J = 1
ReDim Preserve lArr(1 To J)
Me.LBFiltro.List = lArr
For I = 0 To LBFiltro.ListCount - 1
    LBFiltro.Selected(I) = False
Next I
ELock = False
End Sub


Adesso vai sul foglio ArchivioMovimentazioni, cancella il contenuto di C12 e seleziona la cella C11: dovrebbe comparirti il textbox e (sotto) il listbox con tutti i valori contenuti su 'Descrizione articoli' colonna B. I controlli solo colorati in Giallo e "giallino" per renderli piu' evidenti.
Il focus e' nel textbox; se cominci a scrivere allora il contenuto del listbox sara' man mano ridotto per includere solo le voci che "contengono" la stringa che hai digitato.
Quando vuoi, puoi cliccare per selezionare una voce dal ListBox e verra' scritta in C11; TextBox e ListBox verranno ora nascosti, fino alla prossima selezione di C11

Se non vuoi effettuare una selezione ti basta selezionare una cella diversa da C11

Se il meccanismo proposto soddisfa le tue esigenze allora potrai eliminare la Convalida che hai impostato in C11; compreso il contenuto di Colonna O, se serviva solo per la Convalida.

Fai sapere...
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 16453
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Gestionale magazzino con più di mille articoli":


Chi c’è in linea

Visitano il forum: Marius44, PcBase e 15 ospiti