Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

menù tendina e nascondi alcune righe

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

menù tendina e nascondi alcune righe

Postdi paloma » 09/09/11 22:11

Salve a tutti,
dovrei fare un lavoretto ma non so da che parte iniziare:
vorrei creare un menù a tendina da un foglio excel in modo tale che una volta fatta la selezione alcune righe dello stesso foglio di lavoro (per esempio la n. 5-6-9-12-33) non siano più visibili permettendo quindi all'utente di compilare solo le righe visibili.
Secondo foi è fattibile?
ps: ovviamente in funzione della selezione fattà tramite menù a tendina le righe visibili sono diverse di volta in volta e devono essere definite a priori
GRAZIE MILLE! ;) ;)
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Sponsor
 

Re: menù tendina e nascondi alcune righe

Postdi Flash30005 » 09/09/11 23:10

Ehm
In altre parole vorresti che ciò che è selezionato dal menu a tendina si nasconda?
e in questo caso il valore/stringa del menu a tendina a quale colonna corrisponde? (A, B, C, D?)

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: menù tendina e nascondi alcune righe

Postdi paloma » 09/09/11 23:17

Flash30005 ha scritto:Ehm
In altre parole vorresti che ciò che è selezionato dal menu a tendina si nasconda?

no no dal menù a tendina devo scegliere uno dei 20 uffici della sede ed una volta scelto in automatico vorrei vedere solo determinate righe che magari rappresentano i nominativi dei libri in gestione da quell'ufficio
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Re: menù tendina e nascondi alcune righe

Postdi Flash30005 » 09/09/11 23:29

Quindi è il contrario (come supponevo all'inizio)
Vorresti vedere tutte le righe che il codice del menu a tendina, presenta?
Se così, ripeto
in quale colonna si trova quel codice?

Puoi spiegare meglio la distribuzione dei dati, magari con un'immagine?
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: menù tendina e nascondi alcune righe

Postdi paloma » 09/09/11 23:52

sorry, non so come mettere un'immagine... provo a spiegarmi meglio semplificando con un esempio banale:
In azienda ho 3 uffici (ufficioA, ufficioB, ufficioC) i cui nomi vorrei riportare nel menù a tendina in cella A1 del primo foglio di lavoro.
Dalla cella A2 in poi il foglio riporta, fino alla cella A200, 199 centri di costo differenti (cancelleria, rimborsi spese, energia elettrica ecc.).
Nella cella B2,B3,B4 e seguenti devo chiedere a ciascun responsabile dei tre uffici che mi inserisca l'importo di quanto pensa di spendere l'anno prossimo.
Fin dall'inizio so che l'ufficioA mi deve però valorizzare solo alcune voci di costo (corrispondenti ad alcune righe), mentre l'ufficioB mi dovrà valorizzare altre voci di costo (e quindi corrispondenti ad altre righe).
Per evitare di fare tanti file differenti mi piacerebbe dare a ciacuno uno stesso file excel che visualizzi però, dopo aver selezionato dal menù a tendina l'ufficio relativo, solo ed esclusivamente i centri di costo relativi all'ufficio per facilitare pertanto la compilazione.
sono riuscito a farmi capire?? :oops:
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Re: menù tendina e nascondi alcune righe

Postdi Flash30005 » 10/09/11 00:30

Scusami Paloma
ma c'è una relazione tra gli uffici e i centri di costo?

Perché se questa relazione non c'è non è possibile fare ciò che dici

Pensavo che su una colonna tu avessi riportato l'ufficio di appartenenza ad ogni riga
in questo caso era fattibilissimo

non so se sono stato chiaro su come deve essere filtrato il foglio

Fai sapere
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: menù tendina e nascondi alcune righe

Postdi paloma » 10/09/11 00:57

flash intanto grazie mille!
questa potrebbe essere la tabella finale: vorrei avere un unico foglio con tutti i costi previsti da ciascuna unità organizzativa sapendo che alcune voci di costo (es cancelleria) sono comune a tutti gli uffici, mentre altre sono tipiche solo di qualche ufficio (es convention).
Per evitare di dare un file con centinaia di righe al personale volevo creare il menù a tendina in modo che, una volta selezionato "personale" si rendessero visibili solo le righe dei costi da considerare propri dell'ufficio in questione (cancelleria e pc nel caso in questione).

------------------Uff.Acq.---Uff.pers.--Dirett------------------totale
cancelleria---------10---------8---------- 2-----------------------20
energia el-----------30---------------------------------------------30
viaggi------------------5---------------------8-----------------------13
cellulari--------------10--------------------10----------------------20
auto-------------------10--------------------20----------------------30
convention---------------------------------20----------------------20
pc-----------------------5---------6-----------5----------------------16
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Re: menù tendina e nascondi alcune righe

Postdi Flash30005 » 10/09/11 01:57

Allora
Vai nel foglio dove hai i Dati (io ho utilizzato il Foglio1)
Inserisci in H1 una convalida da elenco selezionando A1:D1 (nel foglio)
Ora vai nel VBa del foglio1 (non modulo)
e inserisci questo codice

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H$1" Then
Call Filtra
End If
End Sub


Nel modulo inserisci la seguente macro

Codice: Seleziona tutto
Sub Filtra()
UR = Range("A" & Rows.Count).End(xlUp).Row
Rows("1:" & UR).EntireRow.Hidden = False
If Range("H1").Value = "" Then Exit Sub
For CC = 2 To 5
    If Range("H1").Value = Cells(1, CC) Then
        Col = CC
        GoTo Esci
    End If
Next CC
Esci:
For RR = 2 To UR
If Cells(RR, Col).Value = "" Then Rows(RR & ":" & RR).EntireRow.Hidden = True
Next RR
End Sub


Per sicurezza ti invio anche questo file

Fai sapere
ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: menù tendina e nascondi alcune righe

Postdi paloma » 10/09/11 22:00

ehm ehm
il file non riesco a scaricarlo (risulta temporaneamente non disponibile..) e come devo fare per andare "nel VBa del foglio1 (non modulo)"?? :oops:
grazie ancora ciao
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Re: menù tendina e nascondi alcune righe

Postdi Flash30005 » 10/09/11 22:15

Riprova perché a me lo da (dopo 45 secondi)

altrimenti lo invio in un altro server host


EDIT aggiungo ora (23:30) questo link
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: menù tendina e nascondi alcune righe

Postdi paloma » 10/09/11 22:28

OTTIMO!!
non so come ma funziona!
per caso si riescono anche a cancellare le colonne degli uffici che non c'entrano??
grazie ancora!! :)
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Re: menù tendina e nascondi alcune righe

Postdi Flash30005 » 10/09/11 22:49

Veramente avevo pensato di farlo ma non sapendo se occorreva...

Dal foglio premi ALT + F11
ti troverai in ambiente VBA con la macro Filtra

sostituisci l'intera macro con questa

Codice: Seleziona tutto
Sub Filtra()
UR = Range("A" & Rows.Count).End(xlUp).Row
Rows("1:" & UR).EntireRow.Hidden = False
Columns("B:E").EntireColumn.Hidden = False
If Range("H1").Value = "" Then Exit Sub
For CC = 2 To 5
    If Range("H1").Value = Cells(1, CC) Then
        Col = CC
        GoTo Esci
    End If
Next CC
Esci:
For RR = 2 To UR
If Cells(RR, Col).Value = "" Then Rows(RR & ":" & RR).EntireRow.Hidden = True
Next RR
For CC = 2 To 5
If CC <> Col Then Columns(CC).EntireColumn.Hidden = True
Next CC
End Sub


Fai sapere se riesci da sola altrimenti invio il file

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: menù tendina e nascondi alcune righe

Postdi paloma » 10/09/11 23:07

ce l'ho fatta...è bellissima!!!
grazie mille!! :) :)
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Re: menù tendina e nascondi alcune righe

Postdi paloma » 12/09/11 16:50

Aiutooo,
se inserisco nuove colonne e/o se sposto la casella combinata non funziona più!!
E' normale? :-?
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Re: menù tendina e nascondi alcune righe

Postdi Flash30005 » 12/09/11 20:22

E' normale che non funziona più
Un programma è soprattutto logica e rispetta delle regole poste all'inizio del progetto

se cominci a spostare colonne e celle devi adattare la macro alla nuova disposizione dati

1) La cella H1 cella di convalida elenco è controllata dal codice VBA scritto nel foglio1 (non modulo) che corrisponde a questa riga
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H$1" Then  '<<<< condizione di chiamata macro
Call Filtra
End If
End Sub


Se fai variazioni in altre celle la macro non verra eseguita
quindi cambia il codice in quella riga adattandola alla nuova cella.

Per il discorso di nuove colonne bisogna visionare lo schema dati

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: menù tendina e nascondi alcune righe

Postdi paloma » 16/09/11 23:34

Ciao Flash
ho provato a fare alcune modifiche ma senza successo.
Se possibile ti invierei un file per sapere se riesci ad riportare in C3 la cella di convalida con il menù a tendina che riporta i nomi degli uffici previsti da E4 fino a N4.
Una volta selezionato l'ufficio dalla cella C3 mi piacerebbe che venisse riportata solo la colonna relativa all'ufficio selezionato, senza quindi mostrare quelle degli altri uffici, oltre alle sole righe che risultano valorizzate per l'ufficio selezionato.
Si riesce? :?:
Se poi inserisco altre righe (tra la 6 e la 26) o altre colonne (tra la E e la N) si blocca tutto??
Grazie mille di quel che potrai fare!
Ciaociao


http://www.megaupload.com/?d=P2HKB6S3

http://www.megaupload.com/?d=P2HKB6S3
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Re: menù tendina e nascondi alcune righe

Postdi Flash30005 » 17/09/11 10:00

Per ripristinare il "comando" al variare della cella C3 devi andare nel VBA del foglio1 (non modulo) e inserire C3 invece di B1 come hai fatto quindi avere questo codice
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" Then
Call Filtra
End If
End Sub


Poi la macro deve essere modificata così
Codice: Seleziona tutto
Sub Filtra()
UR = Range("A" & Rows.Count).End(xlUp).Row
UC = Range("IV4").End(xlToLeft).Column
Rows("1:" & UR).EntireRow.Hidden = False
Range(Columns(5), Columns(100)).EntireColumn.Hidden = False
If Range("C3").Value = "" Then Exit Sub
For CC = 5 To UC
    If Range("B1").Value = Cells(1, CC) Then
        Col = CC
        GoTo Esci
    End If
Next CC
Esci:
For RR = 6 To UR
If Cells(RR, Col).Value = "" Then Rows(RR & ":" & RR).EntireRow.Hidden = True
Next RR
For CC = 5 To UC
If CC <> Col Then Columns(CC).EntireColumn.Hidden = True
Next CC
End Sub

In maniera che si adatta al numero di colonne che aggiungerai

Per la convalida di C3 devi
Selezionare C3
poi vai sul Menu
Dati -> Convalida
e modifichi solo l'ultima lettera di questo codice oppure copi questa formula
Codice: Seleziona tutto
=$D$4:$AZ$4


Fai sapere
ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: menù tendina e nascondi alcune righe

Postdi paloma » 17/09/11 10:47

Grazie Flash!
sei stato di una chiarezza estrema però non gira..o meglio gira solo se dalla cella di convalida chiamo il "direttore" per gli altri uffici non si comporta in modo molto coerente. :roll:
sorry :-?

http://www.megaupload.com/?d=JFQKTS9H
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Re: menù tendina e nascondi alcune righe

Postdi Flash30005 » 17/09/11 17:34

C'era solo una riga da modificare e visto che mi ci trovavo ho bloccato l'aggiornamento della videata durante il processo
Ti invio l'intera macro e il file

Codice: Seleziona tutto
Sub Filtra()
Application.ScreenUpdating = False
UR = Range("A" & Rows.Count).End(xlUp).Row
UC = 52
Rows("1:" & UR).EntireRow.Hidden = False
Range(Columns(5), Columns(100)).EntireColumn.Hidden = False
If Range("C3").Value = "" Then Exit Sub
For CC = 5 To UC
    If Range("C3").Value = Cells(4, CC) Then
        Col = CC
        GoTo Esci
    End If
Next CC
Esci:
For RR = 6 To UR
If Cells(RR, Col).Value = "" Then Rows(RR & ":" & RR).EntireRow.Hidden = True
Next RR

For CC = 5 To UC
If Cells(4, CC).Value <> "" And CC <> Col Then Columns(CC).EntireColumn.Hidden = True
Next CC
Application.ScreenUpdating = True
End Sub


Download File

Ciao

Nota: Se vuoi nascondere anche la colonna dei Totali (che penso non abbia senso tenerla visualizzata)
puoi inserire questa riga di codice tra le due esistenti alla fine della macro
Codice: Seleziona tutto
...
Next CC       '<<<<<<<<<<<<<<<<<<<<<<<<<<< esistente
Columns(17).EntireColumn.Hidden = True    '<<<<<<<<<<<<<<<<Aggiungere
Application.ScreenUpdating = True    '<<<<<< esistente
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: menù tendina e nascondi alcune righe

Postdi paloma » 17/09/11 21:21

grandissimo!!!
complimenti ora è perfetta, sarà un successo, devo presentarlo lunedì!
secondo te all'apertura del file è più di impatto avere un foglio bianco con le sole prime tre righe?
grazie ancora ciao notte!! :)
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "menù tendina e nascondi alcune righe":


Chi c’è in linea

Visitano il forum: albval e 130 ospiti