You are here:Home-Domande su Excel Generale-[RISOLTO] MACRO CHE MI DA ERRORE DI Routin troppo grande
[RISOLTO] MACRO CHE MI DA ERRORE DI Routin troppo grande2019-04-20T10:37:56+02:00

Home Forum Domande su Excel Generale [RISOLTO] MACRO CHE MI DA ERRORE DI Routin troppo grande

Visualizzazione 5 filoni di risposte
  • Autore
    Post
    • Avatarmaverik67
      Partecipante
        Post totali: 35

        CIAO A TUTTI HO INSERITO UNA MACRO PER CANCELLARE CON UN PULSANTE DALLA CELLA b2 DEL MESE DI GENNAIO FINO ALLA CELLA af48 DEL MESE DI DICEMBRE. SOLO CHE ASSEGNANDO LA MACRO AL PULSANTE MI DA ERRORE DI ROUTINE…. ALLEGO IL FOGLIO http://www.filedropper.com/macro

        In pratica invece di cancellare tutto con la tastiera mi rende più facile applicare di quanto menzionato come faccio a risolvere questo invoceniente e far si che pigiando il pulsante mi cancella il tutto.Grazie e colgo l’occasione per augurare Buona Pasqua a tutti.

        • Questo topic è stato modificato 1 anno, 5 mesi fa da Avatarmaverik67.
        • Questo topic è stato modificato 1 anno, 5 mesi fa da sidsid.
      • sidsid
        Moderatore
          Post totali: 752

          Ciao

          Si in effetti troppe istruzioni; non capisco perchè cancelli una cella alla volta; quantomento fai per mese

          Sub elimina()
          Dim rng As Range
          Dim n As Integer
          Dim ws As Worksheet
          
          Set ws = Sheets("Foglio1") 'nome tuo foglio
          Set rng = ws.Range("B2:AF4")
          
          For n = 1 To 12
              rng.ClearContents
              Set rng = rng.Cells(1, 1).Offset(4, 0).Resize(3, 31)
          Next n
          
          Set rng = Nothing
          Set ws = Nothing
          End Sub

          Oppure usare una singola istruzione dove concentrare tutti i 12 range mensili

          Sub elimina2()
          Dim rng As Range
          Dim ws As Worksheet
          
          Set ws = Sheets("Foglio1") 'nome tuo foglio
          Set rng = ws.Range("B2:AF4,B6:AF8,B10:AF12,B14:AF16,B18:AF20,B22:AF24," & _
                             "B26:AF28,B30:AF32,B34:AF36,B38:AF40,B42:AF44,B46:AF48")
          rng.ClearContents
          
          Set rng = Nothing
          Set ws = Nothing
          End Sub
          • Questa risposta è stata modificata 1 anno, 5 mesi fa da sidsid.
        • Avatarmaverik67
          Partecipante
            Post totali: 35

            ciao scusa devo incollare il secondo codice nel modulo? ho fatto  ma mi da sempre errore potresti dare un occhiata al foglio ed eventualmente corregerlo per favore ecco il foglio http://www.filedropper.com/prospettopresenze

            • Questa risposta è stata modificata 1 anno, 5 mesi fa da Avatarmaverik67.
          • sidsid
            Moderatore
              Post totali: 752

              2 problemi:

              1 – non hai adattato il nome del foglio; l’istruzione
              Set ws = Sheets("Foglio1") 'PROSPETTO PRESENZE
              devi modificarla in
              Set ws = Sheets("PROSPETTO PRESENZE") 'PROSPETTO PRESENZE

              2 – i riferimenti della tabella non sono gli stessi del file di prova che hai inviato; nel primo invio la tabella inizia da riga 1, mentre nel secondo la tabella inizia da riga 3

              Ti consiglio di usare il primo codice (con ciclo for) così cambi soltanto il riferimento al range iniziale.

              Il codice rivisto

              
              Sub elimina()
              Dim rng As Range
              Dim n As Integer
              Dim ws As Worksheet
              
              Set ws = Sheets("PROSPETTO PRESENZE") 'nome tuo foglio
              Set rng = ws.Range("B4:AF6")'modificato range rispetto al primo file
              
              For n = 1 To 12
                  rng.ClearContents
                  Set rng = rng.Cells(1, 1).Offset(4, 0).Resize(3, 31)
              Next n
              
              Set rng = Nothing
              Set ws = Nothing
              End Sub
              • Questa risposta è stata modificata 1 anno, 5 mesi fa da sidsid.
            • Avatarmaverik67
              Partecipante
                Post totali: 35

                Ciao si infetti hai ragione il primo file l’ho messo per prova per il semplice fatto che stavo completando il 2 file che ho postto ho fatto la modifica in questo modo: Sub elimina()

                Dim rng As Range

                Dim n As Integer

                Dim ws As Worksheet

                 

                Set ws = Sheets(“PROSPETTO PRESENZE”) ‘nome tuo foglio

                Set rng = ws.Range(“B4:AF6”) ‘modificato range rispetto al primo file

                 

                For n = 1 To 12

                rng.ClearContents

                Set rng = rng.Cells(1, 1).Offset(4, 0).Resize(3, 31)

                Next n

                 

                Set rng = Nothing

                Set ws = Nothing

                End Sub

                poi ho salvato il tutto e funziona grazie e buona pasqua se ho problemi mi farò risentire.

              • sidsid
                Moderatore
                  Post totali: 752

                  Grazie del riscontro.
                  Buona Pasqua a te e famiglia

              Visualizzazione 5 filoni di risposte
              • Devi essere connesso per rispondere a questo topic.