Condividi:        

Convalida dati + codice colora

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

Convalida dati + codice colora

Postdi Alessandro999 » 30/03/15 17:11

Salve a tutti, sto sperimentando un po di cose e cortesemente avrei bisogno di una spiegazione riguardo lo strumento convalida dati, nel dettaglio la mia intenzione è quella di evidenziare alcune celle da L1 a P1 quando c'è una corrispondenza con quanto digitato nella cella A1, quindi mi sono inventato questo semplice codice che ho inserito sul foglio1 e che funziona bene, però poi volevo fare la stessa cosa senza digitare nulla ma usando un elenco creato con il convalida dati solo che... :roll: non ci riesco e non capisco perchè ?

per comodità allego anche il file excel

http://www.filedropper.com/coloraconconvalidadati

Posto anche il codice, come si vede volendo usare il convalida dati basta cambiare A1 con C1 (c'è la lista del convalida dati) come specificato da freccette, se si seleziona stagno dovrebbe colorare di giallo le celle da L1 a P1... ma non funziona.


Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("A1").value = "stagno" Then   '<<< sostituendo A1 con C1 non funziona più..... ?!?! :(

    Range("L1:P1").Interior.ColorIndex = 6

    Else

    Range("L1:P1").Interior.ColorIndex = xlNone
   
End If

End Sub



CIAO e grazie :)
Windows 10 + office 2007
Windows 7 + Office 2007
Avatar utente
Alessandro999
Utente Senior
 
Post: 161
Iscritto il: 04/06/09 11:42
Località: Venezia

Sponsor
 

Re: Convalida dati + codice colora

Postdi Anthony47 » 30/03/15 22:29

Si vede che da piccolo non risolvevi i quesiti della Susi...
Quali sono le differenze tra un caso e l' altro?
L' indirizzo della cella, ininfluente. Le modalita' operative, influente.

Quando usi un input da elenco a discesa la selezione NON cambia, quindi non scatta la macro di Worksheet_SelectionChange e l' azione non viene effettuata; verra' effettuata appena modificherai in altro modo la selezione.
Bastera' modificare il tipo di evento in Worksheet_Change e tutto sara' piu' lineare.

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

Re: Convalida dati + codice colora

Postdi Flash30005 » 30/03/15 22:31

Non devi inserire quel codice su change_selection ma solo in change
aggiungendo una riga codice che controlli che il cambiamento avvenga in C1
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$1" Then Exit Sub  '<<<<< controllo che l'indirizzo cella sia C1
If Range("C1").Value = "stagno" Then   '<<< sostituendo A1 con C1 non funziona più..... ?!?! :(
    Range("L1:P1").Interior.ColorIndex = 6
Else
    Range("L1:P1").Interior.ColorIndex = xlNone
End If
End Sub


ciao

EDIT: leggi il post di Anthony scritto in contemporanea al mio
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Convalida dati + codice colora

Postdi Alessandro999 » 31/03/15 13:09

In ordine cronologico :

Grazie Anthony ... e per quanto riguarda i quesiti della Susy, ho scoperto solo ora cosa sono :lol:

Grazie Flash per il codice con il controllo aggiunto !

Purtroppo non avendo l'occhio clinico come voi molte cose mi sfuggono e spesso capita che mi pianti o tralasci cose palesi, pazienza spero di migliorare con il tempo... mi accontento di avanzare anche di un gradino al mese.

CIAO !
Windows 10 + office 2007
Windows 7 + Office 2007
Avatar utente
Alessandro999
Utente Senior
 
Post: 161
Iscritto il: 04/06/09 11:42
Località: Venezia

Re: Convalida dati + codice colora

Postdi Alessandro999 » 31/03/15 13:43

Avrei una domandina ,mi potreste spiegare nello specifico cosa scongiura e quando interviene questa linea di codice:


Codice: Seleziona tutto
If Target.Address <> "$C$1" Then Exit Sub  '<<<<< controllo che l'indirizzo cella sia C1


Nella mia ignoranza pensavo bastasse indicare che Se nella cella C1 è contenuto un determinato dato allora esegui l'istruzione di evidenziare colorando i valori contenuti nel range L1:P1 altrimenti non formattare con alcun colore i contenuti nel range L1:P1.

Quindi non è sufficiente indicare la cella solamente nell' istruzione IF, che se soddisfatta comportava l'istruzione che segue THEN

Quali effetti potrebbe comportare l' assenza di tale linea ?

Grazie mille ( Faccio la domanda in generale per chi volesse rispondere, dato che mi pare giusto non abusare del già enorme contributo offerto dai moderatori )
Windows 10 + office 2007
Windows 7 + Office 2007
Avatar utente
Alessandro999
Utente Senior
 
Post: 161
Iscritto il: 04/06/09 11:42
Località: Venezia

Re: Convalida dati + codice colora

Postdi ricky53 » 31/03/15 15:09

Ciao,
l'istruzione che hai riportato tradotta in parola diventa così:
Se l'indirizzo della cella selezionata (Target.Address) è diverso da "$C$1"
allora (Then)
ESCI dalla SUB (Exit Sub)

Il codice andrà avanti ed eseguirà le istruzioni che troverà dopo SOLO SE la cella selezionata è la "C1"

Ho risposto in modo esaustivo alle tue domande?


Di solito si procede in questo modo:
1. chiedersi COSA si DEVE REALMENTE FARE ???
2. chiarito BENE cosa si deve fare lo si traduce in linee di codice
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Convalida dati + codice colora

Postdi Alessandro999 » 31/03/15 15:46

Alessandro999 ha scritto:
Alessandro999 ha scritto:
ricky53 ha scritto:Ciao,
l'istruzione che hai riportato tradotta in parola diventa così:
Se l'indirizzo della cella selezionata (Target.Address) è diverso da "$C$1"
allora (Then)
ESCI dalla SUB (Exit Sub)

Il codice andrà avanti ed eseguirà le istruzioni che troverà dopo SOLO SE la cella selezionata è la "C1"

Ho risposto in modo esaustivo alle tue domande?


Di solito si procede in questo modo:
1. chiedersi COSA si DEVE REALMENTE FARE ???
2. chiarito BENE cosa si deve fare lo si traduce in linee di codice



ciao Ricky


Quello che non capisco è che con quella linea di codice ma anche senza quella linea di codice la macro inserita sul foglio con l'evento change come specificato da Anthony e Flash funziona comunque.

In base anche alla tua risposta mi pare di capire .... (spero di non dire una fesseria) che quella linea messa in alto non fa sprecare risorse in controlli continui nel caso l'utente si trovi ad armeggiare in altre celle del foglio di calcolo, in pratica detta in parole povere " quella linea dice al Visual Basic che : se l'utente sta facendo qualcosa in altre celle che non sono la C1 può smettere subito di leggere quello che segue nel listato e risparmiare risorse) ho forse capito giusto ?
Windows 10 + office 2007
Windows 7 + Office 2007
Avatar utente
Alessandro999
Utente Senior
 
Post: 161
Iscritto il: 04/06/09 11:42
Località: Venezia

Re: Convalida dati + codice colora

Postdi ricky53 » 31/03/15 15:50

Ciao,
SI, quella istruzione evita di far proseguire il codice ed, eventualmente, evita di far fare altre cose non volute.

Nel caso tuo senza quella istruzione in QUALUNQUE cella venga cambiato il contenuto viene eseguito il resto del codice della tua macro e NON è sempre detto che sia quello che ti occorre fare.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Convalida dati + codice colora

Postdi Alessandro999 » 31/03/15 16:02

ricky53 ha scritto:Ciao,
SI, quella istruzione evita di far proseguire il codice ed, eventualmente, evita di far fare altre cose non volute.

Nel caso tuo senza quella istruzione in QUALUNQUE cella venga cambiato il contenuto viene eseguito il resto del codice della tua macro e NON è sempre detto che sia quello che ti occorre fare.


Ah ecco, grazie ancora Ricky della tua disponibilità e buona serata : )

Ciao
Windows 10 + office 2007
Windows 7 + Office 2007
Avatar utente
Alessandro999
Utente Senior
 
Post: 161
Iscritto il: 04/06/09 11:42
Località: Venezia

Re: Convalida dati + codice colora

Postdi Alessandro999 » 31/03/15 16:05

Scusate, ho fatto un po' di casino con le risposte e ci sono dei messaggi duplicati :roll:

Aggiornamento...

Non riesco a cancellare i duplicati scusate ancora.


EDIT Flash: eliminati post duplicati
Windows 10 + office 2007
Windows 7 + Office 2007
Avatar utente
Alessandro999
Utente Senior
 
Post: 161
Iscritto il: 04/06/09 11:42
Località: Venezia


Torna a Applicazioni Office Windows


Topic correlati a "Convalida dati + codice colora":


Chi c’è in linea

Visitano il forum: Nessuno e 51 ospiti