Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Creare menu a tendina con selettore di dati

Ultimo Aggiornamento: 25/12/2016 12:18
Post: 1
Registrato il: 21/12/2016
Città: DESENZANO DEL GARDA
Età: 54
Utente Junior
google excel
OFFLINE
21/12/2016 10:17

buongiorno a tutti mi sono appena iscritto al forum e vorrei se possibile un aiuto per la creazione di un menu a tendina con la funzione di andare ad eliminare dall'elenco del menu la selezione dei dati gia inseriti fino ad esaurimento lista.
Mi spiego meglio, nella lista base ci sono 35 nomi, quando seleziono uno di questi nomi dal menu a tendina e lo inserisco nel foglio deve automaticamente non darmelo più disponibile nella successiva selezione, fino ad esaurire i nomi.
Spero di essermi spiegato ringrazio tutti anticipatamente per l'aiuto.
Grazie.
Post: 2.501
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
ONLINE
21/12/2016 11:55

Ciao Davide

Quello che chiedi si può fare ma occorre fare ricorso al VBA (non so se hai conoscenze in materia).

Ti allego file dove sul foglio1 ho inserito una convalida dati in F1 che prende i dati dalla colonna A e tramite la macro che vedi qui

vb
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range
If Not Intersect(Target, Range("f1")) Is Nothing Then
Application.ScreenUpdating = False
If Target.Value = "" Then Exit Sub
With Sheets("Foglio1").Range("A:A")
            Set Rng = .Find(What:=Range("f1").Value, _
                            After:=.Cells(.Cells.Count), _
                            LookIn:=xlValues, _
                            LookAt:=xlWhole, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlNext, _
                            MatchCase:=False)
            If Not Rng Is Nothing Then
                Rng.EntireRow.Delete
            End If
        End With
Application.ScreenUpdating = True
End If
End Sub


Nel momento in cui scegli una voce dalla Convalida Dati questa viene eliminata dall'elenco e non comparirà più nella tendina.

L'elenco in colonna A è dinamico nel senso che se aggiungi delle voci queste saranno aggiunte automaticamente alla convalida; per far questo si usa questa formula

vb
=SCARTO(Foglio1!$A$3;0;0;CONTA.VALORI(Foglio1!$A$3:$A$98);1)


Questo è solo uno spunto che andrà adattato al tuo file; sei capace di farlo?

Alfredo
Post: 1
Registrato il: 21/12/2016
Città: DESENZANO DEL GARDA
Età: 54
Utente Junior
google excel
OFFLINE
21/12/2016 14:44

grazie mille per il tuo interessamento.
Il tuo esempio è quello che mi serve ma i menu a tendina devono essere 35 sulla stessa colonna.
Ti spiego a cosa mi serve è un elenco di barche che vanno assegnate e una volta fatto non risultano più disponibili nella selezione successiva cioè nel menu a tendina subito sotto quando i 35 nomi sono esauriti non ci sono più selezioni disponibili.
Vorrei inoltre chiederti se questa macro e possibile inserirla in un foglio di google excel.
Ti allego il file.
Grazie ancora per la tua disponibilità.
Post: 2.502
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
ONLINE
21/12/2016 15:15

Re:
FanelliDavide, 21/12/2016 14.44:

Il tuo esempio è quello che mi serve ma i menu a tendina devono essere 35 sulla stessa colonna.



Mi pare che questo già ci sia.

Ma una volta scelta la barca da dove devono essere eliminate? dal foglio SELETTORE BARCHE?

FanelliDavide, 21/12/2016 14.44:


Vorrei inoltre chiederti se questa macro e possibile inserirla in un foglio di google excel..



Di Google Excel non so nulla per cui non so risponderti.


Alfredo
Post: 2
Registrato il: 21/12/2016
Città: DESENZANO DEL GARDA
Età: 54
Utente Junior
google excel
OFFLINE
21/12/2016 15:38

si dal fogli selettore barche oppure devono semplicemente non essere disponibili in tutti i menu a tendina.
grazie ancora
Post: 2.504
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
ONLINE
21/12/2016 16:16

Ciao Davide

Prova con il file allegato dove c'è questa macro che agisce su tutti i fogli tranne SELETTORE BARCHE

vb
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Rng As Range
If Sh.Name <> "SELETTORE BARCHE" Then
    If Not Intersect(Target, Sh.Range("A3:A35")) Is Nothing Then
        Application.ScreenUpdating = False
            If Target.Value = "" Then Exit Sub
                With Sheets("SELETTORE BARCHE").Range("A:A")
                            Set Rng = .Find(What:=Target.Value, _
                                            After:=.Cells(.Cells.Count), _
                                            LookIn:=xlValues, _
                                            LookAt:=xlWhole, _
                                            SearchOrder:=xlByRows, _
                                            SearchDirection:=xlNext, _
                                            MatchCase:=False)
                            If Not Rng Is Nothing Then
                                Rng.EntireRow.Delete
                            End If
                        End With
            Application.ScreenUpdating = True
        End If
End If
End Sub
[Modificato da alfrimpa 21/12/2016 16:17]

Alfredo
Post: 1.043
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
21/12/2016 16:21

Re:
Ciao

....
vb
=SCARTO(Foglio1!$A$3;0;0;CONTA.VALORI(Foglio1!$A$3:$A$98);1)


Mi permetto suggerire scarto...A2, altrimenti se si elimina la prima voce, la convalida non funziona più.

cari saluti

Domenico
Win 10 - Excel 2016
Post: 2.502
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
OFFLINE
21/12/2016 16:40

Buona sera, Davide;
leggo solo ora.

Visto che la Discussione si è aperta a nuove proposte, potresti provare con il File in allegato.



A disposizione.

Buona serata.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 3
Registrato il: 21/12/2016
Città: DESENZANO DEL GARDA
Età: 54
Utente Junior
google excel
OFFLINE
22/12/2016 10:08

Grazie a tutti per il vostro prezioso aiuto e tempo che avete dedicato al progetto.
Volevo capire meglio, il file di Giuseppe funziona perfettamente ed è quello che mi serviva ma si riferisce alla seconda formula di Alfredo? oppure è diversa, se si mi piacerebbe che me la scrivessi con i vari passaggi cosi da potermela studiare e scriverla.
Se invece è quella proposta da Alfredo vorrei solo i passaggi sempre se ne avete voglia e tempo questo per cercare di colmare la mia ignoranza.
Inoltre se avete consigli per migliorare il file sono sempre ben accetti.
Grazie ancora a tutti.
Post: 2.503
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
OFFLINE
22/12/2016 11:13

@ FanelliDavide, scrive:


Grazie a tutti per il vostro prezioso aiuto e tempo che avete dedicato al progetto.
Volevo capire meglio, il file di Giuseppe funziona perfettamente ed è quello che mi serviva ma si riferisce alla seconda formula di Alfredo? oppure è diversa, se si mi piacerebbe che me la scrivessi con i vari passaggi cosi da potermela studiare e scriverla.
Se invece è quella proposta da Alfredo vorrei solo i passaggi sempre se ne avete voglia e tempo questo per cercare di colmare la mia ignoranza ...


Buona giornata, Davide;
l'approccio che ho proposto è completamente diverso da quello proposta da @ alfrimpa (saluto Alfredo); questo si evince dall'estensione dei due File Excel.

Quello di @ alfrimpa, ha estensione .xlsm perché prevede l'uso di VBA.
Il mio ha estensione .xlsx, quindi, non prevede l'uso di VBA.

Detto ciò, nel mio File, nel Foglio di lavoro "Selettore barche" ho mantenuto le Colonne "B" e "C" nascoste; questo non per cattiveria, ma solo perchè le Formule in esse contenute, potevano creare confusione.

In Cella "B1", ho utilizzato la Formula:
=SE(CONTA.SE('Base prova'!$A$3:$A$37;A1)>=1;"";RIF.RIGA())

poi copiata nelle Celle sottostanti.

In Cella "C1", ho utilizzato la Formula matriciale:
{=SE(VAL.NUMERO(PICCOLO(SE($B$1:$B$35="";"";RIF.RIGA($B$1:$B$35));RIF.RIGA($A1:$D1)));INDIRETTO("A"&PICCOLO(SE($B$1:$B$35="";"";RIF.RIGA($B$1:$B$35));RIF.RIGA($A1:$D1)));"")}

poi copiata nelle Celle sottostanti.

Mentre la Formula in Cella "B1" è abbastanza intuitiva, per la Formula in Cella "C1", la spiegazione sarebbe molto più complessa ; magari un ... giro in barca potrebbe aiutare ...      

Scherzi a parte, almeno per il momento, credo che il File vada utilizzato così com'è; visto che non ho esguito test approfonditi,ovviamente, rimango a disposizione per eventuali correzioni.


... Inoltre se avete consigli per migliorare il file sono sempre ben accetti.


Direi che l'unico consiglio che mi permetto di suggerire è quello, nel Foglio di lavoro "base prova":
-    in una Cella inutilizzata, ad esempio la Cella "B2", inserire il Giorno Settimana (VENERDI, magari rinominato in VENERDÌ, o, SABATO, o, DOMENICA)
-    Tramite la Funzione "Indiretto", riportare nel Foglio di lavoro "base prova", gli impegni inseriti nei Foglio di lavoro (VENERDÌ, o, SABATO, DOMENICA)
In questo modo, avresti un quadro completo e dinamico degli impegni relativi al giorno selezionato.



A disposizione.

Buone Feste.

Giuseppe

P.s. Buone Feste anche all'amico @ dodo; Domenico, sono sicuro che, quatto quatto, stai seguendo questa Discussione.     
[Modificato da GiuseppeMN 22/12/2016 11:14]

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 2.505
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
ONLINE
22/12/2016 12:24

Complimenti Giuseppe ottima spiegazione [SM=g27811]

Alfredo
Post: 4
Registrato il: 21/12/2016
Città: DESENZANO DEL GARDA
Età: 54
Utente Junior
google excel
OFFLINE
25/12/2016 09:38

Grazie ancora Giuseppe per il tuo tempo e le tue spiegazioni che proverò a studiare con calma, ma ti devo chiedere di nuovo aiuto il tuo file lo devo caricare su google excell ma quando faccio il caricamento e provo ad aprirlo le funzioni non vanno inoltre cancella la colonna b forse è un problema di compatibilità?
Ho provato diverse volte copiando anche le singole colonne poi solo le formule ecc ma niente da fare...
Attendo notizie grazie e tanti auguri
Post: 2.504
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
OFFLINE
25/12/2016 10:59

Buona giornata, Davide;
purtroppo non conosco, Google Excel.
Direi di aspettare idicazioni da qualche altro Utente più esperto del sottoscritto.

Nel caso non arrivino spiegazioni soddisfacenti, assieme, potremmo provare a modificare opportunamente la struttura.

Nel frattempo, potresti provare la Soluzione VBA proposta da @ alfrimpa (che saluto) e vedere se il File è compatibile con Google Excel.

Fai sapere se hai problemi.


Buone Feste.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 2.510
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
ONLINE
25/12/2016 11:25

Ciao Davide e Giuseppe

Neanch'io conosco Google Drive ma, a naso, mi sembrerebbe difficile che le macro funzionino in quell'ambiente.

Giuseppe però il tuo file non ha macro quindi è strano che non funzioni.

Ho fatto qualche tentativo di ricerca con Google sulla compatibilità tra Excel/macro con Google Drive ma non ho trovato nulla.

Alfredo
Post: 2.505
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
OFFLINE
25/12/2016 12:18

@ alfrimpa, scrive:


... Giuseppe però il tuo file non ha macro quindi è strano che non funzioni.



Buona giornata, Alfredo;
è vero, ma ci sono:
-   Nomi di zona
-   Formule matriciali
-   svariate funzioni (VAL.NUMERO, PICCOLO, RIF.RIGA, INDIRETTO)
che potrebbero "non piacere" a Google Excel.


A disposizione.

Buone Feste.

Giuseppe


Windows XP - Excel 2000
Windows 10 - Excel 2013
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 09:58. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com