Lancer une macro qui indiquerais un message d'erreur

Bonjour,

J'ai créé plusieurs tableau et des macro en vba , depuis plusieurs mois je suis sur mon projet et là j'avoue que je sature un peut.

Il me reste que quelques problèmes à régler mais j'aurais besoin de votre aide.

Dans le fichier j'ai plusieurs tableau mais pour vous expliquer je vais me concentrer que sur le premier.

J'aimerais que quand on sélectionne "C6 ou E6 ou G6 ou I6" ET si on choisis un produit dans le menu déroulant qui affiche "2" dans la case "C8 ou E8 ou G8 ou I8" alors un message apparaît "Produit incompatible, Veuillez sélectionner un autre produit".

j'ai tenté ceci

If Not Application.Intersect(Target, Range("C6,E6,G6,I6")) & Target.Offset(1, 0).Value = 2 Is Nothing Then Application.Run "Macro3"

et créé une macro 3 avec

Sub Macro3()
MsgBox " Selection incompatible, veuillez selectionner un autre produit"

End Sub

Mais cela ne fonctionne pas.

Pouvez-vous m'aidez?

J'aimerais aussi verrouiller toutes mes cellules sauf celles qui on un ruban et celles mises en gris.

Comment je peut faire? J'ai bien tenté déverrouiller ma feuille au lancement de macro et de la verrouiller après mais j'ai pas du mis prendre correctement car cela ne fonctionner pas.

Merci pour votre aide.

ps: c'est la premier fois que je code j’espère que j'ai pas trop fait cela comme un pied.

Bonjour,

Une proposition à étudier.

Cdlt.

Option Explicit

Private Sub Worksheet_Activate()
Dim rngData As Range
    With Me
        .Unprotect
        .UsedRange.Cells.Locked = False
        On Error Resume Next
        Set rngData = .UsedRange.SpecialCells(xlCellTypeFormulas)
        On Error GoTo 0
        rngData.Cells.Locked = True
        .Protect userinterfaceonly:=True
    End With
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Const RNG As String = "B6:I6,O6:V6,B15:I15,O15:V15,B24:I24,O24:V24,B33:I33,O33:V33,B42:I42,O42:V42,B51:I51,O51"
    If Not Intersect(Target, Me.Range(RNG)) Is Nothing And Target.CountLarge = 1 Then
        Select Case Target.Value
            Case "double", "B", "C", "E", "F":
                Application.EnableEvents = False
                MsgBox "Veuillez s?lectionner un autre produit !...", 64, "S?lection incompatible"
                Application.Undo
                Application.EnableEvents = True
            Case Else:
        End Select
    End If
End Sub

Bonjour, merci Jean-Eric pour ton aide mais malheureusement cela ne correspond pas a ma demande , dessolé

J'essaie de reformuler mon souhait:

J'aimerais avoir un message d'avertissement de type "Attention !!! Produit incompatible en C6 (ou E6 ou G6 ou I6 suivant d'où vient l'erreur) avec la configuration.Veuillez en choisir un autre" uniquement sous c'est condition

quand en C8 apparaît le chiffre 2

quand en E8 apparaît le chiffre 2

quand en G8 apparaît le chiffre 2

quand en I8 apparaît le chiffre 2

J'ai viens d'essayer autre chose, c'est presque bon, j'arrive à avoir mes message d'avertissement.

Private Sub Worksheet_Calculate()

If Range("C6").Offset(1, 0).Value = 2 Then MsgBox "Attention !!! Produit incompatible en C6 avec la configuration.Veuillez en choisir un autre"

If Range("E6").Offset(1, 0).Value = 2 Then MsgBox "Attention !!! Produit incompatible en E6 avec la configuration.Veuillez en choisir un autre"

If Range("G6").Offset(1, 0).Value = 2 Then MsgBox "Attention !!! Produit incompatible en G6 avec la configuration.Veuillez en choisir un autre"

If Range("I6").Offset(1, 0).Value = 2 Then MsgBox "Attention !!! Produit incompatible en I6 avec la configuration.Veuillez en choisir un autre"

End Sub

Mais le problème est le suivant :

quand je choisis dans le menu déroulant en B6 un produit qui me donne "2" en B8 j'ai une erreur 2042 car le VBA ne sais plus calculer le résultat en "C6" , cela est du à la disparition de la case "C6" dû à la fusion.

Y a t'il un moyen d'arranger cela?

Merci

ps: sur la feuille1 c'est qu'un échantillon du nombre de produit, en réalité je devrais en avoir presque 300 donc tous les inclure dans le VBA ce seras compliqué, de plus cette liste seras amener à évoluer.

Pour ce qui est des appels de macro et des macro existant , même si je sais que c'est pas top , j'aimerais que cela reste au maximum comme je les ai écrit , comme cela je peut les comprendre. merci

3pour-forum.xlsm (57.36 Ko)
Rechercher des sujets similaires à "lancer macro qui indiquerais message erreur"