Excel : affichage msg à l'ouverture feuille

Bonjour,

Je souhaite afficher un message lors de l'ouverture d'une feuille sur Excel.
Ce message va être en fonction du contenue de la feuille, C'est à dire il va vérifier si une condition est vrai pour lancer le message (condition sur contenue des cellules).

Je ne sais pas si je me suis bien exprimer, sinon je peux ré expliquer mon problème

3 réponses

  1. Contributeur
    Bonjour,

    Tu as bien dit feuille et non classeur...
    A mettre donc dans la feuille concernée :
    Private Sub Worksheet_Activate()
        If [A1] = "" Then MsgBox ("Tu vas remplir A1 oui ????")
    End Sub

    eric
    0
    1. Merci Eric pour ta réponse,
      C'est que j'ai un classeur de plusieurs feuille, et je dois vérifier le contenu de plusieurs cellules.
      pour toutes les feuilles j'aurai la même condition qui sera de:
      Si [la date dans la cellule (C1, C2 .... Cn) - Date d'aujourd'hui] < à "machin" afficher le message!

      Normalement je vais faire comme suit :

      Private Sub Worksheet_Activate()
      If [C1] - 'date d'aujourdhui' < "10" Then
      MsgBox ("la date va bientôt expirer")
      End Sub

      mais pour toutes les cellules? ^^

      Merci d'avance
      0
      1. Contributeur
        Et pourquoi pas tout dire tout de suite ???

        pour toutes les feuilles...
        réellement toutes ?

        Si [la date dans la cellule (C1, C2 .... Cn) - Date d'aujourd'hui] < à "machin" afficher le message!
        machin est fixe dans le code ? variable ? dans une cellule de la feuille ? ou d'une feuille particulière ?

        Et s'il y a 3 dates qui répondent au critères, on laisse chercher l'utilisateur ? on les liste ? on les met en rouge ? ou...

        eric
        0
      2. Oui toutes les feuilles ;) je suis pas doué donc excuse mon ignorance.
        ça serai parfait s'il colorise les dates (les cellules) qui vont bientôt expiré ^^ ça serai mieux je pense, sinon si c'est un peux compliquer qu'il les liste :D (si ça demande beaucoup d'expérience)
        0
    2. Contributeur
      Re,

      à mettre dans thisworkbook :
      Private Sub Workbook_SheetActivate(ByVal Sh As Object)
          Dim lig As Long
          Application.ScreenUpdating = False
          For lig = 2 To [C65536].End(xlUp).Row
              If IsDate(Cells(lig, 3)) And (Cells(lig, 3) - Date) < 10 Then
                  Cells(lig, 3).Interior.ColorIndex = 38
              Else
                  Cells(lig, 3).Interior.ColorIndex = xlNone
              End If
          Next lig
          Application.ScreenUpdating = True
      End Sub
      

      eric
      0
      1. Merci beaucoup Eric, je vais tester ça, je te dirai si je m'en sors ^^
        0