Message box si occurrence d'une case > 40 Excel

Boris85 -  
ccm81 Messages postés 11033 Statut Membre -

Bonjour,

J'aimerais pouvoir utiliser la fonction MSGBOX.

Dans la colonne B:B, j'ai des numéros de moules qui se déclarent à chaque fois que ceux-ci sont flashées. Cela peux prendre plusieurs milliers de lignes.

Dans la colonne D:D, j'ai l'inventaire de tous mes moules.

Dans la colonne E:E, j'ai le nombre de fois que les moules ont été utilisés.

Je voudrais qu'un message apparaisse dès qu'un moule a été utilisé plus de 40 fois.

Ce message devra faire apparaître le numéro du moule qui a dépassé les 40 utilisations.

Merci par avance pour votre retour

2 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     

    Bonjour

    msgbox > macro, c'est bien ce que tu veux ?

    Si oui, comment veux tu déclencher la recherche des moules ayant dépassé 40 utilisations ?

    Si non une MFC (mise en forme conditionnelle) pourrait suffire

    Cdlmnt

    0
    1. Boris85
       

      Bonjour,

      Oui je souhaiterais utiliser une macro.

      J'aimerai que celle-ci se déclenche dès qu'un nouveau numéro de moule est renseigné dans la colonne B:B.

      0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     

    1. Que veux tu dire par là ? Comment sont entrés ces n° de moules en colonne B ?

    Dans la colonne B:B, j'ai des numéros de moules qui se déclarent à chaque fois que ceux-ci sont flashées

    2. Si ces n° sont entrés "à la main" une solution

    Option Explicit
    
    Const conum = "B"
    Const conbr = "D"
    Const lideb = 2
    
    Const alerte = 5
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim plage As Range, li As Long, n As Long, nbocc As Long
    If Target.Count > 1 Then Exit Sub
    If Target = "" Then Exit Sub
    If Not Intersect(Target, Columns(conum)) Is Nothing Then
      li = Target.Row
      n = Target.Value
      Set plage = Range(conum & lideb & ":" & conum & li)
      nbocc = Application.WorksheetFunction.CountIf(plage, n)
      Range(conbr & li).Value = nbocc
      If nbocc >= alerte Then MsgBox "alerte moule n° " & n
    End If
    End Sub

    Cdlmnt

    0