Formattazione condizionata testo che contiene.

di il
14 risposte

Formattazione condizionata testo che contiene.

Buonasera, volevo sapere se c’è la possibilità ,o una soluzione anche in vba ,di formattare un campo il cui testo contenga una parola specifica, stile excel.  Sottolineo ,Non uguale a ma che contenga. Grazie per il vostro aiuto.

14 Risposte

  • Re: Formattazione condizionata testo che contiene.

    Formattare un campo cosa intendi? Il testo deve comparire in un report, in un controllo di maschera?

  • Re: Formattazione condizionata testo che contiene.

    È una casella di testo di una maschera, la vorrei formattare facendogli cambiare colore in base ad una parola contenuta in una frase. .

  • Re: Formattazione condizionata testo che contiene.

    Non conosco il contesto in cui dovrai fare questo, ma ti dò uno spunto da cui iniziare: Nella sezione dati imposta RTF come formato testo. Poi dalla finestra proprietà del controllo, in origine controllo scrivi: “questo è un testo di colore” & "<font color=""#FF0000"">" & “rosso” & “</font>”

  • Re: Formattazione condizionata testo che contiene.

    Ti ringrazio per la risposta. Si tratta di un database gestione chiavi. La casella  di testo contiene una frase del tipo: Cassetta n.2 anello rosso. In questo caso mi dovrebbe riempire lo sfondo di colore rosso. Oppure Cassetta n.2 anello verde, quindi fondo verde e così via. In EXCEL la funzione è di default. Sto cercando una soluzione per access.

  • Re: Formattazione condizionata testo che contiene.

    Quindi il colore lo devo cambiare allo sfondo e non al testo. Ad ogni modo il metodo è questo. Adatta alle tue necessità. In realtà non mi è mai capitato di dover cambiare lo sfondo. Non ne sono certo, ma credo si debba cambiare font color in background color. Pai una prova

  • Re: Formattazione condizionata testo che contiene.

    Buongiorno.

    se vuoi passare da VBA devi inserire qualche riga di codice sull'evento After Update delle caselle di testo sulle quali vuoi l'effetto

    qualcosa del genere:

    Private Sub TuaCasella_AfterUpdate()
    	Me.TuaCasella.BackColor = RGB(255, 255, 255) 'imposto il bianco di default
    	If InStr(1, lcase(Me.TuaCasella.Text), "verde") <> 0 Then Me.TuaCasella.BackColor = vbGreen
    	If InStr(1, lcase(Me.TuaCasella.Text), "rosso") <> 0 Then Me.TuaCasella.BackColor = vbRed
    	...
    End Sub

    Ovviamente sostituisci TuaCasella con il nome della tua TextBox

  • Re: Formattazione condizionata testo che contiene.

    05/06/2023 - VBAndre ha scritto:


    Buongiorno.

    se vuoi passare da VBA devi inserire qualche riga di codice sull'evento After Update delle caselle di testo sulle quali vuoi l'effetto

    qualcosa del genere:

    Private Sub TuaCasella_AfterUpdate()
    	Me.TuaCasella.BackColor = RGB(255, 255, 255) 'imposto il bianco di default
    	If InStr(1, lcase(Me.TuaCasella.Text), "verde") <> 0 Then Me.TuaCasella.BackColor = vbGreen
    	If InStr(1, lcase(Me.TuaCasella.Text), "rosso") <> 0 Then Me.TuaCasella.BackColor = vbRed
    	...
    End Sub

    Ovviamente sostituisci TuaCasella con il nome della tua TextBox

    Forse, per una migliore manutenzione ed implementazioni successive, si potrebbe caricare una Tabella con i Font Color di primo Piano e di Sfondo e la Key di ricerca. 
    In esecuzione del codice caricare una Matrice (anche una tantum) con i valori della tabella e ricercare su di essa la corrispondenza da applicare allo sfondo e al primo piano della TextBox  o Etichetta etc… 

    Senza impostare costanti fisse nel vba e senza dover di volta in volta ritoccare il codice per eventuali nuovi colori e/o esigenze e lavorando su matrice per migliorare le prestazioni, con solo 3 righe di codice si potrebbe avere un buon livello di performance.

    Poi certo tutto dipende dallo scenario, dove e come si vuole visualizzare le informazioni.

  • Re: Formattazione condizionata testo che contiene.

    Siete grandi ragazzi, faccio delle prove e posto la soluzione…se riesco. Un grossissimo grazie.

  • Re: Formattazione condizionata testo che contiene.

    Premesso che non ho capito ancora…

    Se vuoi cambiare colore alla Casella di Testo che contiene la parola è da usare la F.C., il suggerimento di Franco va bene solo su Maschera Singola e non continua… ci penserei.

    Se vuoi cambiare colore al testo cercato all'interno della Casella di Testo la cosa è molto più complessa…

    Purtroppo il suggerimento di Antony è pericoloso, quiando si formatta in HTML un Testo non formattato si aggiungono i TAG HTML al PlainText e questo danneggia irreparabilmente il contenuto… che andrà poi bene solo per la visualizzazione HTMl, ma pensa se devi esportare in un File di testo, ti ritrovi i TAGS HTML… lasciamo poi perdere se devi RIMUOVERLI… per togliere l'evidenziatura…!

    Solitamente siu gestisce un Contenuto Parallelo da Formattare, e se quando chiudi non ti interessa memorizzare la Formattazione, lo elimini e recupererai il contenuto PlainText, se devi mantenere la Formattazione, allora devi memorizzare 2 Campi uno PlainText ed uno HTML ma poi è da impazzire tenerli sincronizzati…

    C'era un bellissimo OCX di Lebans che restituiva sempre oltre al contenuto HTML, anche il contenuto PlainText… ma tant'è…

  • Re: Formattazione condizionata testo che contiene.

    Se utilizzata in una casella di testo associata sicuramente varia il dato. Ma in una casella di testo non associata penso si possa fare. Ad ogni modo non ho mai utilizzato i tag nelle maschere. Me ne servo nei report.

  • Re: Formattazione condizionata testo che contiene.

    05/06/2023 - Antony73 ha scritto:


    Se utilizzata in una casella di testo associata sicuramente varia il dato. Ma in una casella di testo non associata penso si possa fare. Ad ogni modo non ho mai utilizzato i tag nelle maschere. Me ne servo nei report.

    Non è bene banalizzare la cosa… servirebbe approfondire la gestione e l'esigenza reale…

    Il fatto che tu abbia detto che lo usi nei Report significa che non hai una visione completa del problema, i Report li generi a bocce ferme, non hai variazioni in corso da gestire, applichi la Formattazione ed è finita, ovvio che funziona ed è banale. 

    Se usi una TextBox non associata ed impostata in modalità RTF, ovviamente applichi i criteri senza far danni… questo punto di vista è molto limitato.

    Tutto semplice se si parla di una Evidenziatura o più ma OneShot, se invece devi gestire più criteri magari da smarcare o manipolare in modo progressivo, o cambiare perchè cambiano alcuni criteri e non altri…?

     Quando si parla di Form, che devono consentire l'operatività umana e non solo la visualizzazione del risultato finale le cose si complicano.

    Io per farlo ho utilizzato un metodo a Stack memorizzando i criteri in una Collectiondi Classi, a quel punto si che diventa tutto gestibile… ma non è ne semplice ne banale. 

    Puoi vedere questo Esempio:

    https://1drv.ms/u/s!Are2sGzrs4WCow9_W5x4Yz5JsTnJ?e=k4xtBe

  • Re: Formattazione condizionata testo che contiene.

    Se usi una TextBox non associata ed impostata in modalità RTF, ovviamente applichi i criteri senza far danni… questo punto di vista è molto limitato

    Sarà anche limitato, ma plausibile nel contesto di una textbox non associata. Sicuramente ho commesso l'errore di non premettere all'inizio l'operatività del metodo nel caso particolare di una textbox non associata. Ma considerate le poche informazioni offerte da ludovico e lo spirito del forum (secondo me di fornire spunti da cui partire per lavorare) in fondo è stato un peccato veniale.

  • Re: Formattazione condizionata testo che contiene.

    06/06/2023 - Antony73 ha scritto:


    Se usi una TextBox non associata ed impostata in modalità RTF, ovviamente applichi i criteri senza far danni… questo punto di vista è molto limitato

    Sarà anche limitato, ma plausibile nel contesto di una textbox non associata. Sicuramente ho commesso l'errore di non premettere all'inizio l'operatività del metodo nel caso particolare di una textbox non associata. Ma considerate le poche informazioni offerte da ludovico e lo spirito del forum (secondo me di fornire spunti da cui partire per lavorare) in fondo è stato un peccato veniale.

    Lo spirito è esporre soluzioni e criticità, se ci si limita alla prima cosa che viene in mente senza approfondire le cose… è sicuramente Veniale… e Limitato come approccio, ovvero superficiale.
    Spesso chi chiede nemmeno sa bene cosa stia chiedendo, ed è per questo che chi ha qualche esperienza in più, deve esporre PRO e CONTRO proprio per far ragionare.

    Saluti 

  • Re: Formattazione condizionata testo che contiene.

    Credevo di aver esposto il problema in modo corretto e soprattutto credevo che questo problema fosse abbastanza banale, non immaginavo che invece fosse così complessa. Ho sempre utilizzato excel per i miei progetti ma , il lavoro mi ha richiesto un qualcosa di diverso ed ho ripreso ad utilizzare access. Vi ringrazio per le vostre lezioni ma ho optato per una semplice formattazione condizionata di una casella di testo.È sempre un piacere apprendere ed imparare cose nuove, ne farò tesoro.

    Considero questo argomento chiuso.  

Devi accedere o registrarti per scrivere nel forum
14 risposte