Couleur msgrid [Résolu]

viftro 17 Messages postés mercredi 7 septembre 2011Date d'inscription 5 janvier 2017 Dernière intervention - 25 mars 2015 à 21:09 - Dernière réponse : ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention
- 21 janv. 2016 à 22:41
Bonjour,


-- j'utilise un contrôle msflexgrid que j'aimerais changer la couleur selon le critère payer ou impayer ..??aidez moi svp
Afficher la suite 

7 réponses

Répondre au sujet
cs_Robert33 835 Messages postés samedi 15 novembre 2008Date d'inscription 14 janvier 2017 Dernière intervention - 12 avril 2015 à 11:06
0
Utile
Bonjour

De mémoire tu dois avoir un propriété CellBackColor qui permet de changer la cellule selectionnée.
Commenter la réponse de cs_Robert33
Whismeril 10530 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention - 12 avril 2015 à 11:33
0
Utile
Bonjour quelle version de VB?
VB6, VB.Net, VBA, VBS?
Commenter la réponse de Whismeril
viftro 17 Messages postés mercredi 7 septembre 2011Date d'inscription 5 janvier 2017 Dernière intervention - 20 janv. 2016 à 01:51
0
Utile
vb6 merci c'est déja regler

--
Commenter la réponse de viftro
ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - Modifié par ucfoutu le 20/01/2016 à 07:55
0
Utile
Il est alors bien :
- de montrer la solution apportée (tu es ici sur un forum d'échanges)
- de libérer la présente discussion (un clic sur le tag RESOLU au niveau de ton 1ert message).

PS : j'ai par ailleurs déplacé cette discussion vers le sous-forum VB6 où elle aurait dû être ouverte.
J'observe à ce propos qu'aujourd'hui encore, tu viens d'ouvrir une discussion dans le forum GENERAL Visual Basic (ce qui ne permet pas de savoir sous quoi tu développes exactement).

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu
viftro 17 Messages postés mercredi 7 septembre 2011Date d'inscription 5 janvier 2017 Dernière intervention - 21 janv. 2016 à 20:41
0
Utile
1
--lOrgRow = MSGrid.Row
lOrgCol = MSGrid.Col

For lRow = MSGrid.FixedRows To MSGrid.Rows - 1
MSGrid.Row = lRow

If MSGrid.TextMatrix(lRow, 9) = "payer" Or MSGrid.TextMatrix(lRow, 9) = "PAYER" Then



lColor = vbGreen
Else

If MSGrid.TextMatrix(lRow, 9) = "impayer" Or MSGrid.TextMatrix(lRow, 9) = "IMPAYER" Then


lColor = vbRed
Else
lColor = vbWhite
End If
End If
For lCol = MSGrid.FixedCols To MSGrid.Cols - 1
MSGrid.Col = lCol
MSGrid.CellBackColor = lColor
Next lCol
Next lRow
vb95 1386 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 21 janv. 2016 à 21:34
C'est plus clair avec les balises de codes et l'indentaton

lOrgRow = MSGrid.Row
lOrgCol = MSGrid.Col
For lRow = MSGrid.FixedRows To MSGrid.Rows - 1
    MSGrid.Row = lRow
    If MSGrid.TextMatrix(lRow, 9) = "payer" Or MSGrid.TextMatrix(lRow, 9) = "PAYER" Then
        lColor = vbGreen
    Else
        If MSGrid.TextMatrix(lRow, 9) = "impayer" Or MSGrid.TextMatrix(lRow, 9) = "IMPAYER" Then
            lColor = vbRed
        Else
            lColor = vbWhite
        End If
    End If
    For lCol = MSGrid.FixedCols To MSGrid.Cols - 1
       MSGrid.Col = lCol
        MSGrid.CellBackColor = lColor
     Next lCol
Next lRow
Commenter la réponse de viftro
ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - Modifié par ucfoutu le 21/01/2016 à 23:36
0
Utile
Bonjour,
Ce qui devrait s'écrire plus efficacement et plus clairement ainsi (j'écris à main levée ... et à tester, donc ...)

dim lrow as integer, lcol as integer
with MSGrid
for lrow = .fixedrows to .rows - 1
coul = vbwhite
select case ucase(.textmatrix(lrow, 9))
case "PAYER"
coul = vbgreen
case "IMPAYER"
coul = vbred
case else
coul = vbwhite
end select
for lcol = .fixedcols To .cols - 1
.col = lcol
.row = lrow
.cellBackcolor = coul
next
next
end with


PS : tu n'as toujours pas libéré cette discussion. Fais-le s'il te plait en cliquant sur le tag RESOLU comme demandé plus haut.
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.