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 :

aide pour macro: afficher Msg box "Résultat + texte"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 88
    Par défaut aide pour macro: afficher Msg box "Résultat + texte"
    Bonjour chers forumistes,

    J'ai besoin de votre aide, j'essaie de réaliser une macro qui me permet à partir de ça
    Nom : à.JPG
Affichages : 1180
Taille : 12,4 Ko

    en fonction du résultat de mon B1: qui est une variable ( valeur calculée à partir d'une formule)

    Il faut que je vienne saisir des valeurs dans B2 et B3 sachant que le total doit etre forcément égal à mon B1 ni plus ni moins ===> B1=B2+B3
    Sachant que je ne suis pas obligée de remplir B2 et B3, une suffit du moment que le total correspond à B1

    Dans mon exemple: B1=10
    il faut que quand je vienne saisir dans ma B2=3
    qu'il y ait un message qui me calcule la différence B1-B2.
    Dans mon exemple il faut que dés que je saisisse B2=3 un message du genre " attention il vous reste 7h à saisir" ( 10-3)

    Autre exemple: si B1=10 et que j'ai saisi dans B2=10, c'est ok RAS

    Je voulais faire un MsgBox mais je ne peux pas intégrer une formule dans le message

    Je ne sais pas si je suis claire mais je reste à dispo si ya des réponses

    merci d'avance

  2. #2
    Membre éprouvé Avatar de LawNasK
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 144
    Par défaut
    Bonjour,

    Dans le code de ta feuille :

    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
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim KeyCells As Range
        Dim resultat As Double
     
        ' La variable KeyCells contient les cellules qui déclencheront
        ' une alerte si elles sont modifiées.
        Set KeyCells = Range("B2")
     
        If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
            If Range("B2").Value < Range("B1").Value
                resultat = Range("B1").Value - Range("B2").Value
                MsgBox("Il reste " & resultat  & "h à saisir.")
            End If
        End If
    End Sub
    C'est ce que tu voulais ?

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 88
    Par défaut
    A oui c'est très bien, merci beaucoup
    du coup je dois intégrer deux autres conditions, j'ai essayé avec ton code mais j'ai besoin de ton aide encore

    Si
    B1=10
    B2=
    B3=

    Il faut que ma B2= B1-B3
    mais si je saisis (dans notre exemple) 11, il faut que excel interdit la saisie

    une autre condition, ma B2 ne doit pas excéder 7, donc pareil meme si 7<B1
    il faut qu'excel rejette la saisie.

    Du coup j'ai rajouté à ton code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      If Range("B2").Value > Range("B1").Value Then
                MsgBox (" Vous ne pouvez pas saisir cette valeur")
            End If
     
            If Range("B2").Value > 7 Then
                MsgBox (" Vous ne pouvez pas saisir au dela de 7h")
             End If
    Mais là ça affiche le message mais ça prend la saisie, ca n'interdit pas la valeur

    Je ne sais pas si j'ai été claire,

    Merci pour ton aide

    pour etre plus claire
    il faut que:

    B2=B1-B3 ET B1<=7

    si oui je mettrai le msgbox que tu m'as mis
    sinon rejeter la saisie faite

  4. #4
    Membre éprouvé Avatar de LawNasK
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 144
    Par défaut
    Citation Envoyé par ilissnmiden92 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      If Range("B2").Value > Range("B1").Value Then
                MsgBox ("Vous ne pouvez pas saisir cette valeur.")
            End If
     
            If Range("B2").Value > 7 Then
                MsgBox ("Vous ne pouvez pas saisir plus que 7h.")
             End If
    Tu peux rajouter dans l’exécution de ces conditions:
    C'est un peu Bob le bricoleur mais ça fonctionne.

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 88
    Par défaut
    Merci pour le "", ça a marché,
    du coup, un dernier problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
            If Range("B2").Value < Range("B1").Value
                resultat = Range("B1").Value - Range("B2").Value
                MsgBox("Il reste " & resultat  & "h à saisir.")
            End If
    ET

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If Range("B2").Value <= 7 Then
     
    ' En fait il faut que je cumule les 2 dans la même condition:
                resultat = Range("B1").Value - Range("B2").Value
                MsgBox("Il reste " & resultat  & "h à saisir.")
     
            End If
    Il faut que ca soit ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Range("B2").Value < Range("B1").Value [/B]ET [B]Range("B2").Value <= 7 Then
    merci

  6. #6
    Membre éprouvé Avatar de LawNasK
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 144
    Par défaut
    Citation Envoyé par ilissnmiden92 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Range("B2").Value < Range("B1").Value [/B]ET [B]Range("B2").Value <= 7 Then
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Range("B2").Value < Range("B1").Value AND Range("B2").Value <= 7 Then

  7. #7
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 88
    Par défaut
    Bonjour Law Nask,
    Ca ne marche pas malheureusement, quand je saisis 8 en B2, excel le prend

    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
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim KeyCells As Range
        Dim resultat As Double
     
        ' La variable KeyCells contient les cellules qui déclencheront
        ' une alerte si elles sont modifiées.
        Set KeyCells = Range("B2")
        If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
       If Range("B2").Value < Range("B1").Value Then
     
                Range("B2").Value <=7      'ma valeur B2 ne doit pas dépasser 7 JE CROIS QUE C'EST LA  OU CA COINCE 
                resultat = Range("B1").Value - Range("B2").Value
                MsgBox ("Il reste " & resultat & "h à saisir.")
            End If
            If Range("B2").Value > Range("B1").Value Then
                MsgBox (" Vous ne pouvez pas saisir cette valeur")
                Range("B2").Value = ""
            End If
     
        End If
     
     
    End Sub

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/04/2014, 07h22
  2. besoin d'aide pour macros ou VBA
    Par jmsor dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/02/2007, 18h41
  3. [VBA-E][débutant]aide pour macro sous excel
    Par julyBL dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 09/06/2006, 22h42
  4. [VBA-E] aide pour macro sur excel
    Par letoulouzin31 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 24/05/2006, 11h29

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