Eliminare un valore già scelto da un secondo elenco a discesa.

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
mugiu
00sabato 1 dicembre 2007 13:37
Ciao a tutti.
Scusate, ma non sono riuscito a trovare nel forum una discussione già affrontata per risolvere il mio piccolo problema.
Nella colonna A ho un elenco di nomi (ad esempio squadre di calcio). Nella cella B1 ho realizzato un elenco a discesa delle squadre con Dati/Convalida/Elenco. Fin quì tutto ok.
Ora vorrei visualizzare in C1 un elenco a discesa che mi faccia scegliere tra tutte le squadre, tranne quella già scelta in B1. Cioé vorrei che nel menù a tendina non sia visualizzata quest'ultima squadra. Vorrei evitare soluzioni che semplicemente rilevino l'errore in caso di inserimento doppio: vorrei proprio non vedere quest'ultima nell'elenco a discesa.
Qualcuno può aiutarmi oppure, se la discussione è stata già affrontata, fornirmene il link, per favore?
Allego il piccolo file. Grazie.
+aurelio+
00sabato 1 dicembre 2007 14:21
mi viene questa:

- in D1: =SE($B$1=A1;"";A1) .. e copia giù di seguito

- fai un nuovo elenco (convalida) in C1 facendo rif. al range in D

- per la squadra già in C1 di darà "Nullo" e se lo selezioni - x caso - in C1 non apparirà niente.

ciao

T3T
00sabato 1 dicembre 2007 14:27


Ciao mugiu,
io avrei pensato di creare un'altro elenco che tiene conto della squadra inserita in B1 per cui quando apri l'elenco a discesa in C1 ti mostra il secondo elenco privo della squadra in B1.

esempio:
nella cella E1 inserisci la formula

=SE($B$1=A1;"";A1)

e trascini fino ad E5.

Nomini tale range come "elenco2".

Nella cella C1 Dati -> Convalida, rinomini "elenco" con "elenco2".

Nascondi poi la colonna E ed il gioco è fatto.

Ciao

Mario

T3T
00sabato 1 dicembre 2007 14:29


QUESTA E' TELEPATIA

Ciao Aurelio

Mario


mugiu
00sabato 1 dicembre 2007 14:55
Ciao e grazie ad entrambi. Ma voi due pensate in serie? [SM=x423026]
Naturalmente funziona, ma non c'è modo di eliminare quella fastidiosa cella vuota nel secondo elenco? Dato che lavorerò con elenchi molto lunghi, lo scopo era proprio quello di diminuirne la lunghezza.
Grazie.
T3T
00sabato 1 dicembre 2007 16:05


Ciao mugiu,

per quel minimo di esperienza che ho di Excel ritengo che si possa fare ma utilizzando il codice VBA.

Come ho un attimo di tempo ci provo e nel caso ti faccio sapere.

Ciao

Mario

+aurelio+
00sabato 1 dicembre 2007 17:42
rientro adesso e vedo l'incrocio.

Ciao caro Mario. Scusami ma in un altro post di questa mattina ( invero un po' presto ) ho tralasciato di salutarti assieme al grande by Sal (ciao maestro), perdonatemi.

Pensavo anche io al vba.

Quindi, mugiu, prendi nota che Mario lo farà. In fondo di fronte a un problema é come un Pittsbull.. non lo molla. Mario non volevo darti della bestia... intesi? di questi periodi ci si può cascare.

Ma adesso vorei distruggere il tuo obbiettivo caro mugiu. Vediamo se ce la faccio. Se ci riesco perdonami e te lo chiedo in anticipo. Scherzo é una riflessioen operativa.

Tu parli di un elenco lungo ad io come goffo praticone mi chiedo, ma se l'elenco é tanto lungo quanto fastidio dà un dato in + o -. Va bene la ricerca (e sono curioso a sapere cosa propone Mario) x un esercizio di ricerca di possibilità che apre ad altre applicazioni ed esperiemze. Ma non va assolutamente bene come vizietto operativo. Ci si rovina l'anima e la giornata. Ci sono cascato diverse volte e per questo lo posso dire. Insomma il Santo non vale la candela ma vale di + di una cattedrale solo x i motivi che ho detto. xciò Mario ti aspettiamo.

Ciao.

Un saluto di cuore.

T3T
00domenica 2 dicembre 2007 12:30
Re: elenco squadre
+aurelio+, 01/12/2007 17.42:



[cut]

Quindi, mugiu, prendi nota che Mario lo farà. In fondo di fronte a un problema é come un Pittsbull.. non lo molla. Mario non volevo darti della bestia... intesi? di questi periodi ci si può cascare...

[cut]

...Va bene la ricerca (e sono curioso di sapere cosa propone Mario) x un esercizio di ricerca di possibilità che apre ad altre applicazioni ed esperienze. Ma non va assolutamente bene come vizietto operativo. Ci si rovina l'anima e la giornata. Ci sono cascato diverse volte e per questo lo posso dire. Insomma il Santo non vale la candela ma vale di + di una cattedrale solo x i motivi che ho detto. xciò Mario ti aspettiamo...

[cut]



Simpaticamente pungolato (ciao Aurè), eccomi con la soluzione (che suppongo potrà essere oggetto di una richiesta di "ampliamento"...me lo sento).

codice da inserire nel modulo di foglio1:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i, x, riga As Long

riga = Cells(Rows.Count, 1).End(xlUp).Row

' selezionando la cella B1 definisce il range di "elenco"

If Target.Address = "$B$1" Then
ActiveWorkbook.Names.Add Name:="elenco", RefersToR1C1:= _
"=Foglio1!R1C1:R" & riga & "C1"
End If

' selezionando la cella C1 crea e definisce "elenco2"

If Target.Address = "$C$1" Then
i = 0
x = 0

Columns("IV:IV").ClearContents

ActiveWorkbook.Names.Add Name:="elenco2", RefersToR1C1:= _
"=Foglio1!R1C256:R" & riga - 1 & "C256"

For i = 1 To riga
Cells(i - x, 256) = Cells(i, 1)
If Cells(i, 1) = Cells(1, 2) Then x = x + 1
Next i
End If

End Sub


Breve descrizione:

Le celle B1 e C1 sono celle attive, nel senso che quando vengono selezionate attivano l'esecuzione del codice;

ogni volta che si crea l'elenco in colonna A, indipendentemente da quanti sono i valori, non bisogna settare il range da assegnare al nome "elenco", lo fa automaticamente ogni volta che si seleziona la cella B1 o la C1;

a seguire, la macro, cancella i dati in colonna IV (usata come appoggio per la creazione di "elenco2") dopodichè setta il range del nome “elenco2” (in base alla lunghezza di "elenco" meno 1), poi, con un ciclo For Next, popola il range con i valori di colonna A meno il valore in cella B1.

Aprendo successivamente l’elenco a discesa di cella C1 si potranno vedere tutti i valori di colonna A meno appunto quello di B1.

Credo di aver detto tutto quanto era possibile.

Un saluto a tutti

Mario
mugiu
00domenica 2 dicembre 2007 15:36
Grazie tante! E' fantastico. A presto.
allen13
00mercoledì 30 marzo 2016 13:11
Molto interessante
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 14:15.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com