IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

message suite deux conditions [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Août 2013
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2013
    Messages : 2
    Par défaut message suite deux conditions
    Bonjour,

    Je suis un grand novice en VBA et je voudrais avoir votre aide svp.

    alors j'ai un fichier dans lequel j'ai des taches qui doivent etre faites a des dates précises, et voudrais me créer des alertes quand ces taches ne sont pas faites on time.

    j'ai quelques chose qui ressemble à ça

    Colonne A : tache
    Colonne E : menu déroulant, l'utilisateur choisit entre FAIT ou PAS FAIT
    Colonne D : deadline

    je voudrais avoir un message, qui me dit quand j'ouvre le fichier que la tache X de la date Y n'a pas été faite alors que la deadline est passée.

    pour le moment, j'ai fait la condition sur la date, il me reste de vérifier si la tache a été faite ou pas.

    en fait je veux commencer par vérifier si la tache a été faite ou pas, quand elle est faite c'est bon, sinon je regarde la date, si elle est pas faite et en retard alors a ce moment j'affiche le message.

    voila ou j'en suis pour le moment.

    j'espère avoir été clair.

    merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Private Sub Workbook_Open()
    Dim Cel As Range, X As Long, Msg As String, Cel1 As Range ',Y As Long,
     
    X = Cells(Rows.Count, "D").End(xlUp).Row
    X = IIf(X < 1, 1, X)
     
                For Each Cel In Range([D1], Cells(X, "D"))
                        If Cel < DateSerial(Year(Date), Month(Date), Day(Date)) Then
     
                Msg = Msg & " Attention à la tache de la ligne " & Cel.Row & " , prévue pour le " & Cel & " " & Cel.Offset(0, -2) & Chr(13)
     
            End If
     
               Next Cel
     
     
        If Msg <> "" Then MsgBox Msg
     
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Avec ce code ça devrait fonctionner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Option Explicit
     
    Private Sub Workbook_Open()
     
      Dim Cel As Range
      Dim X As Long
      Dim Msg As String
     
      X = Range("F" & Rows.Count).End(xlUp).Row
     
      For Each Cel In Range([D1], Cells(X, "F"))
     
        If IsDate(Cel.Value) Then
          If Cel < Date And Cel.Offset(0, -1).Value = "PAS FAIT" Then
            Msg = Msg & " Attention à la tache de la ligne " & Cel.Row & " , prévue pour le " & Cel & " " & Cel.Offset(0, -2) & Chr(13)
          End If
        End If
     
      Next Cel
     
      If Msg <> "" Then MsgBox Msg, vbOKOnly + vbInformation, "Message d'information"
     
    End Sub

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Une autre solution sans VBA serait de mettre en évidence les lignes contenant les projets non terminés en appliquant une mise en forme conditionnelle.
    La formule à placer dans la MFC après avoir sélectionné la plage des données et en supposant que les données commence en A2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =($E2="Pas fait") * ($D2<AUJOURDHUI())
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Candidat au Club
    Inscrit en
    Août 2013
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2013
    Messages : 2
    Par défaut Merci
    Merci pour votre répnse, c'est exactement ce que je voulais.

    Merci encore une fois

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. une colonne repondant a la fois a deux conditions
    Par kase74 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/08/2006, 09h14
  2. [FLASH MX2004] Deux conditions dans une boucle
    Par pierrot10 dans le forum Flash
    Réponses: 1
    Dernier message: 06/11/2005, 16h31
  3. Peut on faire un selon à deux conditions ?
    Par Celia1303 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 18/10/2005, 16h16
  4. Instructions select case à deux conditions
    Par Celia1303 dans le forum Access
    Réponses: 15
    Dernier message: 14/10/2005, 16h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo