Formule si avec message erreur

Bonjour,

je veux si je choisi un taux de 0 a 100 l'une des cellules RA ou RC doit être renseigné obligatoirement.

25test-liquidation.xlsm (293.55 Ko)

Bonjour abdernino,

à tester

Sub worksheet_change(ByVal Target As Range)
   If Target.Column = 10 Then
       If Not Target = "" Then
           Cells(Target.Row, 11).Select
           If Cells(Target.Row, 11) = "" Then
               Cells(Target.Row, 11) = InputBox("Saisissez une Valeur RA ou cliquez sur OK/annuler pour saisir RC")
            If Cells(Target.Row, 11) <> "" Then Exit Sub
            End If
           If Cells(Target.Row, 11) = "" And Cells(Target.Row, 12) = "" Then
               Cells(Target.Row, 12) = InputBox("Saisissez une Valeur RC")
               Do Until Cells(Target.Row, 12) <> ""
                   MsgBox "Il faut saisir une valeur RC"
                   Cells(Target.Row, 12) = InputBox("Saisissez une Valeur RC")
               Loop
           End If
       End If
   End If
End Sub

Bonjour à tous,

Un essai sans VBA :

Crdlmt

Bonjour m3ellem1

Voila le code qui existe déjà quand j'ai rajouter ton code ca veut pas marché

Private Sub worksheet_change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

If Target = "" Then Exit Sub

If Not Intersect(Target, Range("K:K")) Is Nothing Then 'RA

If Range("j" & Target.Row) < 0 Or Range("j" & Target.Row) > 0.75 Then

MsgBox "Vous ne pouvez pas écrire dans cette cellule.", vbInformation, "Information"

Target = ""

End If

ElseIf Not Intersect(Target, Range("L:L")) Is Nothing Then 'RC

If Range("j" & Target.Row) <= 0 Or (Range("j" & Target.Row) > 0.75 And Range("j" & Target.Row) <> 1) Then

MsgBox "Vous ne pouvez pas écrire dans cette cellule.", vbInformation, "Information"

Target = ""

End If

End If

End Sub

Bonjour DjiDji59430

j'ai pas compris il est ou le contrôle j'ai essayer de mettre un taux et j'ai rien saisi ni sur RA , ni sur RC auvun message d'erreur .

Re

c'est simple

tu demandes que la liste soit visible si il y a quelque chose en RA .C'est ce qui se passe

Rien en RA, pas de liste.

T'as essayé de ne rien mettre en K11 ?? Et alors ???

11test-liquidation.xlsm (279.01 Ko)

Crdlmt

Bonsoir,

J'ai deja un contrôle pour ra et rc , maintenant je veux si je je mets un taux il faut absolument avoir un nombre sur ra ou rc

Bonsoir,

J'ai deja un contrôle pour ra et rc , maintenant je veux si je je mets un taux il faut absolument avoir un nombre sur ra ou rc

C‘est bien que t‘ai deja eu le controle pour le ra et le rc! Mais avec quelle methode? Quelle macro? Pour qu‘ on puisse t‘aider!

Private Sub worksheet_change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

If Target = "" Then Exit Sub

If Not Intersect(Target, Range("K:K")) Is Nothing Then 'RA

If Range("j" & Target.Row) < 0 Or Range("j" & Target.Row) > 0.75 Then

MsgBox "Vous ne pouvez pas écrire dans cette cellule.", vbInformation, "Information"

Target = ""

End If

ElseIf Not Intersect(Target, Range("L:L")) Is Nothing Then 'RC

If Range("j" & Target.Row) <= 0 Or (Range("j" & Target.Row) > 0.75 And Range("j" & Target.Row) <> 1) Then

MsgBox "Vous ne pouvez pas écrire dans cette cellule.", vbInformation, "Information"

Target = ""

End If

End If

End Sub

[/quote]

Voila la macro controle

Remplace cette macro avec celle-là et donne moi ton avis

Je n'ai pas de PC, donc j'ai pas pû tester cette macro, peut être qu'il faut faire des modifications.

Sub worksheet_change(ByVal Target As Range)
Dim RA As Variant
   If Target.Column = 10 Then
       If Not Target = "" Then
           Cells(Target.Row, 11).Select
           If Cells(Target.Row, 11) = "" Then

            Do
                RA = InputBox("Saisissez un nombre RA ou cliquez sur OK/annuler pour saisir RC")
                If RA = "" Then GoTo RC
                MsgBox "Il faut saisir une valeur numérique"
            Loop Until Val(RA) > 0
               Cells(Target.Row, 11) = RA

            If Cells(Target.Row, 11) <> "" Then Exit Sub
            End If
RC:
           If Cells(Target.Row, 11) = "" And Cells(Target.Row, 12) = "" Then
               Cells(Target.Row, 12) = InputBox("Saisissez une Valeur RC")
               Do Until Val(Cells(Target.Row, 12)) > 0
                   MsgBox "Il faut saisir une valeur numérique"
                   Cells(Target.Row, 12) = InputBox("Saisissez une Valeur RC")
               Loop

           End If
       End If
   End If
End Sub

Bonjour ,

trés bien merci beaucoup

, mais est ce que c'est possible de rajouter si taux =100 il faut saisir que sur RC impossible de saisir sur RA

et pour le taux =0 saisir que sur RA impossible de saisir sur RC

et si c'est taux 25 ,50,75 on peut saisir sur RC et RA

Bonjour ,

ce que je veux c'est un mix entre ma macro et la tienne

merci beaucoup

Re,

à tester

Sub worksheet_change(ByVal Target As Range)
Dim RA As Variant
   If Target.Column = 10 Then
   ActiveSheet.Unprotect
       If Not Target = "" Then
            If Target = 0 Then
              Cells(Target.Row, 11).Select
              Cells(Target.Row, 12).ClearContents
               Do
               RA = InputBox("Saisissez un nombre RA")
                If Not Val(RA) > 0 Then MsgBox "Il faut saisir une valeur numérique"
               Loop Until Val(RA) > 0
              Cells(Target.Row, 11) = RA
              Cells(Target.Row, 12).Locked = True
              ActiveSheet.Protect
             End If

            If Target = 1 Then
              Cells(Target.Row, 12).Select
              Cells(Target.Row, 11).ClearContents
               Do
               RC = InputBox("Saisissez un nombre RC")
                If Not Val(RC) > 0 Then MsgBox "Il faut saisir une valeur numérique"
               Loop Until Val(RC) > 0
             Cells(Target.Row, 12) = RC
             Cells(Target.Row, 11).Locked = True
             ActiveSheet.Protect
            End If

            If Target <> 0 And Target <> 1 Then
              Cells(Target.Row, 11).Select
               Do
               RA = InputBox("Saisissez un nombre RA")
                If Not Val(RA) > 0 Then MsgBox "Il faut saisir une valeur numérique"
               Loop Until Val(RA) > 0
             Cells(Target.Row, 11) = RA
               Do
               RC = InputBox("Saisissez un nombre RC")
                If Not Val(RC) > 0 Then MsgBox "Il faut saisir une valeur numérique"
               Loop Until Val(RC) > 0
             Cells(Target.Row, 12) = RC
            End If

       End If
   End If
End Sub

Bonjour ,

ça marche très bien , mais je clique sur annuler ça ne veut pas sortir pourquoi??

mais je clique sur annuler ça ne veut pas sortir pourquoi??

c'est normal on a réalisé tes conditions:

si taux =100 il faut saisir que sur RC impossible de saisir sur RA

et pour le taux =0 saisir que sur RA impossible de saisir sur RC

et si c'est taux 25 ,50,75 on peut saisir sur RC et RA et non pas RC ou RA

Si tu veux annuler, il faut l'ajouter dans le code! regarde mes derniers codes et insére la même syntaxe pour pouvoir utiliser "annuler"!

Bonne nuit et à la prochaine!

Rechercher des sujets similaires à "formule message erreur"