venerdi alla fine delle ore lavorative uno dei colleghi con cui collaboro si è finalmente sbottonato lanciando qualche idea su possibili aggiunte che si potrebbero fare ad uno schema di cui ho parlato più e più volte in passato qui sul forum e che è una specie di lista che utilizziamo per registrare l'entrata e l'uscita dei camion dal magazzino.
Tra le varie cose ce ne sono state un paio che mi sono sembrate buone e che sto provando a mettere in pratica, senza successo.
L'idea sarebbe che quando in una zona sono assegnati più di un tot di camion si aprisse un MsgBox che avvisa l'operatore.
Il file su cui lavoriamo ha più fogli due di questi sono quelli interessati, infatti sul primo abbiamo la lista dei mezzi,
mentre sull'altro foglio (Zona di Carico) ho un elenco dove sono indicate le zone di carico e conteggiati i nr di camion per zona, tenendo cono delle entrate e delle uscite utilizzando la seguente formula:
- Codice: Seleziona tutto
=CONTA.PIÙ.SE(ENTRATE!P2:ENTRATE!P201;"S.MARCO"; ENTRATE!I2:ENTRATE!I201;">0"; ENTRATE!K2:ENTRATE!K201;"")
Premesso questo pensavo di sfruttare un confronto tra la cella in cui si inserisce la zona di carico sul primo foglio (Range P2:P201) e il nr di camion presenti indicati sul secondo foglio per fare apparire un msgbox nel caso in cui i camion in quella zona superassero un certo nr.
Per fare questo ho provato in due modi:
Il primo:
- Codice: Seleziona tutto
If Intersect(Target, Range("P2:P201")) Is Nothing Then
If Application.WorksheetFunction.CountIf(Sheets("Zona di Carico").Range("G4:G24"), Range("P2:P201").Value) > 0 Then
MsgBox ("Ok funziona")
End If
End If
In questo caso ho indicato come valore maggiore di 0 giusto per vedere se funzionava, ma nulla si è mosso ne MsgBox ne errori
Sono quasi certo di stare sbagliando qualche cosa nell'ordine delle istruzioni, ma dopo aver fatto diverse prove non sono riuscito a capire cosa sbaglio.
Il secondo (sicuramente più rudimentale):
- Codice: Seleziona tutto
If Range("P2:P201") = "S.MARCO" And (Sheets("Zona di Carico").Range("G18")) > 0 Then
MsgBox ("OCCHIO TROPPI CAMION!")
End If
Restituisce errore di runtime 13 ed evidenzia la seguente riga di codice:
- Codice: Seleziona tutto
If Range("P2:P201") = "S.MARCO" And (Sheets("Zona di Carico").Range("G18")) > 0 Then
Ma solo se la iserisco ad un certo punto della worksheet change perchè se la metto per ultima anche questa non si muove
Anche qui non riesco a capire cosa manca o non va.
Qui per il download del file allo stato attuale delle cose nel caso vogliate dare un'occhiata.