You are here:Home-Domande su Excel VBA e MACRO-[RISOLTO] Eliminare colonne tabella su più fogli
[RISOLTO] Eliminare colonne tabella su più fogli2019-04-27T12:04:46+02:00

Home Forum Domande su Excel VBA e MACRO [RISOLTO] Eliminare colonne tabella su più fogli

Taggato: 

Visualizzazione 6 filoni di risposte
  • Autore
    Post
    • AvatarKris_9951
      Partecipante
        Post totali: 169

        Ho un piccolo problema in quanto avrei bisogno di una Macro in grado di eliminare alcune colonne di ogni tabella di ogni foglio (ad eccezione di alcuni fogli)
        Ho creato diverse tabelle per ogni foglio di lavoro.
        Le tabelle sono tutte uguali tra di loro e disposte l’una sotto l’altra, di conseguenza anche i fogli sono tutti uguali tra di loro (ad eccezione di alcuni)
        Le colonne da eliminare sono 5 (da “AE” a “AI”).
        Potrei farlo a mano ma si tratterebbe di eliminare colonne da poco più di 250 tabelle… 
        Preciso che ho bisogno di eliminare solo le colonne delle tabelle Con Macro si potrebbe fare?Allego un  file.
        La scheda “RISULTATO” rappresenta come vorrei che venisse (ho eliminato manualmente le colonne di ogni singola tabella da “AE” a “AI”, ovvero 5 colonne in totale).Tutte le altre schede sono da modificare…
        Si potrebbe automatizzare in qualche modo questa procedura?
        Grazie mille a tutti!!
        https://www.dropbox.com/s/3d6puhp4iffkmxh/TEST2.xlsx?dl=0

        • Questo topic è stato modificato 1 anno, 5 mesi fa da AvatarKris_9951.
        • Questo topic è stato modificato 1 anno, 5 mesi fa da BySalvBySalv. Motivo: testo illegibile
        • Questo topic è stato modificato 1 anno, 4 mesi fa da sidsid.
      • BySalvBySalv
        Amministratore del forum
          Post totali: 771

          Ciao Kris, non fare copia incolla si porta dietro il formato Html.
          Hai provato ad eliminare le colonne?
          avrai visto che seleziona tutte le colonne, selezionando solo “AE:AI” questo per le celle unite della riga 13.
          inoltre le colonne in toto non si possono eliminare in quanto sono più tabelle una sopra l’altra, quindi devono essere eliminate singolarmente per ogni tabella, quindi devi fare 5 passaggi perche credo che siano 5 tabelle per foglio.
          ancora non hai specificato i nomi di quali fogli devono essere saltati.
          ed infine perche usi le tabelle? visto che sono solo 3 righe, forse per future nuove righe.

          Comunque si può fare con una macro, ma ho bisogno di sapere quali fogli saltare.

          Ciao By Sal :bye:

          Ciao By Sal (8-)
          se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

        • AvatarKris_9951
          Partecipante
            Post totali: 169

            Grazie mille per la risposta!

            non so ancora quelli da escludere.

            per il momento potremmo chiamarli “Pippo” e “pluto”.

            Grazie mille per il supporto 😊

          • sidsid
            Moderatore
              Post totali: 752

              Ciao.
              BySalv sicuramente è impegnato; ne approfitto per darti una mano

              Inanzitutto dobbiamo impostare il numero delle colonne delle tabelle; sono in totale 40 (range A:AH)
              Questo numero in pratica sarà un paracadute, nel caso eseguissi più di una volta la macro, elimineresti altre colonne; invece impostando questa opzione la macro non eliminerà nulla. Ma credo che tanto la userai solo una volta poi potrai eliminarla.

              Questo il codice da inserire in un modulo standard.(attenzione: fai una copia del file e lavora su quello; meglio evitare eventuali spiacevoli sorprese)

              Sub ELIMINA_COLONNE_TABELLE()
              Dim tbl As ListObject
              Dim n As Integer, nColonne As Integer
              Dim ws As Worksheet
              
              nColonne = 40
              Application.ScreenUpdating = False
              For Each ws In ThisWorkbook.Worksheets
                  Select Case ws.Name
                      Case "RISULTATO" 
              
                      Case Else
                          For Each tbl In ws.ListObjects
                              If tbl.ListColumns.Count = nColonne Then
                                  For n = 1 To 5
                                      tbl.ListColumns(31).Delete
                                  Next n
                              End If
                          Next tbl
                  End Select
              Next ws
              Application.ScreenUpdating = True
              End Sub

              Nel codice ho impostato l’istruzione per escludere i fogli che non vuoi siano ciclati
              Case "RISULTATO"
              Se devi aggiungere fogli che vanno esclusi dall’esecuzione, devi scriverli tra virgolette e separati da virgola; esempio
              Case "RISULTATO","pippo","pluto","minni"
              ecc…

              spero sia chiaro.

            • AvatarKris_9951
              Partecipante
                Post totali: 169

                Grazie mille ☺️!!!

              • sidsid
                Moderatore
                  Post totali: 752

                  Fai sapere se hai risolto, così chiudo la discussione.

                • AvatarKris_9951
                  Partecipante
                    Post totali: 169

                    Risolto! :-)

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