Code pour effectuer un test [Résolu]

Signaler
Messages postés
21
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
16 février 2020
-
yg_be
Messages postés
9677
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 février 2020
-
Bonsoir a tous, forum,

Configuration: Windows 10/ Internet Explorer 11.0

Je suis sous Windows 10 et Excel 2007

J'ai une cellule O35 qui a une somme solde Ex 1400€
Et une cellule P35 qui m'affichera les messages.

Je souhaiterai svp en VBA un petit code pour effectuer un test sur la cellule O35

Ex Si la somme cellule O35 est inférieur a zéro alors on affiche en P35 "RETARD" en Rouge
Ex Si la somme cellule O35 est supérieur a zéro alors on affiche en P35 "SOLDE" en Vert

Svp Pas mise en forme conditionnel, merci a vous pour votre savoir partagé.

bonne soirée a tous et merci a vous.

Cdlt Ray

4 réponses

Messages postés
4635
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
19 février 2020
122
Bonsoir Ray, bonsoir le forum

Si O35 est une formule le code ci-dessous agira chaque fois que la formule sera recalculée (à placer dans le composant VBA de l'onglet concerné) :
Private Sub Worksheet_Calculate()
Select Case Range("O35").Value
    Case Is < 0
        With Range("P35")
            .Value = "RETARD"
            .Font.ColorIndex = 3
        End With
    Case Is > 0
        With Range("P35")
            .Value = "SOLDE"
            .Font.ColorIndex = 4
        End With
    Case Is = 0
        With Range("P35")
            .Value = ""
            .Font.ColorIndex = xlNone
        End With
End Select
End Sub


Si O35 n'est pas une formule, le code ci-dessous agira chaque fois que O35 sera modifiée, éditée ou remplacée (à placer au même endroit) :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$O$35" Then Exit Sub
Select Case Target.Value
    Case Is < 0
        With Target.Offset(0, 1)
            .Value = "RETARD"
            .Font.ColorIndex = 3
        End With
    Case Is > 0
        With Target.Offset(0, 1)
            .Value = "SOLDE"
            .Font.ColorIndex = 4
        End With
    Case Is = 0
        With Target.Offset(0, 1)
            .Value = ""
            .Font.ColorIndex = xlNone
        End With
End Select
End Sub



Salut Thau Theme,

J'ai fait des essais en essayant d'intégrer le code avec le mien mais ca fonctionne pas , j'ai erreur dépassement de pile et le tableau de ma compta merdouille.

Bonne soirée a toi et merci et bon W-end également.

Cdlt Ray
Salut ThauTheme,

merci pour le code, c'est sympa a toi.

je ne sais pas ou intégrer le code car ca ne fonctionne pas comme voulu.

je te mets la partie de mon code qui fonctionne

ma cellule O35 contient une formule (Somme) O30:O34 résultat dans O35
Public Sub Worksheet_Calculate()
    
    C = Month(Now) + 4
    R = [Z1].Value: If R < 2 Then R = 1
    Cells(R, 17).Font.ColorIndex = 10       'Vert fonc?
    Cells(R, 17).Interior.ColorIndex = 15

    With Cells(R, 17).Interior
                     .ColorIndex = 15       'Gris affiche barre rep?re Gris clair

        If Cells(20, C).Text <> Cells(R, 17).Text Then

            Application.EnableEvents = False
               R = R + 1: If R > 26 Then R = 2
               [Z1].Value = R
               Cells(R, 17).Value = Cells(20, C).Value
              .ColorIndex = xlNone
            Application.EnableEvents = True

        End If
    End With
         Cells(R, 17).Font.ColorIndex = 5    'Bleu
End Sub


Merci d'avance pour ton aide, bonne après midi a toi

Cdlt Ray
yg_be
Messages postés
9677
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 février 2020
532
le code suggéré doit se mettre à la suite du code que tu montres.
Salut yg_be, forum,

Merci pour ta réponse, c'est sympa a toi.

J'ai bien insérer le code suggéré juste avant le SUB et dans le code suggéré je n'ai pas mis la première et dernière ligne de code puisque déjà présent dans mon code.

mais toujours cette erreur que je mets en lien voir ci-dessous svp

Mon code est un bout de ma compta dont je me sers tous les jours et pas de soucis avec mais avec le code suggéré ca fontionne pas.

Bon W-end a toi et merci.

https://www.cjoint.com/c/JBig63squZY

Cdlt Ray

<gras</gras>
yg_be
Messages postés
9677
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 février 2020
532
"je n'ai pas mis la première et dernière ligne de code": sans doute utile que tu nous montres ce que tu as fait.
> yg_be
Messages postés
9677
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 février 2020

Re yg_be,

Voila le code suggéré incorporer au mien .

j'ai essayer de decaler ailleurs dans le code mais le résultat est toujours l'erreur de pile comme sur la photo
envoyer ce matin.

pas trouver comment faire.

Merci de ton aide,

Cdlt Ray


Public Sub Worksheet_Calculate()

C = Month(Now) + 4
R = [Z1].Value: If R < 2 Then R = 1
Cells(R, 17).Font.ColorIndex = 10 'Vert fonc?
Cells(R, 17).Interior.ColorIndex = 15

With Cells(R, 17).Interior
.ColorIndex = 15 'Gris affiche barre rep?re Gris clair

If Cells(20, C).Text <> Cells(R, 17).Text Then

Application.EnableEvents = False
R = R + 1: If R > 26 Then R = 2
[Z1].Value = R
Cells(R, 17).Value = Cells(20, C).Value
.ColorIndex = xlNone
Application.EnableEvents = True

End If
End With
Cells(R, 17).Font.ColorIndex = 5 'Bleu

'############## Private Sub Worksheet_Calculate() 'code déjà en premiere ligne
Select Case Range("O35").Value
Case Is < 0
With Range("P35")
.Value = "RETARD"
.Font.ColorIndex = 3
End With
Case Is > 0
With Range("P35")
.Value = "SOLDE"
.Font.ColorIndex = 4
End With
Case Is = 0
With Range("P35")
.Value = ""
.Font.ColorIndex = xlNone
End With
End Select
'############# End Sub 'ligne deja presente ci-dessous
End Sub
yg_be
Messages postés
9677
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 février 2020
532 > duduleray
merci d'utiliser les balises de code, en précisant "basic" pour du VBA.
moi j'essaierais en modifiant Application.EnableEvents en début et en fin de la sub, et pas au milieu.
Re Salut,

Désoler pour les balises mais a chaque fois que je vais sur CCM, il y a toujours quelque chose qui va pas.

les soucis rencontrer sont divers, comme.

je peux pas répondre aux gens
je ne peux pas recopier des codes
j'utilise les balises mais ca marche pas, c'est toi qui m'avait dit voici un moment, en précisant "basic" pour VBA

Je ne sais pas d'où ca vient.

Alors, c'est bon ça fonctionne bien, plus d'erreur de pile, ni autres d'ailleurs.

Je te remercie pour ton intervention et a l'ami ThauTheme merci pour le code.

Bien des remerciements a vous deux et bon W-end.

Au plaisir d'une prochaine discussion, bye bye

Bien cordialement Ray
yg_be
Messages postés
9677
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 février 2020
532
peux-tu alors marquer la discussion comme résolue?