Sviluppare funzionalita su Microsoft Office con VBA Eliminare dall'avviso le date scadute

Login Registrati
Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
  • Autore
    Articoli
  • #38417 Score: 0 | Risposta

    Dodi
    Partecipante
      2 pts

      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.
      #38419 Score: 0 | Risposta

      vecchio frac
      Senior Moderator
        272 pts

        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 😁

        #38420 Score: 0 | Risposta

        dodi

          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

           

           

          #38421 Score: 0 | Risposta

          Aldo Ercolini
          Partecipante
            19 pts

            Intendi come da file allegato?

            Allegati:
            You must be logged in to view attached files.
            #38424 Score: 0 | Risposta

            vecchio frac
            Senior Moderator
              272 pts

              Aldo Ercolini ha scritto:

              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 Select
              

              La risposta a questa domanda di Dodi invece:

              dodi ha scritto:

              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.

              #38426 Score: 0 | Risposta

              Dodi
              Partecipante
                2 pts

                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. 

                 

                #38427 Score: 0 | Risposta

                vecchio frac
                Senior Moderator
                  272 pts

                  Dodi ha scritto:

                  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 If
                  #38428 Score: 0 | Risposta

                  vecchio frac
                  Senior Moderator
                    272 pts

                    Dodi ha scritto:

                    mi 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 🙂

                    #38435 Score: 0 | Risposta

                    dodi

                      grazie per l'aiuto, 

                      e ringrazio anche Aldo per il suo intervento. 

                       

                    Login Registrati
                    Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
                    Rispondi a: Eliminare dall'avviso le date scadute
                    Gli allegati sono permessi solo ad utenti REGISTRATI
                    Le tue informazioni: