› Sviluppare funzionalita su Microsoft Office con VBA › Eliminare dall'avviso le date scadute
-
AutoreArticoli
-
buon pomeriggio a tutti,
come da titolo della discussione ho bisogno del vostro aiuto,
in pratica ho un file, che all'avvio mi segnala le scadenze,
ma nella schermata mi fa vedere anche le data scadute, occupando spazio nel msgbox di avvio file, considerate che ho inserite solo alcune gare scadute e in scadenza per farvi capire il funzionamento.
tempo addietro Vecchio frac mi aveva aiutato con il lampeggio delle date in scadenza,
ma ora che il file inizia a riempirsi vedo che occupando spazio con le date scadute sulla msgbox, non mi fa vedere quelle in scadenza,
pertanto vorrei eliminarle e non farle comparire all''avvio.
in pratica mi serve il vostro aiuto per eliminare le date scadute all'avvio del file non devono comparire nel msgbox.
potreste gentilmente aiutarmi?
grazie anticipatamente.
Allegati:
You must be logged in to view attached files.Se hai una schermata iniziale puoi creare un cruscotto o un pannello informativo senza usare un msgbox che ti costringe a sacrificare informazioni. E che è per interrompibile per giunta.
Altrimenti puoi creare il tuo msgbox personalizzato grande a piacere che mostri tutte le date scadute e in scadenza senza dover tralasciare niente.
Scusate sono sul telefonino e volevo rispondere prima dell'amico Albatros per batterlo sul tempo 😁
ciao Vecchio Frac
i 2 quesiti proposti sono interessanti,
ma volevo un qualcosa di più veloce, e cioè eliminare le date scadute,
senza passare da un cruscotto informativo.
poi invece per il msgbox grande a piacere non saprei come fare, ( sarebbe un altro tassello di mio approfondimento) ma in tal caso le gare in scadenza non sono mai più di una ventina (20) anche perchè nel file mi registro solo le gare che mi interessano, sicuramente non posso analizzare 10 o 20 gare tutte insieme,
altrimenti sarei un mago.
quando puoi, se dai un occhio al file che tempo addietro mi avevi dato una mano per il lampeggio delle date in scadenza,
se si può adattare il codice eliminando le date scadute, e cioè i valori positivi,
spero di esser stato chiaro.
saluti
Intendi come da file allegato?
Allegati:
You must be logged in to view attached files.Intendi come da file allegato?
Secondo me Aldo ha risolto il quesito
anche se io invece di un ulteriore If, avrei creato solo un altro ramo nel Select Case sfruttando l'esistente:
Select Case lDiff Case -7 To 0 ... Case -15 To -6 ... Case Is > 0 s = s & .Cells(lng, 1) & " --- Data Scadenza tra " & lDiff & " giorni" & vbNewLine End SelectLa risposta a questa domanda di Dodi invece:
per il msgbox grande a piacere non saprei come fare,
... non è niente di soprannaturale, è solo un userform programmabile che simula un msgbox, modale quindi non puoi fare altro finchè non lo chiudi, e non interrompibile perchè puoi intercettare gli eventi di chiusura e scaricamento.
intanto grazie per la risposta, ma la soluzione di Aldo
ha solo invertito il minore e maggiore, e mi segnala i giorni gia scaduti,
vanno eliminati i giorni con il valore positivo nel msg box
forse mi son spiegato male nella richiesta
quindi prover0' ad adattare la soluzione proposta da Vecchio Frac, ma nella prima battuta anche la proposta di vecchio frac mi restituisce tutti i valori e me li mette tutti in positivo
vecchio frac ti ricordo che mi avevi dato una mano con la soluzione blink per il lampeggio.
ha solo invertito il minore e maggiore, e mi segnala i giorni gia scaduti,
Il ragionamento però era giusto, come era giusto lasciare l'If separato e non forzandolo nel Select Case. Ho toppato due volte in una risposta sola
Il codice di Aldo è fondamentalmente giusto, basta invertire il verso della disuguaglianza per avere i giorni non scaduti:
If lDiff < 0 Then s = s & .Cells(lng, 1) & " --- Data Scadenza tra " & lDiff & " giorni" & vbNewLine End Ifmi avevi dato una mano con la soluzione blink per il lampeggio.
Però nel file che hai postato poco sopra non ci sono le routine per il lampeggio quindi non funziona niente per questo motivo.
Nel modulo2, sotto start_timer, ci devi mettere le sub blink_cell e stop_timer.
Poi devi avviare (manualmente, visto che hai omesso di farlo in Workbook_Open) la routine start_timer. Dovrebbe funzionare 🙂
grazie per l'aiuto,
e ringrazio anche Aldo per il suo intervento.
-
AutoreArticoli
