You are here:--Help! Macro per ora esatta che si riesegue ogni volta che applico un filtro!
Help! Macro per ora esatta che si riesegue ogni volta che applico un filtro!2018-04-18T13:57:15+01:00

Home Forum Domande su Excel VBA e MACRO Help! Macro per ora esatta che si riesegue ogni volta che applico un filtro!

  • Autore
    Articoli
  • AvatarStefano77
    Partecipante
      Post totali: 7

      Ciao a tutti!

      E’ un piacere conoscervi! Premetto di essere un neofita a livello di VBA e Macro, mi ci sto cimentando da autodidatta ma ovviamente non sono in grado di padroneggiarne adeguatamente l’impiego. Mi scuso sin d’ora se le mie domande saranno perciò banali.

      Vengo al punto: sto creando un file di controllo nel quale ho inserito una macro piuttosto semplice.

       

      Mi serve per imprimere automaticamente nel file l’ora corrente al verificarsi di certe condizioni (all’inserimento di un dato in determinate celle deve restituire in altre celle dedicate di una colonna l’ora in cui detto inserimento é effettivamente avvenuto):

       

      Sub Orain()

      ActiveCell.FormulaR1C1 = Now()

      End Sub

       

      Il mio problema nasce ora. Al foglio ho successivamente applicato un normalissimo filtro per analizzare i vari dati che vengono inseriti tra i quali quelli che “lanciano” la macro allorchè vengono registrati. Ora però ogni volta che mi servo di questo filtro la macro viene rieseguita per tutte le celle resettando di fatto i diversi orari ricavati mediante i precedenti singoli inserimenti dei dati. In pratica ogni volta che seleziono un filtro ottengo come risultato che ogni cella si riaggiorni all’ora in cui ho impiegato il filtro stesso cancellando tutto lo storico degli orari …

      Sempre che io mi sia riuscito a spiegare in modo comprensibile, qualcuno sarebbe così gentile da darmi una mano per trovare una soluzione affinchè la macro possa lavorare in modo indipendente dal filtro e non attivarsi ad ogni nuova selezione del filtro sul foglio di lavoro?

      • Questo argomento è stato modificato 1 anno, 7 mesi fa da Avatar Stefano77.
    • sidsid
      Moderatore
        Post totali: 723

        Ciao e benvenuto.
        Sarebbe ideale inserire sempre un file di prova, depurato dei dati sensibili.
        Per caricare un file vai nella sezione “come fare”.
        Ciao e buona permanenza.

      • AvatarStefano77
        Partecipante
          Post totali: 7

          Ciao e scusa, hai perfettamente ragione, ecco (spero sia tutto ok!):

          http://www.filedropper.com/park_2

           

        • sidsid
          Moderatore
            Post totali: 723

            Per capire il problema che riscontri, sarebbe il caso che tu spiegassi nel dettaglio le operazioni che effettui in modo dettagliato.
            Esempio:
            1 …apro il file
            2 …mi sposto sul foglio “x”
            3 … continua tu fino al verificarsi del problema

          • AvatarStefano77
            Partecipante
              Post totali: 7

              Certamente, scusa.

              Provvedo.

              1) Apro il file “Park” che vi ho sottoposto (é un foglio singolo);

              2) “C”, “F” ed “I” sono colonne le cui celle si servono della stessa macro;

              3) La macro di cui sopra:

              Sub Orain()

              ActiveCell.FormulaR1C1 = Now()

              End Sub

              é attivata da una formula condizionale al verificarsi di certi presupposti nelle celle di “B” (per “C”), “E” (per “F”), “H” (per “I”)

              La ratio é imprimere automaticamente nelle celle dedicate di “C”, “F” ed “I” l’ora esatta in cui si verificano certe condizioni (“B” indica la zona di un parcheggio ove viene ubicata una vettura, “C” é l’ora di ingresso di detta vettura nella zona. “D” sarebbe la richiesta di far parcheggiare una vettura in determinate zone ed “F” l’ora in cui tale richiesta viene evasa. La colonna “G” indica il ritiro della vettura da parte del proprietario, in “I” l’ora in cui il ritiro avviene);

              4) se mi servo quindi del flag posto nelle celle della colonna “D” registro in “F” l’ora corrente in cui effettuo l’azione. Stesso meccanismo utilizzando il flag nelle celle della colonna “G” (registro l’ora in “I”). Inserendo invece in “B” una qualsiasi lettera registro l’ora in “C”. Spero il funzionamento sia chiaro;

              5) Nella riga “1” del foglio elettronico ho a questo punto inserito un semplicissimo filtro.

              Qualsiasi selezione effettui su questo filtro (da qualsiasi colonna!) ottiene purtroppo l’effetto di farmi smarrire tutti i dati degli orari precedentemente accumulati mediante l’ordinaria compilazione del file. Questa azione infatti ha l’effetto di riaggiornare tutte le celle che contengono un orario all’ora esatta in cui ho appunto selezionato il filtro.

              Io vorrei poter lavorare tranquillamente sul filtro lasciando inalterati i dati contenuti nelle celle di “C”, “F” ed “I”.

              Mi auguro di aver chiarito il  mio problema.

              Grazie della pazienza!

            • sidsid
              Moderatore
                Post totali: 723

                Ho capito il problema; appena ho modo di stare al pc do un’occhiata.
                In ogni caso chiunque può partecipare alla risoluzione del problema.
                Ciao.

              • sidsid
                Moderatore
                  Post totali: 723

                  Ciao
                  Quella che viene eseguita non è una macro ma un funzione, nella fattispecie una UDF (acronimo inglese di “funzione definita dall’utente”)

                  Public Function Orain() As Variant
                      Orain = Now()
                  End Function

                  Il problema è che questa funzione viene ricalcolata ogni volta che attivi i filtri; credo che non ci si possa fare nulla se non cambiare approccio

                • AvatarStefano77
                  Partecipante
                    Post totali: 7

                    Ciao e grazie mille per il tuo supporto.

                    Hai qualche suggerimento?

                  • sidsid
                    Moderatore
                      Post totali: 723

                      Per te le ceckbox sono indispensabili o puoi farne a meno?
                      Nel caso ti propongo di usare il doppioclick sulla cella per inserire l’orario.
                      Se per te va bene ti posso fare un esempio.

                    • AvatarStefano77
                      Partecipante
                        Post totali: 7

                        Ciao e scusa del ritardo con cui mi rifaccio vivo, giornate un pò problematiche… :wacko:

                        Le check box erano un’idea ma non sono indispensabili, accetto più che volentieri altri suggerimenti per aggirare l’ostacolo, anzi, te ne sono grato in anticipo!

                      • sidsid
                        Moderatore
                          Post totali: 723

                          Ho visto che in colonna B inserisci delle lettere; sono casuali o fanno parte di un elenco?

                        • AvatarStefano77
                          Partecipante
                            Post totali: 7

                            Si tratta di abbreviazioni indicanti delle aree di lavoro (A, B, G, BAL, CM, PC).

                            Ipotizzavo di inserirli in un menù a tendina terminata l’impostazione del foglio di lavoro ma non é una cosa essenziale…

                          • sidsid
                            Moderatore
                              Post totali: 723

                              Quindi se inserisci uno di quei valori in colonna B, nella C inserisci l’ora corrente

                              Una possibile soluzione
                              https://app.box.com/s/mfzajmneupduiytr6uu28n05igauna1v

                              In pratica inserisci quello che vuoi nella colonna B (poi metterai una convalida con elenco) , e in C inserisce l’ora corrente; se cancelli il valore in B, si cancella anche in C

                              Invece per le colonne F e I , basta fare doppioclick in una qualsiasi cella di quelle colonne, per inserire l’ora corrente.

                              Fa sapere, ciao

                              • Questa risposta è stata modificata 1 anno, 7 mesi fa da sid sid.
                            • AvatarStefano77
                              Partecipante
                                Post totali: 7

                                Ciao e grazie!

                                Appena sono davanti al pc ti dico!

                              Devi essere loggato per rispondere a questa discussione.

                              Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

                              Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

                              Chiudi