- Codice: Seleziona tutto
righe = Cells(Rows.Count, 1).End(xlUp).Row
For I = righe To 1 Step -1
Cells(I, 2).Select
If Selection.Value = "N" Then ActiveSheet.Outline.ShowLevels RowLevels:=1 ' 1 collassa 2 espandi
Next I
Salve a tutti, in questi giorni di Burian ho bisogno di un aiuto per finire una cosa che rimandavo da tempo... Su un foglio protetto (perchè non voglio si possa vedere il contenuto di alcune celle e per evitare che alcune vengano sovrascritte), vorrei poter espandere o collassare alcune righe che sono singolarmente raggruppate. (non tutte solo quelle che presentano un certo carattere in una apposita cella della stessa riga)
Faccio un esempio con una riga : Prendiamo a caso la riga 15, se l'utente mette il carattere (N) come nascondi in (B15), la macro dovrebbe far collassare tale riga, altrimenti la deve lasciare espansa.
In pratica se l'utente inserisce il carattere N e preme sull' apposito pulsante che lancia la macro, questa fa collassare la riga, mentre se trova la cella vuota lascia la riga espansa.
Se possibile vorrei chiedere se si puo' introdurre una seconda opzione, cioe il carattere (V) nel senso che se l'utente inserisce (N) la riga collassa , ma poi se in un secondo momento l'utente decide di espandere la riga per riconsultarne il contenuto allora basta che metta il carattere (V) come visibile al posto della (N) di nascondi e la riga si espande nuovamente.
Note:
Tutte le righe del foglio come si vede hanno la funzione di raggruppamento
Da una riga all' altra vi è una riga vuota, in alcuni casi potrebbero esserci più di una riga vuota, perchè c'è una macro che messa in funzione cancella le righe che contengono dati che non servono più.
Il foglio ha anche una macro che predispone nuove righe in fondo a quelle già presenti.
Sotto posto un' immagine del foglio di calcolo dove si vedono le varie righe tutte espanse.
P.S Per la cronaca lo spezzone di codice proviene da una macro di Anthony.... eccetto la penultima riga, ecco perchè non funziona
GRAZIE per la vostra attenzione e buona serata.