forse 'ignora celle vuote' ha un significato diverso da quello
che tu immagini.
una cella di convalida è impostata di default a
'mostra messaggio di errore quando i dati immessi non sono validi'
(nel caso di un elenco, ad esempio, in presenza di un input
non presente nell'elenco).
con 'ignora celle vuote' dico semplicemente di non mostrare
il messaggio di errore per le celle vuote anche se queste
violano leregole di convalida.
puoi osservare la differenza,
inserendo un voce corretta e poi cancellandola.
in presenza di 'ignora celle vuote' la cancellazione sarà ok.
in assenza di 'ignora celle vuote' la cancellazione sarà
considerata errore.
.f
fernando cinquegrani
http://www.prodomosua.eu
> puoi osservare la differenza,
> inserendo un voce corretta e poi cancellandola.
> in presenza di 'ignora celle vuote' la cancellazione sarà ok.
> in assenza di 'ignora celle vuote' la cancellazione sarà
> considerata errore.
> .f
> fernando cinquegrani
> http://www.prodomosua.eu
Togliendo la spunta da 'ignora celle vuote', in effetti, la cella vuota
viene considerata un errore (come si può verificare usando gli strumenti
'verifica formule', o tentando di lasciare la cella vuota dopo aver premuto
F2), ma la cancellazione (purtroppo) viene comunque consentita.
Anche perché la convalida 'controlla' l'immissione diretta di un valore in
una cella: la cancellazione non è un'immissione.
Togliere la spunta da 'ignora celle vuote', può essere invece utile in un
caso di convalida personalizzata, per esempio:
=$B$1<>"" (che dovrebbe impedire l'inserimento di dati nell'intervallo in
cui metti la convalida, nel caso in cui B1 sia vuota)
La convalida in questo caso è efficace *solo* togliendo la spunta.
Ciao
Barbara
hai ragione, bisognerebbe sempre controllare ciò
che si dice. però:
in A1: A3 a b c
in B1 dati :: convalida :: elenco...A1:A3
[ ] ignora celle vuote
in B1 seleziona b
quindi F2 e cancella b (backspace) invio
risultato: errore
certo è un modo un po' strano di cancellare :-)
.f
Gia'... Infatti non e' una cancellazione ma e' una immissione di una
stringa nulla. Poco importano i giochini che si fanno durante
l'immissione; conta solo cio' che si immette.
La cancellazione ("Canc" del valore di una cella) e' un'altra cosa.
--
Ciao :o)
Maurizio Borrelli, Microsoft Office Access MVP
-------- http://mvp.support.microsoft.com/
?SPQR(C)
X RIO - Risorse in italiano per gli utenti di office
-------- http://www.riolab.org/
mi piacerebbe sapere quale altra cosa č. :-)
se volessi simulare il funzionamento della convalida con
il codice, dovrei tener presente che 'immissione
e cancellazione generano entrambe l'evento
change. diventano diverse, immissione e cancellazione,
se io riesco ad intercettare il tasto, invio o canc, che
ha generato l'evento. (idem in una casella a discesa).
mi sembra cioč che sia 'strano' (non conforme alla
logica di funzionamento di excel) il funzionamento attuale
e, probabilmente [avevo scritto senza far prove, ma ero
certo che fosse cosě], sarebbe stato piů utile considerarli
alla stessa stregua.
.f
Ciao Fernando.
Gli e' che d'un prodotto software va analizzata la psiche al pari di un
essere umano, e conviene indagarne i traumi infantili per tentar di
comprender l'azioni de l'omo fatto. E questo assunto pare piu' vero
quanto piu' l'organismo, seppur soffice, e' complesso, e adulto, e da
fil d'erba diventato tronco fronzuto la' dove priamente fue messo a
dimora.
Sparata questa posa... veniamo ai fatti.
Operero' con le opzioni seguenti, che sono se non erro quelle "di
fabbrica". Vedremo poi se mutandole muta del pari il comportamento del
soggetto in esame:
Strumenti > Modifica
[v] Modifica direttamente nella cella
[v] Sposta la selezione dopo Invio
Direzione: Giu'
Questi i dati e le impostazioni del foglio di lavoro (unico presente
nella cartella di lavoro, salvata come "Cartel1.xls"):
| A | B | C |
--+---------+---+---+-+
1|Pippo | | |v|
2|Pluto | | |-+
3|Paperino | | |
__| _|___|___|
\Foglio1/
C1:
Dati > Convalida...
Impostazioni
Consenti: Elenco
Origine: =$A$1:$A$9
[_] Ignora celle vuote
[v] Elenco nella cella
Messaggio di errore
[v] Mostra messaggio di errore quando i dati immessi non sono validi
' Foglio1 Worksheet
'
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Const cIndent = 3
Debug.Print "Worksheet_Change::"; Target.Address
If (Target.Cells.Count <> 1) Then
Debug.Print Spc(cIndent) _
; "Gli intervalli di piu' di una cella" _
; " non sono considerati."
Exit Sub
End If
With Target
Debug.Print Spc(cIndent) _
; "TEXT", "'"; .Text; "'"
Debug.Print Spc(cIndent) _
; "VALUE", IIf(IsEmpty(.Cells), "#EMPTY", .Value)
If (.HasFormula) Then
Debug.Print Spc(cIndent) _
; "FORMULA", .Formula
End If
End With
End Sub
Primo comportamento schizoide:
L'immissione in C1 del valore "Pippo" sia per mezzo della selezione
della voce dell'elenco che con la digitazione conclusa dal tasto Invio
produce, come ci si aspetterebbe, lo stesso output:
Worksheet_Change::$C$1
TEXT 'Pippo'
VALUE Pippo
Worksheet_Change::$C$1
TEXT 'Pippo'
VALUE Pippo
mentre le registrazioni delle relative macro sono differenti:
Sub Macro1()
End Sub
Sub Macro2()
ActiveCell.FormulaR1C1 = "Pippo"
Range("C2").Select
End Sub
Ovvero la selezione della voce dell'elenco non produce la registrazione
di codice. Come non fosse avvenuta. E si' che l'evento Change, come
visto, si scatena in entrambi i casi con lo stesso effetto.
Vediamo la cancellazione "sommaria". Quella per intenderci che si
ottiene col tasto Canc.
Worksheet_Change::$C$1
TEXT ''
VALUE #EMPTY
Sub Macro3()
Selection.ClearContents
End Sub
In conclusione, ma l'argomento non pare essere esaurito ma lo sono io e
probabilmente voi, vediamo immissione e cancellazione da codice, per
mezzo della finestra Immediata:
range("C1").Value="Pippo"
Worksheet_Change::$C$1
TEXT 'Pippo'
VALUE Pippo
range("C1").ClearContents
Worksheet_Change::$C$1
TEXT ''
VALUE #EMPTY
range("C1").Value=""
Worksheet_Change::$C$1
TEXT ''
VALUE #EMPTY
range("C1").Value="'"
Worksheet_Change::$C$1
TEXT ''
VALUE
range("C1").Formula="="""""
Worksheet_Change::$C$1
TEXT ''
VALUE
FORMULA =""
range("C1").Value="Topolino"
Worksheet_Change::$C$1
TEXT 'Topolino'
VALUE Topolino
Tutto questo senza che la convalida produca messaggi di errore.