Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

MACRO PER ELIMINAZIONE DI COLONNE IN N CARTELLE

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

MACRO PER ELIMINAZIONE DI COLONNE IN N CARTELLE

Postdi luca62 » 04/01/16 18:13

Ho il seguente problema.
Dato un file complesso con tanti fogli di lavoro, voglio andare ad eliminare le colonne M,N,O,P,Q,R,S,T,V
in tutti i fogli tranne gli ultimi 8 ed il primo.
Tutti questi fogli sono protetti, quindi li devo prima sproteggere, poi eliminare le colonne e riproteggere ancora
con la registrazione della macro in un singolo foglio :
[code][/code]
Sub eliminacolonne()
'
' eliminacolonne Macro
'

'
ActiveSheet.Unprotect
Columns("M:T").Select
Selection.Delete Shift:=xlToLeft
ActiveWorkbook.Protect Structure:=True, Windows:=False
End Sub

ma come faccio a dirgli di fare questo in tutti i fogli tranne il primo e gli ultimi 8?
luca62 office2007 window7
luca62
Utente Senior
 
Post: 158
Iscritto il: 23/12/12 14:54

Sponsor
 

Re: MACRO PER ELIMINAZIONE DI COLONNE IN N CARTELLE

Postdi alfrimpa » 04/01/16 18:36

Ciao Luca

Potresti con un For Each ciclare i fogli di lavoro del file e se il nome dei fogli è diverso da quello del primo e degli ultimi 8 eseguire il tuo codice es.

Codice: Seleziona tutto
Dim sh as Worksheet
For each sh in ThisWorkbook
      If sh.Name <> "Nome primofoglio" Or sh.Name <> "Nome ottavofoglio"...poi aggiungi gli altri..Then
             Tuo codice
      End If
Next sh


P.S. sono senza pc quindi il codice non l'ho testato
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 842
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: MACRO PER ELIMINAZIONE DI COLONNE IN N CARTELLE

Postdi luca62 » 04/01/16 19:14

non va bene perchè questa macro la voglio poi applicare ad altri n file che hanno il nome dei fogli diversi,mentre rimane sempre uguale la posizione dei fogli per i quali non voglio portare modifiche (il primo e gli ultimi otto)
luca62 office2007 window7
luca62
Utente Senior
 
Post: 158
Iscritto il: 23/12/12 14:54

Re: MACRO PER ELIMINAZIONE DI COLONNE IN N CARTELLE

Postdi Marius44 » 04/01/16 21:42

Se, come dici, la POSIZIONE dei fogli è sempre la stessa invece di mettere i nomi come ti ha suggerito alfrimpa (ciao Alfredo) metti il numero del foglio. Per esempio (prova a testarla tu perchè io non posso farlo adesso)
Codice: Seleziona tutto
Dim sh as Worksheet
For i = 2 to worksheets.count-8   'dal secondo fino all'ultimo foglio meno 8
     With sh(i)   
            Tuo codice
     End With
Next i


Prova e fai sapere. Ciao,
Mario
Marius44
Utente Senior
 
Post: 143
Iscritto il: 07/09/15 22:00

Re: MACRO PER ELIMINAZIONE DI COLONNE IN N CARTELLE

Postdi luca62 » 05/01/16 07:00

scusa la mia ignoranza:

Sub eliminacolonne()
'
' eliminacolonne Macro
Dim sh as Worksheet

For i = 2 To Worksheets.Count - 8 'dal secondo fino all'ultimo foglio meno 8
With sh(i)
ActiveSheet.Unprotect
Columns("M:T").Select
Selection.Delete Shift:=xlToLeft
ActiveWorkbook.Protect Structure:=True, Windows:=False
End Sub

End With
Next i

mi si blocca sul sh(i) che ci devo mettere?
luca62 office2007 window7
luca62
Utente Senior
 
Post: 158
Iscritto il: 23/12/12 14:54

Re: MACRO PER ELIMINAZIONE DI COLONNE IN N CARTELLE

Postdi alfrimpa » 05/01/16 11:08

Ciao Luca

Hai dichiarato la variabile i?

Dim i as Integer
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 842
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: MACRO PER ELIMINAZIONE DI COLONNE IN N CARTELLE

Postdi Anthony47 » 05/01/16 21:13

Sviluppando il suggerimento di Marius:
Codice: Seleziona tutto
Sub eliminacolonne()
' eliminacolonne Macro
'
For i = 2 To Worksheets.Count - 8 'dal secondo fino all'ultimo foglio meno 8
    Sheets(i).Select
    ActiveSheet.Unprotect
    Columns("M:T").Select
    Selection.Delete Shift:=xlToLeft
    ActiveSheet.Protect
'    ActiveWorkbook.Protect Structure:=True, Windows:=False    '??? SEI SICURO???
Next i
End Sub

Ho tolto l'istruzione ActiveWorkbook.Protect, se serve inseriscila subito prima di End Sub 8senza l'apostrofo iniziale)

Ciao a tutti.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "MACRO PER ELIMINAZIONE DI COLONNE IN N CARTELLE":


Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti