+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 7 su 7

colorazione di txtbox in base a condizione

  1. #1
    servinci non è in linea Novello
    Buongiorno a tutti, vorrei chiedervi un aiuto. Ho una maschera in visualizzazione " Maschera Singola " collegata ad una tabella, trattasi di una maschera per l'inserimento delle estrazioni del lotto , ne consegue che sono presenti tutti i campi che compongono una estrazione( Data, Conc., EstrMens, BA1, BA2, BA3 … e così via)ho inserito una textbox non associat (Testo73), ora ho bisogno che le textbox si colorino di verde se la c’è la condizione di rosso se non c’è la condizione qui sotto il codice che ho usato:

    Private Sub Form_Current()
    If BA3 + NA1 = 90 Then
    BA3.BackColor = RGB(0, 255, 0)
    NA1.BackColor = RGB(0, 255, 0)
    Testo73.BackColor = RGB(0, 255, 0)
    Else
    BA3.BackColor = RGB(255, 255, 255)
    NA1.BackColor = RGB(255, 255, 255)
    Testo73.BackColor = RGB(255, 0, 0)
    End If
    
    If BA3 + NA2 = 90 Then
    BA3.BackColor = RGB(0, 255, 0)
    NA2.BackColor = RGB(0, 255, 0)
    Testo73.BackColor = RGB(0, 255, 0)
    Else
    BA3.BackColor = RGB(255, 255, 255)
    NA2.BackColor = RGB(255, 255, 255)
    Testo73.BackColor = RGB(255, 0, 0)
    End If
    
    If BA3 + NA3 = 90 Then
    BA3.BackColor = RGB(0, 255, 0)
    NA3.BackColor = RGB(0, 255, 0)
    Testo73.BackColor = RGB(0, 255, 0)
    Else
    BA3.BackColor = RGB(255, 255, 255)
    NA3.BackColor = RGB(255, 255, 255)
    Testo73.BackColor = RGB(255, 0, 0)
    End If
    
    If BA3 + NA4 = 90 Then
    BA3.BackColor = RGB(0, 255, 0)
    NA4.BackColor = RGB(0, 255, 0)
    Testo73.BackColor = RGB(0, 255, 0)
    Else
    BA3.BackColor = RGB(255, 255, 255)
    NA4.BackColor = RGB(255, 255, 255)
    Testo73.BackColor = RGB(255, 0, 0)
    End If
    
    If BA3 + NA5 = 90 Then
    BA3.BackColor = RGB(0, 255, 0)
    NA5.BackColor = RGB(0, 255, 0)
    Testo73.BackColor = RGB(0, 255, 0)
    Else
    BA3.BackColor = RGB(255, 255, 255)
    NA5.BackColor = RGB(255, 255, 255)
    Testo73.BackColor = RGB(255, 0, 0)
    End If
    
    End Sub
    
    Funziona a pezzi, mi spiego. Se trova la condizione su qualsiasi somma di queste textbox colora di verde solo le txtbox di NA1, NA2, NA3, NA4, NA5 le rende bianche se non trova la condizione, la BA3 anche se presente la condizione rimane sempre bianca e la Testo73 resta sempre rossa anche se presente la condizione. C’è qualcuno che può darmi una mano? Grazie e tutti anticipatamente. Vorrei allegare il file ma non riesco a farlo.
    Ultima modifica di servinci; 08-10-2021 12:26  Motivo: Tag CODE

  2. #2
    Per il codice usa i tag CODE

    Nella prima If..Else, nella parte THEN gestisci la BA1 e nella parte ELSE la BA3

    Come mai?
    ℹ️ Leggi di più su AntonioG ...

  3. #3
    servinci non è in linea Novello
    grazie Antonio ho commesso questo errore di battitura in questo post, nel file è tutto esatto. questo è il link per scaricare il file:
    https://drive.google.com/file/d/124k...ew?usp=sharing

    come si può notare nell'estrazione di ieri 07/10/2021 c'è una condizione che è BA3 (66) + NA4 (24) hanno somma 90 e si nota che:
    BA3 non viene colorata di verde se presente la condizione
    NA4 viene colorata di verde se presente la condizione
    Testo73 resta rossa anche se presente la condizione
    Ultima modifica di servinci; 08-10-2021 12:25 

  4. #4
    Ma è ovvio perché subito dopo c'è un altro test con BA3 (e NA5) e questo "spegne" nuovamente BA3 che era diventato verde
    ℹ️ Leggi di più su AntonioG ...

  5. #5
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Si ricorre ad allegare il file se è indispensabile, e non mi pare lo sia.
    Devi ottimizzare tutti quei controlli IF... basati sempre su BA3 che rendono estremamente ridondante il codice.. oltre che errato dal momento che si verificano più condizioni e vince l'ultima mentre servirebbe dare una priorità ed esclusività ad ogni condizione...
    SELECT CASE TRUE
        CASE BA3+NA1=90
             'Condizione di colore
        CASE BA3+NA2=90
             ' Condizione...
        CASE BA3+NA3=90
             ' .....
        CASE BA3+NA4=90
             ' .....
        CASE BA3+NA5=90
             ' .... 
        CASE ELSE
             ' Condizione esterna a chiusura
    END SELECT
    
    Strutturando in questo modo riesci a ridurre la confusione.
    ℹ️ Leggi di più su @Alex ...

  6. #6
    servinci non è in linea Novello
    Buona sera a tutti, come sempre grandi e disponibili, un grazie in particolare lo voglio fare ad @Alex che con tutti quanti ha una pazienza immane, è vero @Alex non occorre allegare un file basta spiegare bene il problema e arrivano gli aiuti però io ad esempio quando cerco qualcosa mi piacerebbe avere un file da poter visionare e capire cosa genera cosa. Oggi che sono riuscito innanzitutto a studiare "Select case" mi ha consentito di poterlo strutturare a mio piacimento implementandolo con altro codice, ma forse non va inserito nella "Private Sub Form_Current()" perchè ogni volta che faccio aggiungi record mi da errore di debug perchè le txt in questione non contengono numeri. vedrò di capire come fare Preciso che non amo la pappa pronta, amo che le cose mi vengano spiegate e casomai indicato che tipo di funzione devo usare per poterla studiare. Grazie di vero cuore ripeto a tutti.

  7. #7
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Basta aggiungere una gestione di verifica del Nuovo Record...
    Private Sub Form_Current()
        If not Me.NewRecord then
            Select case.... 
                 Case....
                 Case ....
            End select
        End If
    End sub
    
    ℹ️ Leggi di più su @Alex ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Colorazione righe datagridview
    Da Francesco53 nel forum Visual Basic .Net
    Risposte: 4
    Ultimo Post: 07-01-2021, 17:41
  2. Individua doppia colorazione
    Da strategaD nel forum Visual Basic .Net
    Risposte: 6
    Ultimo Post: 06-12-2016, 15:24
  3. Copiare righe in base a condizione
    Da andreas21 nel forum Microsoft Excel
    Risposte: 9
    Ultimo Post: 06-02-2013, 14:37
  4. Eliminare record da un elenco in base a una condizione
    Da andreas21 nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 04-02-2013, 16:43
  5. colorazione istogramma excel
    Da abis nel forum Microsoft Excel
    Risposte: 1
    Ultimo Post: 11-01-2013, 00:10