Condividi:        

selezione di alcuni fogli con vba

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

selezione di alcuni fogli con vba

Postdi Luca32 » 23/05/11 16:20

ciao a tutti, chiedo il vostro aiuto dato che, pur avendo cercato ovunque, non riesco a trovare soluzione al mio problema.
Ho una cartella di lavoro excel contenete circa 40 fogli di lavoro e avrei la necessità di selezionarli tutti tranne 3 fogli fissi conteneti dei dati.
Mi spiego meglio: Non potendo eseguire il seguente comando: Sheets(Array("Foglio1", "marco", "salvatore".... poichè i nomi dei fogli di lavoro variano molto spesso, avrei bisogno di una cosa del genere: sheets.select tranne fogli di lavoro "indice" "dati" e "riepilogo".
scusate se magari non mi sono spiegato benissimo ma sono un neofita in campo di macro e vba.
ringrazio in anticipo chiunque riuscirà a risolvere tale problema.
ciao
Luca32
Newbie
 
Post: 6
Iscritto il: 23/05/11 16:06

Sponsor
 

Re: selezione di alcuni fogli con vba

Postdi Avatar3 » 23/05/11 20:28

A cosa serve selezionare 37 fogli su 40?
Devi fare delle operazioni su ogni singolo foglio esclusi i tre fogli da te indicati?
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: selezione di alcuni fogli con vba

Postdi Luca32 » 24/05/11 14:50

Esatto! devo eseguire operazioni diverse tra quei tre fogli e gli altri 37. Ovviamente non posso usare 2 cartelle diverse perchè i dati sono tutti collegati tra loro
Luca32
Newbie
 
Post: 6
Iscritto il: 23/05/11 16:06

Re: selezione di alcuni fogli con vba

Postdi Avatar3 » 24/05/11 15:21

prova questa macro, nella riga commentata inserisci ciò che devi fare esempio: Range("A2")...

Codice: Seleziona tutto
Sub FogliSel()
For I = 1 To Worksheets.Count
If Sheets(I).Name <> "indice" And Sheets(I).Name <> "dati" And Sheets(I).Name <> "riepilogo" Then
Sheets(I).Select
'<<< qui inserisci il codice che fa le operazioni sui 37 fogli
End If
Next I
End Sub
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: selezione di alcuni fogli con vba

Postdi Luca32 » 26/05/11 15:28

Grazie ma ho trovato una soluzione un po' meno tecnica! dato che i 37 fogli di lavoro son tra celle comprese tra 1:76 e A:ASQ ho spostato tutto ciò che avevo nei fogli "indice", "sommario" e "riepilogo" dalla cella ASS:77.
scusate se ho fatto perdere tempo ma ho dovuto terminare il lavoro in fretta!
Non odiatemi, avrei un altra domanda: se io volessi creare un codice che mi permetta di fare una lista dei fogli di lavoro presenti nella cartella (magari che si aggiornasse in automatico) e che quest'ultima venga scritta in un altro foglio di lavoro da me scelto, la cosa è un utopia o si può fare?
Luca32
Newbie
 
Post: 6
Iscritto il: 23/05/11 16:06

Re: selezione di alcuni fogli con vba

Postdi Avatar3 » 26/05/11 16:08

Aggiungi il foglio che vuoi usare per l'elenco dei fogli nella cartella
(io l'ho chiamato NuovoFoglio, nel caso sostituisci il nome nella macro)

inserisci in un modulo questa macro
Codice: Seleziona tutto
Sub NomeFogli()
Worksheets("NuovoFoglio").Columns("A:A").ClearContents
For I = 1 To Worksheets.Count
    If Sheets(I).Name <> "indice" And Sheets(I).Name <> "dati" And Sheets(I).Name <> "riepilogo" And Sheets(I).Name <> "NuovoFoglio" Then
        Worksheets("NuovoFoglio").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Sheets(I).Name
    End If
Next I
End Sub


Poi, quando sei nel VBA, trova tra gli oggetti di excel (non modulo) il nome del NuovoFoglio
cliccaci due volte sulla destra della finestra inserisci questo codice
Codice: Seleziona tutto
Private Sub Worksheet_Activate()
Call NomeFogli
End Sub

In pratica ogni volta che rendi attivo il NuovoFoglio avrai l'elenco aggiornato di tutti i fogli esclusi quelli inseriti nella condizione della macro.
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: selezione di alcuni fogli con vba

Postdi Luca32 » 30/05/11 18:06

Grazie, gentilissimo! ora sto creando un modulo che mi permetta di cancelare tutte le celle non bloccate in tutta la cartella di lavoro!
il codice dovrebbe essere più o meno questo:

For Each a In thisworkbook
If a.Locked = False Then
a.ClearContents
End If
Next

perchè non funziona?
Luca32
Newbie
 
Post: 6
Iscritto il: 23/05/11 16:06

Re: selezione di alcuni fogli con vba

Postdi Anthony47 » 30/05/11 21:36

Non funziona perche' la cella non e' un item della cartella di lavoro ma del Range; nel caso specifico ti consiglierei di usare UsedRange per limitare il ciclo alle sole celle in uso.
Inserirai poi il ciclo di scansione delle celle in un ciclo che lavora sul worksheet come item della collezione worksheets.
Insomma qualcosa come
Codice: Seleziona tutto
For Each ws In ThisWorkbook.Worksheets
ws.Select   
For Each a In ws.UsedRange
'le tue istruzioni
Next a
Next Ws

Se non risolvi con questi spunti allora posta ancora.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19215
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: selezione di alcuni fogli con vba

Postdi Luca32 » 31/05/11 11:33

ti ringrazio ma non mi funziona! non so più che fare! a me serve che su tutti i fogli di lavoro mi cancelli il contenuto di tutte le celle non bloccate di tutta la cartella di lavoro fatta di fogli protetti!
scusami se continuo a chiedere aiuto ma sono un novellino di vba! e sinceramente sto riscontrando non poche difficoltà! non hai anche da consigliarmi una buona guida, semplice semplice, che insegna ad usare bene vba? perchè con excel "normale" me la cavo abbastanza ( formule, registratore macro e via dicendo)!
Luca32
Newbie
 
Post: 6
Iscritto il: 23/05/11 16:06

Re: selezione di alcuni fogli con vba

Postdi Anthony47 » 31/05/11 23:30

Dovresti pero' spiegare "che cosa" hai provato ma non ti ha funzionato....

In quanto a guide per vba se entri in una grande libreria (non necessariamente una Feltrinelli o una Mondadori) troverai certamente qualche cosa di interessante, ma nessuna guida ti fa partire da zero e ti porta a cento; per questo ti servira' un po' di pratica con progetti sempre nuovi.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19215
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: selezione di alcuni fogli con vba

Postdi Luca32 » 01/06/11 14:29

ho fatto come mi hai detto tu! ma tu hai provato a vedere se funziona quel codice? qualche idea?
Luca32
Newbie
 
Post: 6
Iscritto il: 23/05/11 16:06

Re: selezione di alcuni fogli con vba

Postdi Anthony47 » 01/06/11 22:27

Perdona, mi dici come hai tradotto il suggerimento e che cosa non ti funziona, a te?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19215
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "selezione di alcuni fogli con vba":


Chi c’è in linea

Visitano il forum: danibi60 e 18 ospiti