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 :

Affichage MSGBOX selon valeur d'une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Affichage MSGBOX selon valeur d'une cellule
    Bonjour tout le monde,

    Mon niveau de programmation en VBA et quelque peu nul. Pour cela pourriez-vous m'aider à réaliser une opération qui consisterai à faire afficher une boîte de dialogue si la valeur d'une cellule n'est pas la bonne.

    Si vous vous référencer à la pièce jointe de ce post, cela aura plus de sens.

    Je m'explique :

    Une valeur est entrée dans la cellule D15. Si la valeur de la cellule C15 est égale à "épargnant" faire en sorte que lorsqu'une valeur est entrée dans l'une des cellules (D15, E15, F15) une MSGBOX apparaisse et ainsi dire à l'utilisateur s'est trompé de section.
    De même si la cellule G15 est renseigné alors que la cellule C15 affiche "allocataire", faire apparaître une MSGBOX disant à l'utilisateur qu'il s'est trompé de section.

    Si vous trouvé un autre moyen plus simple pour répondre à ce besoin, je suis tout-ouïe.

    Merci d'avance.

    Thimmy
    Images attachées Images attachées  

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 288
    Points : 281
    Points
    281
    Par défaut
    je vais essyer de ne pas dire trop de betises :

    1° tu recupere dans differentes variables les valeurs des cellules:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var=worksheets("Feuil1").cells(ligne,colonne)
    2° condition If (tout simplement):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if Var="épargnant" then
      if Var2<>"" or Var3<>""... then
        msgbox "vous vous etes trompé de section"
      end if
    end if
    3° ainsi de suite

    j'espere que c'est clair!
    j'ai fait ca vite fait sans trop verifier mais ca devrait fonctionner!

    tiens moi au courant

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Rappelant que suis un vrai novice dans le langage VBA j'ai inscrit ceci dans le code du classeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Var = Worksheets("Feuil1").Cells(ligne, colonne)
     
        If Var = "épargnant" Then
     
            If Var2 <> "" Or Var3 <> "" Then
                MsgBox "vous vous etes trompé de section"
            End If
     
        End If
    Une erreur survient lors de l'execution de ce code :

    Erreur d'exécution '9':

    L'indice n'appartient pas à la sélection.

  4. #4
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Tu peux essayer ceci
    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 Worksheet_SelectionChange(ByVal Target As Range)
    Dim DerL As Integer
     
    If Target.Count > 1 Then Exit Sub
     
    DerL = Cells(Rows.Count, 3).End(xlUp).Row
     
    If Not Application.Intersect(Target, Range("D15:F" & DerL)) Is Nothing Then
        If Range("C" & Target.Row) = "épargnant" Then
            MsgBox "vous vous trompez de section"
            Exit Sub
        End If
    ElseIf Not Application.Intersect(Target, Range("G15:I" & DerL)) Is Nothing Then
        If Range("C" & Target.Row) = "allocataire" Then
            MsgBox "vous vous trompez de section"
            Exit Sub
        End If
    End If
    End Sub
    D'après la copie d'écran, le code ne dois pas se limiter aux cellules C15, E15, F15 et G15. J'ai donc anticipé la question qui allait suivre, comment faire pour que le code agisse sur toutes les autres cellules ?

    Ce code est à placer tel quel dans la feuille concernée.
    Dans ton éditeur Visual Basic (Alt+F11), dans la fenêtre de gauche, double clic sur la feuille en question, ensuite dans la fenêtre de droite tu colles le code ci-dessus
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 288
    Points : 281
    Points
    281
    Par défaut
    bon...
    il va falloir que je reflechisse un peu + loin que le bout de mon nez alors!
    laisse moi le temps et je t'envois des ligne de code qui vont bien

    trop tard.. y'en a un qui est bc + rapide que moi

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Je sais que j'arrive en retard mais j'ai été interrompu dans mon effort
    Si tu veux automatiser les déplacements...
    Place automatiquement dans les bonnes colonnes mais sans message d'erreur (ici inutile)
    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
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Locataire As Range, Epargnant As Range, Loc As Range, Epar As Range
        Set Locataire = Range("D13:F" & Cells(Rows.Count, 3).End(xlUp).Row)
        Set Epargnant = Range("G13:I" & Cells(Rows.Count, 3).End(xlUp).Row)
        Set Loc = Intersect(Target, Locataire)
        Set Epar = Intersect(Target, Epargnant)
        If (Not Loc Is Nothing) And Cells(Target.Row, 3) = "Epargnant" Then
            Target.Offset(0, 3).Select
        ElseIf (Not Epar Is Nothing) And (Cells(Target.Row, 3) = "Locataire") Then
            Target.Offset(0, -3).Select
        End If
        Set Locataire = Nothing
        Set Epargnant = Nothing
        Set Loc = Nothing
        Set Epar = Nothing
    End Sub
    A placer dans la feuille de code de ta feuille de calculs

    Edit
    S'adapte au nombre de lignes de ta plage de données

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci ouskel'n'or. Le code que tu as crée marche à merveille et répond exactement au besoin de mon utilisateur.

    Merci encore à tous c'est vraiment très sympa de votre part d'avoir répondu à ma demande aussi rapidement.

    A charge pour moi maintenant d'apprendre le VB.

    Merci à tous et bonne journée.

    Thimmy

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

Discussions similaires

  1. [XL-2007] Déplacer des lignes dans un autre onglet selon valeur d'une cellule
    Par Accessifiante dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 06/05/2014, 16h45
  2. [XL-2000] Changer fond de plusieurs cellules selon valeur d'une cellule
    Par JonathanMQ dans le forum Excel
    Réponses: 2
    Dernier message: 28/07/2010, 15h15
  3. Affichage MSGBOX selon valeur d'une cellule
    Par Thimmy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/06/2008, 19h41
  4. MSGBOX avec affichage de la valeur d'une ligne de formulaire
    Par quinquin59 dans le forum VBA Access
    Réponses: 1
    Dernier message: 22/11/2007, 18h39
  5. Afficher Une Liste Selon La Valeur D'une Cellule
    Par Kevin_18 dans le forum Excel
    Réponses: 10
    Dernier message: 02/07/2007, 19h22

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