Couleur msgrid

Résolu
viftro Messages postés 17 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 5 janvier 2017 - 25 mars 2015 à 21:09
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 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

6 réponses

cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
12 avril 2015 à 11:06
Bonjour

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

--
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 209
Modifié par ucfoutu le 20/01/2016 à 07:55
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.

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
viftro Messages postés 17 Date d'inscription mercredi 7 septembre 2011 Statut Membre Dernière intervention 5 janvier 2017
21 janv. 2016 à 20:41
--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 Messages postés 3483 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 17 juillet 2024 169
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 209
Modifié par ucfoutu le 21/01/2016 à 23:36
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.
Rejoignez-nous