Message d'alerte quota atteint

Bonjour,

N'ayant jamais utilisé VBA, j'aimerais savoir comment appliquer, à une cellule, un message d'alerte ("QUOTA ATTEINT") quand celle-ci atteint le nombre de 10.

D'avance merci pour votre aide

Marinette45

Bonjour Marinette, et bienvenue sur ce Forum!

Imaginons que ta cellule qui indique le quota est la cellule A1

1) Tester si (If) ta cellule A1 (Cells(1,1)) est supérieur (>) ou égal (=) à 10 :

If Cells(1,1) >= 10

2) Si le test retourne vrai, alors (Then) afficher un message (MsgBox) qui indique que le quota est atteint :

If Cells(1,1) >= 10 Then MsgBox "Quota atteint!"

3) Donner un nom (Sub xxx ()) à ma macro et indiquons où elle se termine (End Sub) :

Sub Mess ()
If Cells(1,1) >= 10 Then MsgBox "Quota atteint!"
End Sub

Voilà! Tu a ta procédure qui te permet de tester si ton quota est atteint via VBA

Maintenant reste à savoir quand est-ce que tu veux la lancer :

  • Ouverture du fichier
  • Saisie dans une cellule
  • Bouton
  • Etc...

Restant à ta dispo!

Bonjour Juice,

Merci beaucoup

Je souhaite que le message apparaisse quand la cellule a atteint 10.

Reeee~

Je souhaite que le message apparaisse quand la cellule a atteint 10.

Okep donc on va s'orienter vers un Private Sub Worksheet_Change ;D

C'est une procédure évènementielle qui se déclenche automatiquement lorsque les critères indiquées dans le code sont remplies :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A1")) Is Nothing And Cells(1, 1) >= 10 Then MsgBox "Quota atteint!"
End Sub

Voilà voilà ! Avec sa, dès que ta cellule est égal ou supérieur à 10, alors ton Message va apparaître ^^

Le code est à mettre dans un module de feuille :

1) Sur Excel Alt + F11

2) En haut à gauche de la fenêtre qui vient de s'ouvrir, double cliquer sur la feuille qui t'interesse

3) Placer le code

Restant à dispo!

Génial !!!!!!! Merciiii beaucoup

Par contre, ce code, je l'ai appliqué sur ma cellule qui à une formule d'addition. J'aimerais que le message apparaisse à chaque fois qu'un calcule s'y rajoute.

Je ne sais pas si je suis très claire

Merciiii

En gros, en A1 tu a une formule qui additionne d'autres cellules, et si cette addition atteint 10, alors tu veux un message qui t'affiche que le quota est atteint ?

Alors le code serra :

Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(1, 1) >= 10 Then MsgBox "Quota atteint!"
End Sub

Par contre, le message va s'activer à chaque saisie tant que A1 n'est pas inférieur à 10.

C'est ce que tu cherchais :0 ?

Oui c'est exactement ca

Par contre, comment je fais pour l'appliquer à d'autre cellule en même temps ?

Bonne fin de journée

Par contre, comment je fais pour l'appliquer à d'autre cellule en même temps ?

Comment sa :p ?

Tu n'a pas qu'une seule cellule qui ne doit pas dépasser 10 ?

Non j'en ai plusieurs

j'ai ma cellule A061, la cellule AO62, la cellule A063 et la cellule A064

Bonjour Marinette

merci Juice

à voir (rectifié):

If Cells(1, 1) >= 10 Then 
MsgBox "Quota atteint! en A1" 

If Cells(61, 41) >= 10 Then 
MsgBox "Quota atteint! en AO61" 

If Cells(62, 41) >= 10 Then 
MsgBox "Quota atteint! en AO62" 

If Cells(63, 41) >= 10 Then 
MsgBox "Quota atteint! en AO63" 

If Cells(64, 41) >= 10 Then 
MsgBox "Quota atteint! en AO64" 

oupss inversion entre colonnes et lignes

crdlt,

André

Bonjour Marinette, le forum,

je te propose ce code VBA :

Private Sub Worksheet_Change(ByVal Target As Range)
  With Target
    If .CountLarge > 1 Then Exit Sub
    If Intersect(Target, [AO61:AO64]) Is Nothing Then Exit Sub
    If .Value >= 10 Then MsgBox "Quota atteint en " _
      & .Address(0, 0) & ".", 48, "Alerte"
  End With
End Sub

@André

je t'ai mis un pour ta bonne idée, mais j'ai pas compris pourquoi t'as pas fait plus simplement :

Sub Essai()
  If [A1] >= 10 Then MsgBox "Quota atteint! en A1"
  If [AO61] >= 10 Then MsgBox "Quota atteint! en AO61"
  If [AO62] >= 10 Then MsgBox "Quota atteint! en AO62"
  If [AO63] >= 10 Then MsgBox "Quota atteint! en AO63"
  If [AO64] >= 10 Then MsgBox "Quota atteint! en AO64"
End Sub

et là, pas d'risque d'inversion entre colonne et ligne.

dhany

Bonjour toutes et tous,

Merci Dhany, j'étais parti loin alors que, s'était simple, merci à toi

crdlt,

André

Bonjour à tous,

Merci beaucoup pour votre aide.

Ca ne fonctionne pas

J'ai recopié exactement ce que tu m'a donnée Dhany

Bonjour Marinette,

pour t'aider davantage, il faudrait ton classeur (sans données confidentielles) ; pour cela, tu peux utiliser le bouton « Ajouter des fichiers » qui est situé juste sous la fenêtre d'édition de ton post.

dhany

Voici

Merci beaucoup

ça y'est :

1) j'ai supprimé ton Module de classe inutile nommé Classe1, qui contenait les 2 subs vides Class_Initialize() et Class_Terminate().

2) dans ThisWorkbook, j'ai aussi supprimé ta sub vide et inutile Workbook_Open().

3) dans le module de "Feuil2", c'est pas la sub Essai() qu'il fallait copier, mais la sub Worksheet_Change().

maint'nant, pour une des cellules AO61:AO64 la boîte de dialogue s'affichera pour une valeur >= 10.

tes MFC orange si = 10 et rouge barré si > 10 sont très bien aussi ; ça ne suffisait pas ?

dhany

Dhany,

Quand je saisie les heures et que la cellule AO61 atteint 10 le message n’apparaît pas automatiquement. Dois je faire une manip quelconque ?

Non les MFC ne suffisaient pas Je veux que les responsables de service soient bien alertés

Merci pour ton aide précieuse

Marinette

le test est : If .Value >= 10 Then

comme c'est « supérieur ou égal à 10 », ça doit réagir ; si ça ne le fait pas, je pense qu'il s'agit d'une histoire d'arrondi : la valeur de la cellule doit être légèrement en dessous de 10, même si c'est 10 qui est affiché.

si c'est bien ça, tu peux faire cet essai : en O61 : =ARRONDI(AR5+AR20+AR35+AR50;2) (c'est pour un arrondi à 2 chiffres après la virgule)

mais regarde aussi ARRONDI.INF() et ARRONDI.SUP()

dhany

j'ai proposé une solution avec Worksheet_Change() car je croyais que tu devais faire une saisie dans les cellules AO61 à A064 ; mais j'viens d'me rendre compte que t'as une formule dans chacune d'elles, et là, un changement de valeur peut pas être détecté automatiquement !

j'ai bien peur que tu doives te contenter des MFC ; mais pour être tout à fait sûre que tes responsables de service soient bien alertés, alors dès qu'une de ces cellules atteint ou dépasse 10, tu peux utiliser ton clairon pour sonner la charge de la cavalerie.

dhany

Ah mince !!! Car Juice était bien parti car ça fonctionnait très bien, il aurait juste fallu "dupliquer" pour les autres lignes

Mais je te remercie de ton aide

Rechercher des sujets similaires à "message alerte quota atteint"