Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

MSGBOX se il valore è vero

Ultimo Aggiornamento: 26/02/2018 14:16
Post: 1
Registrato il: 23/02/2018
Città: CHIVASSO
Età: 32
Utente Junior
2016
OFFLINE
23/02/2018 15:55

Buongiorno,

ho provato a cercare, ma ho trovato simili e non riesco a confrontare o modificare la macro a mio piacimento.

Lavoro su uno scadenziario,

applico dunque delle formattazioni condizionali per far colorare delle celle con gli operatori di confronto.
Fino a qui semplice.

Data la poca dimestichezza con vba, vorrei che un MSGBOX appaia tutte le volte che è necessario per avvisarmi che il contenuto della cella sia VERO (colorato) con il nome del cliente.

ESEMPIO

In "C3" ho una data tipo 01/01/18
Voglio che dopo 10 giorni la cella diventi gialla per avvisarmi,allora applico
=E(OGGI()-C3>=10;C3<>""), ipotizzando che oggi sia una data tale da far si che il valore sia vero.

Ora quello che mi interessa dato che lavoro su piu FOGLI e i dati interessati sono su più righe,

Applico
=E(OGGI()-$C3>=85;$C3<>"") sempre ipotizzando la questione data

Ora la macro, vorrei che mi apparisse se per necessità all'apertura del file, il valore della cella sia vero con "testo di allerta" (per dire) e il nome del cliente, che si troverà in una cella a fianco (esempio) C1.

Dovrò applicarlo su un'intervallo di colonne perche ho molti clienti.

Attendo aiuto.

Saluti.

Buon weekend
Post: 2.698
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
OFFLINE
23/02/2018 16:11

Buon pomeriggio, Matteo;
sarebbe opportuno allegassi un file (senza Dati sensibili) con alcuni Record significativi già inseriti e chiarissi ciò che desideri ottenere.
Questo eviterebbe a chi desidera aiutarti dover ricostruire una probabile struttura con il rischio di non centrare l'obiettivo.


Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 2
Registrato il: 23/02/2018
Città: CHIVASSO
Età: 32
Utente Junior
2016
OFFLINE
23/02/2018 16:53

GiuseppeMN, 2/23/2018 4:11 PM:

Buon pomeriggio, Matteo;
sarebbe opportuno allegassi un file (senza Dati sensibili) con alcuni Record significativi già inseriti e chiarissi ciò che desideri ottenere.
Questo eviterebbe a chi desidera aiutarti dover ricostruire una probabile struttura con il rischio di non centrare l'obiettivo.


Giuseppe



Hai completamente ragione,allego

Post: 2.699
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
OFFLINE
23/02/2018 17:40

Buona sera, Matteo;
grazie della tua attenzione.

Credo potresti provare con questo Codice VBA:

Option Explicit

Sub Evidenzia()
Application.ScreenUpdating = False
Dim NRc As Long, x As Long
Dim Nmn As String
Const Tst As Byte = 15

    NRc = Range("A" & Rows.Count).End(xlUp).Row
        For x = 5 To NRc
          If Cells(x, 2) <> "" And Date - Cells(x, 2) >= Tst Then Nmn = Nmn & Cells(x, 1) & Chr(10)
        Next x
            MsgBox Nmn
Application.ScreenUpdating = True
End Sub



A disposizione.

Buona serata.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 3
Registrato il: 23/02/2018
Città: CHIVASSO
Età: 32
Utente Junior
2016
OFFLINE
26/02/2018 10:16

GiuseppeMN, 2/23/2018 5:40 PM:

Buona sera, Matteo;
grazie della tua attenzione.

Credo potresti provare con questo Codice VBA:

Option Explicit

Sub Evidenzia()
Application.ScreenUpdating = False
Dim NRc As Long, x As Long
Dim Nmn As String
Const Tst As Byte = 15

    NRc = Range("A" & Rows.Count).End(xlUp).Row
        For x = 5 To NRc
          If Cells(x, 2) <> "" And Date - Cells(x, 2) >= Tst Then Nmn = Nmn & Cells(x, 1) & Chr(10)
        Next x
            MsgBox Nmn
Application.ScreenUpdating = True
End Sub



A disposizione.

Buona serata.

Giuseppe




Grande Giuseppe,
Sì, fa proprio al caso mio,
ho modificato il linguaggio inserendo

Sub auto_open()
Application.ScreenUpdating = False
Dim NRc As Long, x As Long
Dim Nmn As String
Const Tst As Byte = 15

NRc = Range("A" & Rows.Count).End(xlUp).Row
For x = 5 To NRc
If Cells(x, 2) <> "" And Date - Cells(x, 2) >= Tst Then Nmn = Nmn & Cells(x, 1) & Chr(10)
Next x
MsgBox Nmn
Application.ScreenUpdating = True
End Sub

Così, ogni volta che apro il programma mi appare il MSGBOC, volevo chiedere,
La macro come lavora?
Va alla ricerca delle celle "VERO"?
Oppure ha un intervallo di celle da controllare?
Se cosi fosse quali sono i parametri da modificare a mio piacere?
Oltretutto, è applicabile a un'intera cartella di lavoro?
In modo che nella "msgbox" ci siano anche i clienti di altri fogli di lavoro?

Post: 2.708
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
OFFLINE
26/02/2018 11:04

Buona giornata, Matteo;
in realtà la mia proposta era solo una bozza.

La versione più avanzata dovrebbe gestire la Ricerca in tutti i Campi (Colonne) come proposto nell'immagine allegata.

@Matteo91TO, chiede:


La macro come lavora?
Va alla ricerca delle celle "VERO"?



Il Codice VBA utilizza questa condizione:
 If Cells(x, 2) <> "" And Date - Cells(x, 2) >= Tst 


nella quale la Costante:
-    Tst
indica il valore >= da controllare; nel Codice proposto il Valore è 15 ma può essere variato a piacere, se questo valore deve essere variato frequentemente è possibile utilizzare una Cella d'appoggio nel Foglio di lavoro nella quale inserire il Valore da ricercare, in questo caso il Codice VBA dovrebbe essere modificato opportunamente.

Nel momento in cui la condizone viene rispettata, il Record viene inserito nalla Variabile:
-    Nmn

@Matteo91TO, chiede:


 ... Oppure ha un intervallo di celle da controllare?
Se cosi fosse quali sono i parametri da modificare a mio piacere?



Il numero di Celle da valutare è calcolato automaticamente dall'Istruzione:
 NRc = Range("A" & Rows.Count).End(xlUp).Row


NRc contiene il riferimento all'ultimo Record inserito in Colonna "A"; quindi è determinante che in Colonna "A" non ci siano altri valori dopo l'ultimo "Cliente".

@Matteo91TO, chiede:


 ... Oltretutto, è applicabile a un'intera cartella di lavoro?
In modo che nella "msgbox" ci siano anche i clienti di altri fogli di lavoro?



VBA potrebbe occuparsi anche di questo, ma, considera che richiederebbe una modifica sostanziale del Codice proposto e questa è sicuramente un'altra storia.



Buon Lavoro.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 1.824
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
26/02/2018 11:14

Ciao
solo per informazione comunico che l'auto open inserita in un modulo non è più supportata dalla Microsoft. Gia nel 365 non funziona e man mano che sopraggiungono aggiornamenti, potrebbe non funzionare.

Al riguardo viene consigliato di inserirla in ThisWorkbook nel seguente modo:

Private Sub Workbook_Open()
.....
.....
End Sub


Link Microsoft

Saluti


[Modificato da dodo47 26/02/2018 11:14]
Domenico
Win 10 - Excel 2016
Post: 4
Registrato il: 23/02/2018
Città: CHIVASSO
Età: 32
Utente Junior
2016
OFFLINE
26/02/2018 14:16

Buondì,


La versione più avanzata dovrebbe gestire la Ricerca in tutti i Campi (Colonne) come proposto nell'immagine allegata.



mmm è gia esistente quindi?

Perchè esistesse una versione in grado di fare un check su tutto il foglio di lavoro (colonna per colonna) sarebbe interessante,
un grand'inizio per poi man mano migliorarlo.

Già la macro che hai allegato tu, Giuseppe è molto utile, che su tutte le colonne lui ricerca la celle "vere".

Vota: 15MediaObject5,0018 1
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 12:03. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com