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 :

Lancer message box en fonction d'une valeur [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingenieur
    Inscrit en
    Avril 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingenieur
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 30
    Par défaut Lancer message box en fonction d'une valeur
    Bonjour messieurs dames,

    Me revoilà ici car l'aide que vous m'avez apporté la dernière fois m'a été d'une grande utilité.

    Voila j'ai un tableau de suivi d'interventions et je souhaiterais que pour chaque intervention lorsque la cellule de la colonne AV prend une valeur déterminée, une msgbox (ou peu importe la méthode) s'affiche et rentre la date du jour dans la colonne AY de la ligne appropriée

    je peux joindre le fichier avec le résultat demandé s'il faut.

    Merci d'avance pour vos reponses

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    pour moi la demande n'est pas claire
    ma réponse est dans l'hypothèse suivant
    en feuil1 :
    en colonne A : titre de la tache
    en colonne B : date d'échéance
    le code suivant permet de contrôler si la date est déjà échue ou à échéance dans moins de 7 jours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub alerte()
    Dim w1 As Worksheet
    Dim i As Long
    Dim D As Date
    Set w1 = Worksheets("feuil1")
    D = Date
    ' *********************************
    For i = 2 To w1.Range("B" & Rows.Count).End(xlUp).Row
    p = D - w1.Range("B" & i)
    If p >= 0 Then MsgBox ("La date d'échéance pour  " & w1.Cells(i, "A").Value & "  à déja expirée depuis le : " & w1.Cells(i, "B").Value)
    If p > -7 And p < 0 Then MsgBox ("La date d'échéance pour " & w1.Cells(i, "A").Value & "  Prévue le :  " & w1.Cells(i, "B").Value)
    Next i
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Ingenieur
    Inscrit en
    Avril 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingenieur
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 30
    Par défaut
    Bonjour Bennasr,

    deja merci pour ta reponse.
    Je vais essayer de clarifier ma demande.

    Colonne A : Nom du client
    Colonne B : Statut de l'intervention (liste deroulante)
    Colonne C : Date du lors du changement de statut

    Je souhaite que lorsque dans la colonne B je choisis dans la liste déroulante "intervention terminée" qu'il apparaisse un message (par exemple "facturation a partir de ce jour?") et que si on clique oui il apparaisse dans la colonne C la date du jour. Si on clique non alors rien ne se passe.

    l'objectif c'est d'avoir ca pour toute les lignes de mon tableau

  4. #4
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour à tous,

    Tu as besoin des msgbox avec le boutons oui/non. pour plus de détail va voir ce tuto

    https://fring.developpez.com/vba/excel/msgbox/

    comme tu veux que cela se déclenche dès le changement d'une cellule par liste déroulente il te faut une macro événementielle. Celle-ci ne se met pas dans un module mais dans la feuille ad hoc.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    End Sub
    Le target est la cellule qui change de valeur (Target.Row)la ligne (Target.column)la colonne

    tu essaies puis tu reviens nous voir avec ta production

    A bientôt

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    si j'ai compris la demande essayez avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Dim i As Long
    For i = 2 To Sheets("feuil1").Range("A65536").End(xlUp).Row
      If Cells(i, 2) = "Intervention Terminée" And Cells(i, 3) = "" Then
      If MsgBox("Voulez vous introduire la date de cloture à l'intervention du client :  " & Cells(i, 1), vbYesNo, "Demande de confirmation") = vbYes Then
      Cells(i, 3) = Date
      End If
      End If
    Next i
    End Sub
    Fichiers attachés Fichiers attachés

  6. #6
    Membre averti
    Homme Profil pro
    Ingenieur
    Inscrit en
    Avril 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingenieur
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 30
    Par défaut
    Bonjour messieurs,

    Énorme merci une fois de plus pour la réponse.
    C'est ce que j'attendais comme résultat.

    Cependant je ne souhaite pas appuyer sur un bouton pour déclencher l'action.
    L'idéal si c'est possible est que la macro se lance automatiquement lorsque je choisi "intervention terminée" dans ma liste déroulante.

    Aussi, dans le code que tu as fait BENNASR, si on clique sur non quand choisi "intervention terminée" dans la liste déroulante, rien ne s'affiche dans la colonne 3 (ce qui est le résultat attendu).
    Cependant si on lance juste après la macro pour le client B, une messagebox s'affiche pour le client A puis B.

    Igloobel, je te remercie pour la reponse mais je ne suis pas assez bon je pense.
    Je n'ai pas compris la phrase ci dessous :

    Le target est la cellule qui change de valeur (Target.Row)la ligne (Target.column)la colonne

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/01/2015, 15h28
  2. Réponses: 3
    Dernier message: 23/12/2014, 09h05
  3. [VBA-E]couper en fonction d'une valeur
    Par captaine93 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/06/2006, 12h18
  4. Taches en fonction d'une valeur
    Par petitours dans le forum C
    Réponses: 14
    Dernier message: 06/11/2005, 09h40
  5. fonction retournant une valeur
    Par ryan dans le forum ASP
    Réponses: 4
    Dernier message: 06/09/2004, 17h45

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