Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Confronta contenuto celle e segnala restrizioni

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

Confronta contenuto celle e segnala restrizioni

Postdi Alessandro999 » 01/02/11 16:21

Salve

Se qualcuno è in ascolto ho un problema semplicissimo che non riesco a risolvere perchè semplicissimo è aldilà delle mie possibilità quando si tratta di macro , usandole di tanto in tanto tendo più a dimenticare che a ricordare ......... :( , avrei bisogno di un pò di RAM da impiantare nel cervello :lol: ........... bando alle ciance espongo il problema:

Su un foglio di excel ho due celle dove inserisco due tassi di interesse in formato numero e sono H10 e H13

Mi servirebbe una macro con msgbox che mi dicesse che su H13 non si può inserire un numero inferiore ad H10 e che cancelli l'eventuale contenuto che non rispetta i requisiti


esempio :

se H10 contiene il numero 5

in H13 deve essere obbligatorio inserire un numero che sia superiore o uguale a 5 , ma non inferiore.

se per esempio in H13 viene inserito il numero 3 ho bisogno di un messaggio istantaneo che mi avverta e che mi obblighi per forza a ridigitare sulla cella H13 un valore corretto , in altre parole la cella H13 deve accettare solo valori corretti basandosi su ciò che è contenuto in H10


Grazie per l'eventuale risposta !!! :)
Il vecchio Windows Xp + Office 2007.Ita
Windows 7 + Office 2007.Ita

Mi sembra che più si diventa vecchi e più il tempo scorre veloce, Bella fregatura !!!
Avatar utente
Alessandro999
Utente Senior
 
Post: 123
Iscritto il: 04/06/09 11:42
Località: Venezia

Sponsor
 

Re: Confronta contenuto celle e segnala restrizioni

Postdi Flash30005 » 01/02/11 16:38

Prova questa macro...
Macro da inserire nel foglio interessato e non nel modulo

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$H$13" Then Exit Sub
Application.EnableEvents = False
If Target < Range("H10").Value Then
    MsgBox "Valore errato"
    Range("H13").Select
     Range("H13").Value = ""
End If
Application.EnableEvents = True
End Sub


Fai sapere
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Confronta contenuto celle e segnala restrizioni

Postdi Anthony47 » 01/02/11 16:55

Oppure, invece della macro (vedi sopra), imposta in H13 una Convalida (menu /Dati /Convalida):
-su tab Impostazioni scegli Numero decimale, "tra", =H10, 1
-sul tab Messaggio di input scrivi ad es. Valore percentuale superiore o uguale ad H10
-magari scrivi una cosa analoga sul tab Messaggio di errore
-ok
Potrebbe interessarti una macro sulla falsariga di quella di Flash che, se cambia H10 cancelli H13.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Confronta contenuto celle e segnala restrizioni

Postdi Alessandro999 » 01/02/11 18:42

Grazie mille Flash e Anthony funzionano entrambi i metodi :)

Per quanto riguarda la macro, Flash è possibile fare il seguente ritocco :

Per la cella H13 ho anche un controllo modulo ( casella di selezione ) questa sull' immagine seguente , che uso per cambiare i valori di H13 per unità intere tramite mouse.

Immagine

Ho notato che nei casi in cui modifico il valore di H13 tramite la casella di selezione , la macro non entra in funzione e non mi segnala un eventuale valore errato.

Sarebbe possibile introdurre un pezzo di codice che tenga anche sott'occhio tale casella di selezione. cioè che intervenga alla stessa maniera anche nel caso che il valore di H13 venga variato tramite la casella di selezione.

Ovviamente sempre se ciò è possibile ............... la tua macro comunque funziona perfettamente , questo è solo diciamo un tentativo di upgrade.

P.S per Antonhy riguardo alla tua frase "Potrebbe interessarti una macro sulla falsariga di quella di Flash che, se cambia H10 cancelli H13." , potrebbe sicuramente essermi utile per altri punti del foglio di lavoro che sto costruendo , ti ringrazio se volessi postare il codice con l'esempio H10 , H13.


Grazie !!! :)
Il vecchio Windows Xp + Office 2007.Ita
Windows 7 + Office 2007.Ita

Mi sembra che più si diventa vecchi e più il tempo scorre veloce, Bella fregatura !!!
Avatar utente
Alessandro999
Utente Senior
 
Post: 123
Iscritto il: 04/06/09 11:42
Località: Venezia

Re: Confronta contenuto celle e segnala restrizioni

Postdi Anthony47 » 02/02/11 00:48

Per azzerare H13 quando cambia H10, inserisci nella tua Sub Worksheet_Change(ByVal Target As Range) una riga del tipo
Codice: Seleziona tutto
If target.address="$H$10" Then range("H13").clearcontents
Stai attento alla struttura complessiva della macro, ricordando che l' evento "Change" e' unico ma forse tu vorresti gestire diverse situazioni..

Per quanto riguarda l' uso della casella di selezione, questa per definizione non genera un evento Change quindi la macro non si innesca.
Pero' puoi usare lo spinbutton = pulsante di selezione della barra degli Strumenti di controllo, che sono oggetti programmabili; poi potresti mettere il seguente codice all' interno della macro SpinButton1_Change():
Codice: Seleziona tutto
If Range("H13").value < Range("H10").Value Then
    MsgBox "Valore errato"
    Range("H13").clearcontents
'     Range("H13").Value = ""
End If

TUTTAVIA...
L' uso dello Spinbutton ti apre anche la possibilita' di prevenire la scelta di valori sbagliati, ad esempio usando una macro del tipo
Codice: Seleziona tutto
Private Sub SpinButton1_Change()
SpinButton1.Min = Range("H10").Value
SpinButton1.Max = 100
SpinButton1.LinkedCell = Range("H13").Address
End Sub
Questa imposta il valore minimo a quanto presente in H10, rendendo inutile l' uso dell' altra macro; inoltre imposta il Max A 100 e collega il componente alla cella H13 senza bisogno di impostare questi valori nelle "proprietà".
A questo punto la Worksheet_Change rimarrebbe solo per azzerare H13, quindi:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H$10" Then Range("H13").ClearContents
End Sub

Spero di non averti confuso oltre le mie intenzioni...

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Confronta contenuto celle e segnala restrizioni

Postdi Alessandro999 » 02/02/11 10:23

risposta :

GRAZIE RAGAZZI , sto usando tutte le vostre macro per i vari fogli della cartella di lavoro di excel a seconda delle esigenze , funzionano perfettamente.

Per Anthony , ho provato tutte le soluzioni da te proposte e mi trovo bene con la seconda quella che contiene anche la restrizione del valore massimo , e in più anche la macro finale che pulisce H13 inserita sul Worksheet :D

Ho chiesto 10 e mi avete dato 100 :) grazie mille siete davvero mitici !!!!!!!!!!!,
Il vecchio Windows Xp + Office 2007.Ita
Windows 7 + Office 2007.Ita

Mi sembra che più si diventa vecchi e più il tempo scorre veloce, Bella fregatura !!!
Avatar utente
Alessandro999
Utente Senior
 
Post: 123
Iscritto il: 04/06/09 11:42
Località: Venezia


Torna a Applicazioni Office Windows


Topic correlati a "Confronta contenuto celle e segnala restrizioni":


Chi c’è in linea

Visitano il forum: Nessuno e 48 ospiti