Condividi:        

[EXCEL] Cella di controllo

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] Cella di controllo

Postdi aaa » 06/07/07 14:57

Ciao a tutti,
ho letto non so quanti topic ma senza trovare la soluzione a qualcosa che temo sia drammaticamente semplice.
Il problema è questo:
nella cella A1 ho un elenco creato in Convalida con scelta "sì, no";
come faccio ad impostare l'obbligatorietà alla compilazione della cella?
Come a dire che, se non completo la cella A1, devo essere impossibilitato a completare le altre celle della stessa riga A2, A3, ecc.
aaa
Utente Junior
 
Post: 22
Iscritto il: 07/07/03 17:07

Sponsor
 

Postdi Anthony47 » 06/07/07 15:44

Mi sembra la stessa domanda fatta in coda all' altro post (Sj: Colore carattere in base al contenuto, vedi http://www.pc-facile.com/forum/viewtopic.php?t=63664); rispondo qui e ignoro l' altro post (che mi pare risolto).

Io inserirei una indicazione visiva e un blocco:
-in una cella libera (es. Z1) inserisci la formula
Codice: Seleziona tutto
=SE(LUNGHEZZA(A1)>0;111;0)

-in A2, A3, etc inserisci la formattazione condizionale con "la formula è", formula
Codice: Seleziona tutto
=Z1=0
e formato sfondo rosso
-in aggiunta, su A2, A3 etc inserisci una Convalida: Consenti "Lunghezza testo", Dati "minore di", valore massimo =Z1
-sempre in convalida, sul tab Messaggio di input scrivi "Compilare dopo A1", sul tab Messaggio di errore scrivi "Compilare SOLO dopo A1"

In questo modo:
-se A1 e' vuoto, A2, A3 etc sono rosse
-se si prova a inputare A2, A3 etc l' operazione e' rifiutata.

Se invece vuoi realizzare un workflow che "controlli" (non solo "guidi") l' utente, dovrai farlo con macro.

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

Postdi aaa » 06/07/07 15:50

è perfetta così
sono due ore che smanetto ed ancora non trovavo la soluzione
grazie tantissimo
alla prossima
aaa
Utente Junior
 
Post: 22
Iscritto il: 07/07/03 17:07

Postdi aaa » 09/07/07 08:31

Ciao Anthony,
ok con convalida e formattazione condizionale
ho inserito anche un oscuramento delle celle da B9 ad F9 visto che, in caso di risposta "sì" (cioè, nuovo titolo non ancora presente in deposito), il file prevede la compilazione delle celle da G9 a J9.
Però, se erroneamente compilo le celle da B9 ad F9 perchè erroneamente ho risposto "no" alla domanda, come posso fare per cancellare automaticamente le celle dalla B9 alla F9 se, a posteriori, vado a modificare la risposta da "no" in "sì"?
aaa
Utente Junior
 
Post: 22
Iscritto il: 07/07/03 17:07

Postdi Anthony47 » 09/07/07 15:54

Allora devi andare sulle macro, che possono complementare quanto fin qui fatto. Ad esempio la seguente guarda se la cella A1 viene cambiata, nel qual caso azzera le celle B9:F9:

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$A$1" Then
Range("B9:F9").ClearContents
'
'altre istruzioni se si cambia A1
'
End If
Application.EnableEvents = True
End Sub


Va caricata sul modulo di codice del foglio che stai usando: tasto dx sul tab del nome del foglio, scegli Visualizza codice; incolla le istruzione nel frame di dx del vba editor che viene aperto.

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

Postdi Anthony47 » 10/07/07 15:59

Nel messaggio privato precisi che le celle di partenza sono A9:A40, mentre qui abbiamo sempre parlato di $A$1. Inoltre, anche interpretando questo topic come la continuazione di un altro risolto il gg 6-7, non sono ancora certo di come hai organizzato i dati; insomma rispondo a tentoni a pezzi dello stesso problema che vengono svelati uno dopo l' altro...
Mentre sarebbe meglio spiegare tutto bene subito, cosi' si risponde subito nella direzione giusta; capisco che a volte sembra di dover svelare sofisticate architetture dati, ma se si chiede aiuto bisogna essere trasparenti ed espliciti.
Lo scrivo a te, aaa, ma in realta' lo dico ai tanti che chiedono (e spesso ottengono) aiuto sul forum.
Cio' detto, credo che tu abbia voglia di azzerare le caselle Bn:Fn se cambi un valore in An, con n variabile da 9 a 40. Se e' cosi', invece della macro di ieri userai questa:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A9:A40")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.Range("B1:F1").Select            '<<<< vedi testo
'Target.Range("B1:F1").ClearContents    '<<<< vedi testo

'
'altre istruzioni se si cambia la cella Ax
'
Application.EnableEvents = True
End Sub

Istruzioni come ieri.

Cosi' come e' scritta, la macro seleziona solo l' area che ho capito che andrebbe azzerata; se la selezione e' corretta, allora togli l' apostrofo davanti all' istruzione .clearcontents e mettilo sull' istruzione .select, per abilitare l' azzeramento invece della selezione.
Fai questa operazione dopo aver collaudato bene la macro.
Se non e' questo che cercavi, ...riprova a descrivere.

Ciao, fai sapere.
Avatar utente
Anthony47
Moderatore
 
Post: 19440
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL] Cella di controllo":


Chi c’è in linea

Visitano il forum: Nessuno e 22 ospiti