Excel e gli applicativi Microsoft Office Macro che si attiva solo dopo una data

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

    giatz
    Partecipante

      ciao a tutti

      Premetto che sono alle prime armi con vba per excel. Ho creato un foglio per gestire appuntamenti e ho aggiunto un pulsante per  inserire la data e un pulsante per cancellare il contenuto delle celle. Il mio problema è evitare la cancellazione accidentale del contenuto delle celle e vorrei che questo avvenisse solo dopo la data impostata nella cella apposita. Per esempio se ho una serie di appuntamenti per il giorno 13 dicembre vorrei che il pulsante che cancella il contenuto funzionasse a partire dal 14 dicembre

      #8081 Score: 0 | Risposta

      vecchio frac
      Senior Moderator
        272 pts

        Allora comincia col mostrare il codice che hai scritto, magari meglio se alleghi il file da cui prendere spunto per ipotizzare lo scenario.

        #8082 Score: 0 | Risposta

        giatz
        Partecipante

          eccolo!!

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

          vecchio frac
          Senior Moderator
            272 pts

            Un paio di osservazioni:

            1- non serve creare un modulo separato per ogni routine (sub o function) che crei;

            2- serve (e molto invece) specificare Option Explicit in testa ai moduli, anche quelli dell'userform.

            Dalle tue istruzioni capisco che tu vuoi cancellare il contenuto degli appuntamenti delle date antecedenti a quella che inserisci mediante l'userform calendario. Quindi:

             -mi posiziono su una scheda qualsiasi

            - attivo l'userfom calendario (pulsante "Data")

            - scelgo una data

            - questa viene messa nell'intestazione del foglio corrente

            - devo scorrere tutti gli altri fogli e, se la data in intestazione di ciascuno di essi è inferiore a quella appena scelta, devo cancellare l'intero foglio appuntamenti.

            E' questo il flusso delle operazioni?

            #8088 Score: 0 | Risposta

            giatz
            Partecipante

              Non proprio così. Ti spiego cosa intendo fare. Ogni foglio rappresenta un evento che si svolge in diverse date per tutti i mesi. In ogni foglio io prendo l'appuntamento con i miei clienti. Io vorrei evitare che premendo accidentalmente il pulsante "svuota" si perda il contenuto di tutto quanto il foglio. In realtà il pulsante "svuota" mi serve per avere un foglio pulito per lo stesso evento che si svolge nel mese successivo. Spero di essere stato chiaro. Ti ringrazio per la tua pazienza

              #8091 Score: 0 | Risposta

              vecchio frac
              Senior Moderator
                272 pts

                giatz wrote:il pulsante "svuota" mi serve per avere un foglio pulito per lo stesso evento

                Ah ecco, allora il pulsante deve solo fare una copia vuota del medesimo foglio e proportela per la compilazione, mantenendo però lo storico degli appuntamenti passati. Sarà allora necessario prevedere un meccanismo di rinomina dei fogli man mano che vengono creati (che so, aggiungendo una data). Dovremo però accorciare i nomi dei fogli perchè il limite max è trenta caratteri.

                ok appena posso ci guardo un attimo.

                #8093 Score: 0 | Risposta

                giatz
                Partecipante

                  Grazie vecchio frac , non necessariamente mi serve lo storico. A me basta che il foglio si pulisca e sia pronto per lo stesso evento del mese successivo

                  #8096 Score: 0 | Risposta

                  vecchio frac
                  Senior Moderator
                    272 pts

                    giatz wrote:pronto per lo stesso evento del mese successivo

                    Non capisco, il foglio appuntamenti sembra giornaliero... gestisci un solo evento al mese dello stesso tipo? Probabilmente sì:

                    giatz wrote:Ogni foglio rappresenta un evento che si svolge in diverse date per tutti i mesi

                    Comunque il codice che hai scritto per svuotare il foglio è ridondante, ti basta cancellare direttamente il range interessato senza fare alcun ciclo (segue esempio, con avviso di conferma):

                    Option Explicit
                    
                    Sub svuotacelle()
                        If MsgBox("Questa operazione svuota il foglio appuntamenti. Proseguire?", _
                            vbYesNo + vbInformation + vbDefaultButton2, "Attenzione") = vbNo Then Exit Sub
                        
                        Range("c3:e26").ClearContents
                    End Sub
                  Login Registrati
                  Stai vedendo 8 articoli - dal 1 a 8 (di 8 totali)
                  Rispondi a: Macro che si attiva solo dopo una data
                  Gli allegati sono permessi solo ad utenti REGISTRATI
                  Le tue informazioni: