Condividi:        

Macro per chiudere i raggruppamenti in tutti i fogli

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 chiudere i raggruppamenti in tutti i fogli

Postdi galbrieux2000 » 24/01/18 19:09

Ciao,
sono nuovo del forum e spero di aver seguito le regole.
Avrei bisogno di sapere se esiste una macro che mi consenta di raggruppare automaticamente tutte le colonne e righe di un foglio di lavoro. in pratica io ho un file con piu fogli. su ogni foglio ci sono raggruppamenti di righe e colonne, in pratica vorrei vedere il primo raggruppamento (tastino 1 in cima alle righe e colonne per intenderci) prima di inviare il file. Spero di essere stato chiaro.
Grazie

Giorgio
galbrieux2000
Newbie
 
Post: 6
Iscritto il: 24/01/18 18:52

Sponsor
 

Re: Macro per chiudere i raggruppamenti in tutti i fogli

Postdi Anthony47 » 24/01/18 22:25

Mi pare che si possa usare una macro come questa:
Codice: Seleziona tutto
Sub Collass()
For i = 1 To ThisWorkbook.Sheets.Count
    Sheets(i).Select
    ActiveSheet.Outline.ShowLevels ColumnLevels:=1 '*' 1=Collassare; 2=Allargare
Next i
End Sub

Va messa in un modulo standard del vba; per questo, partendo da Excel:
-premi Alt-F11 per aprire l'editor delle macro
-Menu /Inserisci /Modulo
-Copia il codice e incollalo nel frame dx del modulo appena creato

Poi all'occorrenza eseguila:
-premi Alt-F8, selezioni Collass dall'elenco di macro disponibili, premi Esegui.

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

Re: Macro per chiudere i raggruppamenti in tutti i fogli

Postdi galbrieux2000 » 25/01/18 10:55

Intanto grazie per la pronta risposta.

quando eseguo la macro mi da quest errore: "Select method of worksheet calls failed" evidenziandomi questa linea -->

Sheets(i).Select
Non so se puo essere un problema il fatto che il mio excel sia in inglese.

Grazie

Giorgio
galbrieux2000
Newbie
 
Post: 6
Iscritto il: 24/01/18 18:52

Re: Macro per chiudere i raggruppamenti in tutti i fogli

Postdi Anthony47 » 25/01/18 13:07

Il tuo file contiene fogli "Nascosti"?
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro per chiudere i raggruppamenti in tutti i fogli

Postdi galbrieux2000 » 25/01/18 14:04

No, nessun foglio nascosto.
galbrieux2000
Newbie
 
Post: 6
Iscritto il: 24/01/18 18:52

Re: Macro per chiudere i raggruppamenti in tutti i fogli

Postdi Anthony47 » 25/01/18 18:11

Modifica la macro come segue:
Codice: Seleziona tutto
Sub Collass1()
Debug.Print ActiveWorkbook.Sheets.Count, ActiveWindow.Index
Debug.Print ThisWorkbook.Sheets.Count, Windows(ThisWorkbook.Name).Index
For i = 1 To ThisWorkbook.Sheets.Count
On Error Resume Next
    Debug.Print "I: " & i
    Debug.Print 2, TypeName(Sheets(i))
    Debug.Print 3, Sheets(i).Name
    Debug.Print 4, Sheets(i).ProtectContents
    Debug.Print 5, Sheets(i).Visible
On Error GoTo 0
    Sheets(i).Select
    ActiveSheet.Outline.ShowLevels ColumnLevels:=1 '*' 1=Collassare; 2=Allargare
Next i
End Sub

Poi eseguila.
Quando va in errore, prendi nota del messaggio completo, poi premi Debug e confermami quale e' la riga evidenziata. A questo punto (mentre sei nel vba) premi Contr-g per aprire la finestra Immediata: copia tutto quello che vi e' scritto e inseriscilo nel tuo prossimo messaggio.
Dimmi anche come si intitola la finestra vba al cui interno c'e' il codice della macro (e' la parte alta colorata della finestra, comincia con "Microsoft Visual Basic, Application Edition "

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

Re: Macro per chiudere i raggruppamenti in tutti i fogli

Postdi galbrieux2000 » 25/01/18 18:55

La Riga evidenziata è:
Sheets(i).Select

messaggio dopo control G
57 1
57 1
I: 1
2 Worksheet
3 P
4 False
5 -1
I: 2
2 Worksheet
3 Check ACTUAL
4 False
5 0

La finestra si chiama: Microsoft Visual basic for Applications - test macro.xlsx [break]
galbrieux2000
Newbie
 
Post: 6
Iscritto il: 24/01/18 18:52

Re: Macro per chiudere i raggruppamenti in tutti i fogli

Postdi Anthony47 » 25/01/18 20:28

Pero' la prossima volta, se ti chiedo se ci sono fogli nascosti, prendi il tempo che serve prima di rispondere "No, nessun foglio nascosto"; d'altra parte un foglio"nascosto" non si vede a colpo d'occhio...


Invece
I: 2
2 Worksheet
3 Check ACTUAL
4 False
5 0


Da quel che vedo il foglio Check ACTUAL e' nascosto (non so se ce ne sono altri).

A questo punto io direi di fare il lavoro solo ai fogli "visibili"; per questo userai questa penultima versione di macro (le precedenti puoi cancellarle):
Codice: Seleziona tutto
Sub CollassA()
On Error Resume Next
For i = 1 To ThisWorkbook.Sheets.Count
    If Sheets(i).Visible = xlSheetVisible Then
        Sheets(i).Select
        Sheets(i).Outline.ShowLevels ColumnLevels:=1 '*' 1=Collassare; 2=Allargare
    End If
Next i
Sheets(1).Select
On Error GoTo 0
End Sub

Ti ho lasciato "scorrere" i fogli, cosi' capisci quando l'operazione e' terminata.

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

Re: Macro per chiudere i raggruppamenti in tutti i fogli

Postdi galbrieux2000 » 26/01/18 11:09

Ciao, scusami per la erronea indicazione ma ero sicuro che non ci fossero fogli nascosti. Ora la macro non da errori, funziona ma chiude solo le colonne mentre le righe rimangono aperte.

Grazie mille per l'aiuto.
galbrieux2000
Newbie
 
Post: 6
Iscritto il: 24/01/18 18:52

Re: Macro per chiudere i raggruppamenti in tutti i fogli

Postdi galbrieux2000 » 26/01/18 14:04

Inserito il testo per chiudere anche le Row.
Grazie mille per l'aiuto.
galbrieux2000
Newbie
 
Post: 6
Iscritto il: 24/01/18 18:52

Re: Macro per chiudere i raggruppamenti in tutti i fogli

Postdi Anthony47 » 26/01/18 16:04

Prego...
Per i posteri, per "racchiudere" i gruppi di riga serve ripetere con RowLevels:=1; cioe'
Codice: Seleziona tutto
        Sheets(i).Outline.ShowLevels ColumnLevels:=1 '*' 1=Collassare le colonne
        Sheets(i).Outline.ShowLevels RowLevels:=1 '*' 1=Collassare le righe      '<<< AGGIUNGERE

Alla prossima
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Macro per chiudere i raggruppamenti in tutti i fogli":


Chi c’è in linea

Visitano il forum: Nessuno e 35 ospiti

cron