Code pour effectuer un test

Résolu
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

  1. 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


    1. 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
  2. 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
    1. Contributeur
      le code suggéré doit se mettre à la suite du code que tu montres.
  3. 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>
    1. Contributeur
      "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.
    2. @yg_beRe 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
    3. Contributeur
      @duduleraymerci 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.
  4. 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
    1. Contributeur
      peux-tu alors marquer la discussion comme résolue?