| | 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".
|
|
|