VBA selon égalité de cellule

bonjour,

en indentant ton code tu verrais que le code que tu as ajouté ne s'exécute que lorsque range("H6") n'est pas <0 (dépend du else), je suppose que ce n'est pas l'effet désiré.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Columns("AC:AC")) Is Nothing Then
        If Range("G6").Value = Range("H6").Value Then
            If Range("H6").Value < 0 Then
                MsgBox "DAYS ROTATIONS FACTOR IS LOW !"
            Else
                MsgBox "DAYS ROTATIONS FACTOR IS HIGH !"
                If Range("O6").Value = Range("P6").Value Then
                    MsgBox "EXTENSION FLAT !"
                    If Range("O6").Value > Range("P6").Value Then
                        MsgBox "EXTENSION HIGH !"
                    Else
                        MsgBox "EXTENSION LOW !"
                    End If
                End If
            End If
        End If
    End If
End Sub

probablement que ceci correspond mieux à ce que tu cherches à obtenir

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Columns("AC:AC")) Is Nothing Then
        If Range("G6").Value = Range("H6").Value Then
            If Range("H6").Value < 0 Then
                MsgBox "DAYS ROTATIONS FACTOR IS LOW !"
            Else
                MsgBox "DAYS ROTATIONS FACTOR IS HIGH !"
            End If
        End If

        If Range("O6").Value = Range("P6").Value Then
            MsgBox "EXTENSION FLAT !"
        ElseIf Range("O6").Value > Range("P6").Value Then
            MsgBox "EXTENSION HIGH !"
        Else
            MsgBox "EXTENSION LOW !"
        End If
    End If
End Sub

Non en effet ce n'est pas ce que je veux et la suite du code doit être indépendant de H6.

voir ma réponse précédente

Juste une question pour mettre le code dans une feuille

je fais "Tout sellectionner" clic droit copier et coller dans ma feuille concernée.

A l'exécution, j'ai toujours ce foutu message d'erreur " Erreur de compilation, Erreur de syntaxe"

bonjour,

as-tu une indication de la ligne qui provoque l'erreur ?

Donc lorsque j'ai la boite erreur et que j'ai pas encore sélectionné "OK"

j'ai la ligne " If Not Application.Intersect(Target, Columns("AC:AC")) Is Nothing Then" qui est sur un fond bleu

Lorsque je clic "OK"

j'ai la ligne "

Private Sub Worksheet_SelectionChange(ByVal Target As Range)" qui est surligné en jaune

et mon code est entièrement rouge sauf le End Sub qui est bleu

bonjour,

ce doit être lié à ton classeur. as-tu essayé cette opération sur un classeur vierge ?

d'autre part je pense qu'il serait mieux de remplacer

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

par

Private Sub Worksheet_Change(ByVal Target As Range)

pour avoir l'activation de la macro quand la cellule en AC est validée et pas au moment où elle est sélectionnée

Je viens de tester dans un classeur vierge j'ai le même message d'erreur.

J'ai aussi remplacer la ligne Private sub comme tu m'as suggéré

bonjour,

peux-tu sauver ce nouveau classeur (format avec macro) et nous le joindre ?

22classeurtest.xlsm (13.03 Ko)

Bonjour,

je ne m'explique pas le problème que tu rencontres. peut-être un problème de copier/coller. quel navigateur utilises-tu ?

Edge


j'ai mis le fichier du classeur vierge dans le post précédant

Bonjour,

J'ai re saisi le code sans le coller:

la macro ne se déclenchait pas,

j'ai remis la première ligne : Private Sub Worksheet_SelectionChange(ByVal Target As Range)

et là ça fonctionne...

je vais poursuivre en mettant mes autres conditions pour finir le code

Merci

Voilà le code terminé qui se déclenche lorsque je clique n'importe où dans la colonne AC.

If Not Application.Intersect(Target, Columns("AC:AC")) Is Nothing Then

If Range("G6").Value = Range("H6").Value Then

If Range("H6").Value < 0 Then

MsgBox "DAYS ROTATIONS FACTOR IS LOW !"

Else

MsgBox "DAYS ROTATIONS FACTOR IS HIGH !"

End If

End If

If Range("O6").Value = Range("P6").Value Then

MsgBox "EXTENSION FLAT!"

ElseIf Range("O6").Value > Range("P6").Value Then

MsgBox "EXTENSION HIGH !"

Else

MsgBox "EXTENSION LOW !"

End If

If Range("W6").Value = Range("X6").Value Then

MsgBox "POC FLAT!"

ElseIf Range("W6").Value > Range("X6").Value Then

MsgBox "POC HIGHER !"

Else

MsgBox "POC LOWER !"

End If

If Range("AE6").Value = Range("AF6").Value Then

If Range("AF6").Value < 0 Then

MsgBox "VA ROTATIONS FACTOR IS LOW !"

Else

MsgBox "VA ROTATIONS FACTOR IS HIGH !"

End If

End If

End If

End Sub

Rechercher des sujets similaires à "vba egalite"