1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

XL 2007 Afficher un message d'erreur pour une macro

Discussion dans 'Forum Excel' démarrée par a26, 6 Novembre 2018 à 17:39.

  1. a26

    a26 XLDnaute Occasionnel

    Inscrit depuis le :
    12 Septembre 2009
    Messages :
    180
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Utilise:
    Excel 2007 (PC)
    Bonsoir à tous,
    Pouvez-vous m'aider à trouver la solution d'une macro qui m'avertirait d'un dépassement de chiffre (variable)
    dans une cellule donnée.
    Merci beaucoup,
    a26
     

    Pièces jointes:

  2. Chargement...

    Discussions similaires - Afficher message d'erreur Forum Date
    Afficher un message d'erreur avant enregistrement sous condition Forum Excel 17 Janvier 2013
    afficher message d'erreur personnaliser a la place du débogueur excel Forum Excel 28 Août 2012
    Afficher message d'erreur quand une cellule atteint plus de 100% Forum Excel 29 Mai 2012
    Message d'erreur macro afficher toute les données Forum Excel 2 Octobre 2011
    Macro - Afficher un message d'erreur Forum Excel 18 Juin 2011

  3. Hieu

    Hieu XLDnaute Impliqué

    Inscrit depuis le :
    23 Mars 2016
    Messages :
    750
    "J'aime" reçus :
    43
    Salut,
    Quelque chose comme ca ?

    Code (Visual Basic):

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("c6:c18", "g18:h18")) Is Nothing Then
        If Target > Range("i3") Then MsgBox ("erreur")
    End If
    End Sub
     

    Pièces jointes:

    a26 aime votre message.
  4. a26

    a26 XLDnaute Occasionnel

    Inscrit depuis le :
    12 Septembre 2009
    Messages :
    180
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Utilise:
    Excel 2007 (PC)
    Merci Hieu cela correspond à ce que je voulais, il me reste à tester avec mon classeur original.
    Je reviens vers toi demain si j'ai d'autres modif à faire concernant ce message.
    Bonne soirée,
    a26
     
  5. youky(BJ)

    youky(BJ) XLDnaute Barbatruc

    Inscrit depuis le :
    4 Février 2009
    Messages :
    2424
    "J'aime" reçus :
    112
    Sexe :
    Masculin
    Habite à:
    69 CALUIRE
    Utilise:
    Excel 2016 (PC)
    Bonsoir tous
    Sans vba, données Validation
    Bruno
    upload_2018-11-6_18-12-33.png upload_2018-11-6_18-13-23.png
     
    a26 aime votre message.
  6. a26

    a26 XLDnaute Occasionnel

    Inscrit depuis le :
    12 Septembre 2009
    Messages :
    180
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Utilise:
    Excel 2007 (PC)
    Merci à vous deux pour vos solutions. Cela fonctionne très bien pour mon fichier.
    Bonne soirée,
    a26
     
  7. a26

    a26 XLDnaute Occasionnel

    Inscrit depuis le :
    12 Septembre 2009
    Messages :
    180
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Utilise:
    Excel 2007 (PC)
    Je reviens vers vous pour savoir si je peux avoir un message d'erreur msg box comme suit :
    vbRetryCancel 5 [​IMG][​IMG]
     
  8. youky(BJ)

    youky(BJ) XLDnaute Barbatruc

    Inscrit depuis le :
    4 Février 2009
    Messages :
    2424
    "J'aime" reçus :
    112
    Sexe :
    Masculin
    Habite à:
    69 CALUIRE
    Utilise:
    Excel 2016 (PC)
    Hello
    MsgBox"Un doublon !", vbExclamation + vbRetryCancel, "ANNULATION"
    ou si on veux choisir le bouton
    If MsgBox("Un doublon !", vbExclamation + vbRetryCancel, "ANNULATION") = vbRetry Then Beep
    Bruno
     
    a26 aime votre message.
  9. a26

    a26 XLDnaute Occasionnel

    Inscrit depuis le :
    12 Septembre 2009
    Messages :
    180
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Utilise:
    Excel 2007 (PC)
    Bonjour youky,
    J'ai essayé d'appliquer le code que tu m'a transmis mais cela ne fonctionne pas. Peux-être que j'ai oublié quelque chose dans l'appel de la msgbox.
    a26
     

    Pièces jointes:

  10. youky(BJ)

    youky(BJ) XLDnaute Barbatruc

    Inscrit depuis le :
    4 Février 2009
    Messages :
    2424
    "J'aime" reçus :
    112
    Sexe :
    Masculin
    Habite à:
    69 CALUIRE
    Utilise:
    Excel 2016 (PC)
    Bonjour
    Voici la macro qui fonctionne.
    Bruno
    Code (Visual Basic):

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("c6:c18", "g18:h18")) Is Nothing Then
        If Target > [I3] Then
        MsgBox "Attention valeur trop grande !" & vbCr & _
        "Vous ne devez pas d?passer " & [I3], vbExclamation + vbRetryCancel, "ANNULATION"
        Target.Value = "" 'on efface
        End If
    End If
    End Sub
     
     
    a26 aime votre message.
  11. a26

    a26 XLDnaute Occasionnel

    Inscrit depuis le :
    12 Septembre 2009
    Messages :
    180
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Utilise:
    Excel 2007 (PC)
    Merci , celle-ci fonctionne mais que rajouter au code pour que la cellule active ne soit pas celle de dessous mais la cellule d'effacement ?
    merci pour ta réponse.
     
  12. youky(BJ)

    youky(BJ) XLDnaute Barbatruc

    Inscrit depuis le :
    4 Février 2009
    Messages :
    2424
    "J'aime" reçus :
    112
    Sexe :
    Masculin
    Habite à:
    69 CALUIRE
    Utilise:
    Excel 2016 (PC)
    Voici, j'ai ajouté Target.Select avant le MsgBox
    Code (Visual Basic):

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("c6:c18", "g18:h18")) Is Nothing Then
        If Target > [I3] Then
        Target.Select
        MsgBox "Attention valeur trop grande !" & vbCr & _
        "Vous ne devez pas d?passer " & [I3], vbExclamation + vbRetryCancel, "ANNULATION"
        Target.Value = "" 'on efface
        End If
    End If
    End Sub
     
     
    a26 aime votre message.
  13. a26

    a26 XLDnaute Occasionnel

    Inscrit depuis le :
    12 Septembre 2009
    Messages :
    180
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Utilise:
    Excel 2007 (PC)
    Merci, mais tu vas me trouver pénible car si je clique sur annuler cela ne conserve pas la valeur saisie si malgré tout je désire la conserver .
     
  14. youky(BJ)

    youky(BJ) XLDnaute Barbatruc

    Inscrit depuis le :
    4 Février 2009
    Messages :
    2424
    "J'aime" reçus :
    112
    Sexe :
    Masculin
    Habite à:
    69 CALUIRE
    Utilise:
    Excel 2016 (PC)
    Voici
    Code (Text):

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("c6:c18", "g18:h18")) Is Nothing Then
        If Target > [I3] Then
        Target.Select
        If MsgBox("Attention valeur trop grande !" & vbCr & _
        "Vous ne devez pas d?passer " & [I3], vbExclamation + vbRetryCancel, "ANNULATION") = vbRetry Then Target.Value = "" 'on efface
        End If
    End If
    End Sub
     
     
    a26 aime votre message.
  15. a26

    a26 XLDnaute Occasionnel

    Inscrit depuis le :
    12 Septembre 2009
    Messages :
    180
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Utilise:
    Excel 2007 (PC)
    Merci, le code fonctionne parfaitement sur la copie de mon fichier original, mais sur l'original au déclenchement d'une macro une erreur 13 se produit et le débobage me souligne la ligne target > I3
     
  16. youky(BJ)

    youky(BJ) XLDnaute Barbatruc

    Inscrit depuis le :
    4 Février 2009
    Messages :
    2424
    "J'aime" reçus :
    112
    Sexe :
    Masculin
    Habite à:
    69 CALUIRE
    Utilise:
    Excel 2016 (PC)
    target>[I3]
    entre crochets
    ou
    target>range("I3")
    et non
    target>I3

    Bruno
     
    a26 aime votre message.
  17. a26

    a26 XLDnaute Occasionnel

    Inscrit depuis le :
    12 Septembre 2009
    Messages :
    180
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Utilise:
    Excel 2007 (PC)
    Voilà le problème : If Target > [I3] Then. J'essaie de joindre un classeur avec la macro en question dans une prochaine discussion.
     
  18. a26

    a26 XLDnaute Occasionnel

    Inscrit depuis le :
    12 Septembre 2009
    Messages :
    180
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Utilise:
    Excel 2007 (PC)
    Merci pour ta contribution youky, mais je pense que mes problèmes viennent de la construction de mon classeur.
    J'utilise une douchette pour ce fichier et j'adopte le code 39 donc avec des * avant et après le chiffre comme ceci *45*
    par exemple que je suis obligé d'enlever par formule c'est pour cela que j'ai 2 colonnes réf.
    Je suis donc bloqué à la différence d'un classeur avec saisie normale.
    A moins que tu aies une solution pour moi j'abandonne la discussion et te remercie encore pour ta contribution qui m'aura quand même appris l'utilisation de la msgbox.
    a26
     
  19. youky(BJ)

    youky(BJ) XLDnaute Barbatruc

    Inscrit depuis le :
    4 Février 2009
    Messages :
    2424
    "J'aime" reçus :
    112
    Sexe :
    Masculin
    Habite à:
    69 CALUIRE
    Utilise:
    Excel 2016 (PC)
    Dommage de baisser les bras…...
    Une macro trouvera facilement 45 dans *****45***
    Si tu fais un bon fichier exemple avec quelque lignes je te garantie des satisfactions.
    Fichier avec quelques codes exemple comme tu les reçois et même colonne et un exemple de ce que tu attends.

    Bruno
     
    a26 aime votre message.
  20. a26

    a26 XLDnaute Occasionnel

    Inscrit depuis le :
    12 Septembre 2009
    Messages :
    180
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Utilise:
    Excel 2007 (PC)
    Bonjour youky,
    Merci de relancer, je te joins un petit fichier exemple dans l'après-midi.
    Bonne journée,
    a26
     
  21. a26

    a26 XLDnaute Occasionnel

    Inscrit depuis le :
    12 Septembre 2009
    Messages :
    180
    "J'aime" reçus :
    0
    Sexe :
    Masculin
    Utilise:
    Excel 2007 (PC)
    Voici mon fichier.
    Bon courage ,
    a26
     

    Pièces jointes:

Partager cette page