Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Nascondere colonne o righe utilizzando funzione

6,381 views
Skip to first unread message

Lobelis

unread,
Mar 31, 2004, 2:11:17 AM3/31/04
to
Ciao a tutti, sto cercando una formula che riesca a
nascondere una colonna o una riga ad una determinata
condizione:
Es. se la cella A1 è maggiore di 2 la colonna B deve
essere uguale a zero (nascosta)
Pensate che si possa fare con qualche funzione?
Grazie mille

Ignazio

unread,
Mar 31, 2004, 5:21:26 AM3/31/04
to

"Lobelis" <anon...@discussions.microsoft.com> ha scritto nel messaggio
news:1663601c416ef$5c7b8450$a101...@phx.gbl...

Per ottenere quello che chiedi devi far ricorso al VBA
La prima cosa che mi viene in mente è di generare una routine d'evento
Change legata al valore corrente della cella A1.
Se invece ti occorre una funzione, potresti creartene una che ti gestisca la
visualizzazione della riga o della colonna direttamente da Excel e che
magari ti informi della stato attuale (ad esempio: "Colonna B nascosta";
"Colonna B visibile")

--
Ciao
Ignazio


anon...@discussions.microsoft.com

unread,
Mar 31, 2004, 7:06:12 AM3/31/04
to
Grazie per avermi risposto. Mi interesserebbe la funzione,
ma come faccio gestire la visualizzazione della riga o
della colonna da Excel
Dovrei fare una funzione tipo: SE(a1>2;colonna b1=0;" ")
ma non ho idea da dove cominciare per crearla. Se potessi
aiutarmi... grazie mille

>-----Messaggio originale---

>.
>

Ignazio

unread,
Mar 31, 2004, 10:50:52 AM3/31/04
to

<anon...@discussions.microsoft.com> ha scritto nel messaggio
news:1627301c41718$8f8ea240$a501...@phx.gbl...

> Grazie per avermi risposto. Mi interesserebbe la funzione,
> ma come faccio gestire la visualizzazione della riga o
> della colonna da Excel
> Dovrei fare una funzione tipo: SE(a1>2;colonna b1=0;" ")
> ma non ho idea da dove cominciare per crearla. Se potessi
> aiutarmi... grazie mille

Per quello che so io, una funzione tipo quella che tu scrivi non esiste in
Excel.

Quando in precedenza ti scrivevo
----


Se invece ti occorre una funzione, potresti creartene una che ti gestisca la
visualizzazione della riga o della colonna direttamente da Excel e che
magari ti informi della stato attuale (ad esempio: "Colonna B nascosta";
"Colonna B visibile")

----
pensavo ad una funzione scritta in VBA che facesse ciň che chiedevi.
In realtŕ, dalle prove che ho fatto succesivamente, mi sono reso conto che
ciň non č possibile.

Comunque, se ti interessa, ti scrivo la rouitne d'evento VBA che fa al caso
tuo:
-------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Num As Double
'
On Error GoTo Mostra
If Target.Address = "$A$1" Then
Num = Range("A1")
If Num > 2 Then
Columns("B:B").EntireColumn.Hidden = True
Else
GoTo Mostra
End If
End If
Exit Sub
Mostra:
Columns("B:B").EntireColumn.Hidden = False
End Sub
-------
per inserirla devi fare tasto destro sul foglio in questione e scegliere
"visualizza codice", quindi inserire il codice scritto.
Quindi torna ad Excel e comincia ad inserire in A1 dei valori (1,2,3, ...) o
anche del testo (a,b, ...) per vedere come funziona.


--
Ciao
Ignazio


Ignazio

unread,
Mar 31, 2004, 11:45:00 AM3/31/04
to

"Ignazio" <i_putign...@SeScriviAvirgilio.it> ha scritto nel messaggio
news:%23wkZgfz...@TK2MSFTNGP12.phx.gbl...

> per inserirla devi fare tasto destro sul foglio in questione

č piů preciso dire:
"per inserirla devi fare tasto destro sulla linguetta del foglio in
questione"


anon...@discussions.microsoft.com

unread,
Apr 1, 2004, 1:05:26 AM4/1/04
to
Accidenti! Funziona veramente.
Grazie mille, adesso cercherò di adattarla alle mie
esigenze. Sei stato gentilissimo
Ciao

>-----Messaggio originale---


>
>"Ignazio" <i_putign...@SeScriviAvirgilio.it> ha
scritto nel messaggio
>news:%23wkZgfz...@TK2MSFTNGP12.phx.gbl...
>
>> per inserirla devi fare tasto destro sul foglio in
questione
>

>è più preciso dire:


>"per inserirla devi fare tasto destro sulla linguetta del
foglio in
>questione"
>
>

>.
>

anon...@discussions.microsoft.com

unread,
Apr 1, 2004, 2:01:47 AM4/1/04
to
Ciao Ignazio, scusami se approfitto ancora della tua
gentilezza, ma la routine che mi hai creato va benissimo
per nascondere una riga o una colonna, ma ho cercato di
adattarla al foglio che voglio creare, ma non credo che
sia possibile utilizzarla per nascondere più righe.
Il foglio che sto cercando di creare, vorrei che facesse
questo:
Ho un elenco di 100 nominativi (a1:a100), e vorrei che
ogni riga corrispondente alla colonna B (B1;B2,ecc.) si
nascondesse nel caso in cui il valore fosse uguale a 0.
Per essere più chiaro faccio un esempio:
a b c d
1 Nom. 1 1
2 Nom. 2 0
3 Nom. 3 4
4 Nom. 4 0
in questo caso, vorrei che la riga 2 e 4 si nascondessero
automaticamente, ma le righe da nascondere potrebbero
essere 5, come potrebbero essere 100 (a seconda del valore
che viene fuori sulla colonna B). Immagino che non sia una
cosa semplice, ma se si potesse escogitare qualcosa, mi
risolveresti un grande problema.
Ciao e grazie ancora

>-----Messaggio originale---


>
>"Ignazio" <i_putign...@SeScriviAvirgilio.it> ha
scritto nel messaggio
>news:%23wkZgfz...@TK2MSFTNGP12.phx.gbl...
>
>> per inserirla devi fare tasto destro sul foglio in
questione
>

>è più preciso dire:


>"per inserirla devi fare tasto destro sulla linguetta del
foglio in
>questione"
>
>

>.
>

Ignazio

unread,
Apr 1, 2004, 4:31:29 AM4/1/04
to

<anon...@discussions.microsoft.com> ha scritto nel messaggio
news:169c901c417b7$333fcdd0$a501...@phx.gbl...

> Ho un elenco di 100 nominativi (a1:a100), e vorrei che
> ogni riga corrispondente alla colonna B (B1;B2,ecc.) si
> nascondesse nel caso in cui il valore fosse uguale a 0.
> Per essere più chiaro faccio un esempio:
> a b c d
> 1 Nom. 1 1
> 2 Nom. 2 0
> 3 Nom. 3 4
> 4 Nom. 4 0
> in questo caso, vorrei che la riga 2 e 4 si nascondessero
> automaticamente, ma le righe da nascondere potrebbero
> essere 5, come potrebbero essere 100 (a seconda del valore
> che viene fuori sulla colonna B).

Per poterti aiutare avrei bisogno di alcune informazioni.
Nella colonna B i numeri li inserisci manualmente o sono il risultato di
formule?
Se li inserisci manualmente, quando ad esempio nella cella B2 scrivi 0 e la
riga 2 scompare, non hai succesivamente l'esigenza di scrivere un valore
diverso da zero e quindi far comparire nuovamente la riga 2?
Se è così, come fai dato che la riga 2 è nascosta?
Una possibile soluzione potrebbe essere quello di utilizzare 2 Fogli, uno
per l'Input (in cui tutte le righe sono visibili) ed un'altro per l'Output
(in cui compaiono solo le righe dove nella colonna B il numero è diverso da
zero), ma non so se questo è compatibile con il resto del tuo lavoro.
Fammi sapere

--
Ciao
Ignazio

anon...@discussions.microsoft.com

unread,
Apr 1, 2004, 5:15:51 AM4/1/04
to
Ti dò le informazioni che mi hai richiesto:

Per poterti aiutare avrei bisogno di alcune informazioni.
Nella colonna B i numeri li inserisci manualmente o sono
il risultato di
formule?

SONO IL RISULTATO DI FORMULE (comunque posso convertirli
con una formula in numeri)

Se li inserisci manualmente, quando ad esempio nella cella
B2 scrivi 0 e la
riga 2 scompare, non hai succesivamente l'esigenza di
scrivere un valore
diverso da zero e quindi far comparire nuovamente la riga
2?

QUELLO CHE COMPARE NELLA CELLA B2 E' UN VALORE RICHIAMATO
DA UN ALTRO FOGLIO, QUINDI VARIA AUTOMATICAMENTE

Se è così, come fai dato che la riga 2 è nascosta?
Una possibile soluzione potrebbe essere quello di
utilizzare 2 Fogli, uno
per l'Input (in cui tutte le righe sono visibili) ed
un'altro per l'Output
(in cui compaiono solo le righe dove nella colonna B il
numero è diverso da
zero), ma non so se questo è compatibile con il resto del
tuo lavoro.
Fammi sapere

Spero di essermi spiegato abbastanza, se hai bisogno di
altri chiarimenti...sono qui
Grazie ancora, ciao

>-----Messaggio originale---

>.
>

Ignazio

unread,
Apr 1, 2004, 11:28:48 AM4/1/04
to

<anon...@discussions.microsoft.com> ha scritto nel messaggio
news:16b8b01c417d2$4f2a74d0$a301...@phx.gbl...

> SONO IL RISULTATO DI FORMULE (comunque posso convertirli
> con una formula in numeri)

Vediamo se ho capito bene.
Nel range compreso tra la cella B1 e la cella B100 ci sono delle formule che
danno come risultato dei numeri.
Nel caso in cui questi numeri sono uguali a zero, vuoi che la relativa riga
venga nascosta.
Se è così, supponiamo che il foglio in questione sia il Foglio2 (se il nome
è diverso nel codice che segue sostituisci Foglio2 con il nome che stai
utilizzando).
Ecco il codice che potresti utilizzare (da inserire in un modulo):
-------
Sub NascondiZeri()
Dim Zona As Range
Dim Cella As Range
'
Set Zona = Sheets("Foglio2").Range("B1:B100")
For Each Cella In Zona
If Cella.Value = 0 Then
Cella.EntireRow.Hidden = True
Else
Cella.EntireRow.Hidden = False
End If
Next
End Sub
-------
Questa routine va lanciata manualmente o associata ad un pulsante.
Se la volessi renderla automatica, la potresti legare all'evento Calculate
del foglio in questione inserendovi il codice:
-------
Private Sub Worksheet_Calculate()
NascondiZeri
End Sub
-------
Tieni comunque presente che se utilizzi questo evento, ogni volta che nel
foglio viene eseguito il calcolo di una formula, il codice viene eseguito.
Quindi, se nel foglio sono presenti altre formule, la routine potrebbe
essere eseguita anche quando non sarebbe necessario, con conseguente inutile
rallentamento del calcolo.
Fammi sapere se hai risolto.

--
Ciao
Ignazio


anon...@discussions.microsoft.com

unread,
Apr 2, 2004, 4:11:16 AM4/2/04
to
Grazie mille Ignazio, la routine va benissimo così e credo
di aver risolto uno dei miei tanti problemi.
Mi complimento ancora per la tua profonda conoscenza del
VB, probabilmente ti disturberò ancora per i miei continui
problemi.
Ciao e grazie ancora

>-----Messaggio originale---
>

>.
>

Ignazio

unread,
Apr 3, 2004, 2:38:29 PM4/3/04
to

<anon...@discussions.microsoft.com> ha scritto nel messaggio
news:178f301c41892$74073de0$a101...@phx.gbl...

> Mi complimento ancora per la tua profonda conoscenza del VB

Ti ringrazio, ... ma non è il caso di esagerare.
Non sono affatto un "profondo conoscitore" del VBA.

> probabilmente ti disturberò ancora per i miei continui problemi.

"disturba" pure :-)

--
Ciao
Ignazio


hyzo...@gmail.com

unread,
Nov 13, 2019, 3:07:12 AM11/13/19
to
Buon giorno a tutti , in particolare ad ignazio.
Volevo chiedere aiuto :
in foglio Excel vorrei che ad una determinata condizione , nello specifico se viene inserito NO , un gruppo determinato di colonne venisse nascosto.
Ho provato a prendere un VBA di ignazio e cambiando alcuni valori , ma non succede nulla, probabilmente ho sbagliato io qualche inserimento, non sono molto pratico . chiedo aiuto per questa problematica.
grazie fabio

marco conti

unread,
Jan 11, 2024, 10:34:06 AM1/11/24
to
Buongiorno
Approfitto dell'argomento per chiedere una mano.
in un foglio excel ho realizzato un diagramma di gant, dove ogni colonna corrisponde quindi a un giorno. Vorrei realizzare una funzione/codice che in base allo stato di una cella (es: SI o NO) nasconda o non nasconda le colonne a cui corrispondono i sabati e le domeniche.
Spero mi possiate dare una mano

Grazie per l'aiuto

Marco.
0 new messages