You are here:--[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

  • Autore
    Articoli
  • Avatarmaverik67
    Partecipante
      Post totali: 11

      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 argomento è stato modificato 2 mesi, 3 settimane fa da Avatar maverik67.
      • Questo argomento è stato modificato 2 mesi, 3 settimane fa da sid sid.
    • sidsid
      Moderatore
        Post totali: 711

        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 2 mesi, 3 settimane fa da sid sid.
      • Avatarmaverik67
        Partecipante
          Post totali: 11

          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 2 mesi, 3 settimane fa da Avatar maverik67.
        • sidsid
          Moderatore
            Post totali: 711

            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 2 mesi, 3 settimane fa da sid sid.
          • Avatarmaverik67
            Partecipante
              Post totali: 11

              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: 711

                Grazie del riscontro.
                Buona Pasqua a te e famiglia

              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