Condividi:        

Excel - Nascondere/scoprire righe al mutare dei valori

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

Excel - Nascondere/scoprire righe al mutare dei valori

Postdi Capog » 12/04/17 14:50

Buongiorno,
questo è il mio primo post. Premetto che ho già provato a cercare risposte, tuttavia avendo conoscenza di VBA pari a zero, non riesco a capire come adattare quanto trovato alle mie esigenze.

Quello che devo fare è: in un file excel 2010 con due fogli, nel primo foglio inserisco dei valori e dei dati di base. Il secondo foglio si dovrebbe riadattare in base alle opzioni scelte nel primo. Non sapendo usare VBA, attualmente ho inserito tramite la formattazione condizionale, che le righe da nascondere diventino grigie, tuttavia essendo un foglio di circa 500 righe, la cosa è ogni volta lunga.

Concretamente mi servirebbe (esempi):
- se il valore della cella X è minore di 3, allora nascondi tutte le righe dalla 1 alla 9;
- se il testo della cella Y contiene "Parola", allora nascondi tutte le righe dalla 10 alla 15.


Avrei bisogno anche che, quando le righe sono state nascoste, se le condizioni non sono più vere, le righe vengano scoperte.

Seconda cosa: creazione di un pulsante che mi permetta di inserire una riga sotto ad una già presente, che conservi la stessa formattazione del testo e le formule.
Esempio:
La cella C20 riporta la formula: =A20+B20 in formato Euro.
Cliccando il pulsante, viene creata la riga 21, la cui cella C21 riporta =A21+B21 in formato Euro.

E' fattibile?

Grazie mille!

Giovanni
Capog
Newbie
 
Post: 3
Iscritto il: 12/04/17 13:28

Sponsor
 

Re: Excel - Nascondere/scoprire righe al mutare dei valori

Postdi Anthony47 » 12/04/17 22:34

Ciao Giovanni, benvenuto nel forum.

Per il primo problema, qd esempio prova con questo codice da inserire nel modulo di codice del "secondo foglio":
Codice: Seleziona tutto
Private Sub Worksheet_Activate()
If Sheets("Foglio1").Range("B3") < 3 Then          '<<<<
    Rows("1:9").Hidden = True
Else
    Rows("1:9").Hidden = False
End If
'
If InStr(1, Sheets("Foglio1").Range("B10"), "parola", vbTextCompare) > 0 Then    '<<<<
    Rows("10:15").Hidden = True
Else
    Rows("10:15").Hidden = False
End If
End Sub

Tasto dx sul tab col nome del foglio, scegli Visualizza codice; inserisci il codice nel frame di dx.
Personalizza le due istruzioni marcate <<<< con i riferimenti esatti alla cella X e cella Y.

In questo modo tutte le volte che attivi quel foglio le righe saranno nascoste o visualizzate a seconda del contenuto di X e Y del primo foglio.

Per il secondo problema, questa macro inserisce una riga nella posizione corrispondente alla cella selezionata, poi vi copia i formati e le formule dalla riga superiore
Codice: Seleziona tutto
Sub FEstendi()
Dim fCell As Range
Selection.Range("A1").EntireRow.Insert
Selection.Range("A1").Offset(-1, 0).EntireRow.Copy
Selection.EntireRow.Cells(1, 1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
For Each fCell In Selection.Range("A1").Offset(-1, 0).EntireRow.SpecialCells(xlCellTypeFormulas)
    fCell.Resize(2, 1).FillDown
Next fCell
End Sub


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

Re: Excel - Nascondere/scoprire righe al mutare dei valori

Postdi Capog » 13/04/17 16:48

Ciao Anthony, ho provato, sono riuscito a farle funzionare. Grazie!

Per quanto riguarda il secondo codice, se volessi anche fargli copiare dalla riga sopra, oltre alle formule, anche il contenuto delle celle B,C,D,F?
Capog
Newbie
 
Post: 3
Iscritto il: 12/04/17 13:28

Re: Excel - Nascondere/scoprire righe al mutare dei valori

Postdi Capog » 13/04/17 17:41

Ho provato ad utilizzare il primo codice direttamente sul Foglio 1. Il problema è che non funziona in tempo reale ma devo passare al foglio 2 e poi ritornare nel foglio 1. Cosa sbaglio?

Codice: Seleziona tutto
Private Sub Worksheet_Activate()
If Sheets("Foglio1").Range("C5") < 2 Then          '<<<<
    Rows("10:11").Hidden = True
Else
    Rows("10:11").Hidden = False
End If
End Sub
Capog
Newbie
 
Post: 3
Iscritto il: 12/04/17 13:28

Re: Excel - Nascondere/scoprire righe al mutare dei valori

Postdi Anthony47 » 15/04/17 02:27

Tu hai parlato di Foglio1 e Foglio2, per questo ho "giocato" con l'evento Worksheet_Activate.
Se invece vuoi fare tutto sullo stesso foglio devi giocare con l'evento Change; ad esempio:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tAdd As String
'
tAdd = "$C$5"                                   '<<<<
If Target.Address <> tAdd Then Exit Sub
If Sheets("Foglio1").Range(tAdd) < 2 Then
    Rows("10:11").Hidden = True
Else
    Rows("10:11").Hidden = False
End If
End Sub

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


Torna a Applicazioni Office Windows


Topic correlati a "Excel - Nascondere/scoprire righe al mutare dei valori":


Chi c’è in linea

Visitano il forum: Nessuno e 86 ospiti