Afficher un message alerte sur toute les Feuille
Bonjour , je découvre les macros sur excel et ce forum.
Aujourd'hui j'ai réaliser un fichier excel qui fait un suivi des stocks des filtre de Centrale de traitement d'air (CTA). (pour histoire sur mon site j'ai voulu combiner 4 fichier excel en 1)
Et maintenant je souhaite que dés que je passe en dessous d'un seuil dans la feuille 1 (Stock filtre ) je reçois une alerte sur n'importe quelle page ou je suis, car chaque CTA a ça page précise et le stock réel est reporter sur la feuille 1 selon les livraison et la consommation
car pour instant j'arrive seulement a la voir si je modifie moi même le seuil sur la page. comment la faire afficher sur tout?
si joint mon fichier.
Voici la macros que j'ai utiliser
Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(4, 4) <= 6 Then MsgBox "Filtre CTA 3 F7 Bas"
If Cells(5, 4) <= 6 Then MsgBox "Filtre CTA 3 F7 Bas"
If Cells(10, 4) <= 6 Then MsgBox "Filtre CTA 4 F7 Bas"
If Cells(11, 4) <= 6 Then MsgBox "Filtre CTA 4 F7 Bas"
If Cells(16, 4) <= 2 Then MsgBox "Filtre CTA 5 F7 Bas"
If Cells(21, 4) <= 2 Then MsgBox "Filtre CTA 6 F7 Bas"
If Cells(26, 4) <= 12 Then MsgBox "Filtre CTA 7/14 F7 Bas"
If Cells(31, 4) <= 12 Then MsgBox "Filtre CTA 8/9/13 F7 Bas"
If Cells(43, 4) <= 4 Then MsgBox "Filtre CTA 11 G4 Bas"
If Cells(44, 4) <= 4 Then MsgBox "Filtre CTA 11 F7 Bas"
If Cells(45, 4) <= 4 Then MsgBox "Filtre CTA 11 H10 Bas"
If Cells(50, 4) <= 2 Then MsgBox "Filtre CTA 12 G4 Bas"
If Cells(51, 4) <= 2 Then MsgBox "Filtre CTA 12 G4 Bas"
If Cells(52, 4) <= 2 Then MsgBox "Filtre CTA 12 F7 Bas"
If Cells(53, 4) <= 2 Then MsgBox "Filtre CTA 12 F7 Bas"
If Cells(54, 4) <= 2 Then MsgBox "Filtre CTA 12 H10 Bas"
If Cells(55, 4) <= 2 Then MsgBox "Filtre CTA 12 H10 Bas"
End Sub
Salut NicoKoni,
Le recalcul d'une formule n'étant pas détecté par VBA, il faut remonter à la source manuelle du recalcul donc, dans chaque feuille 'CTA' dans une colonne "Quantité".
Pour éviter d'écrire 100 fois le code, on utilise le module 'ThisWorkbook' dont les codes sont valables pour toutes les feuilles ce qui implique une grande rigueur dans la construction des feuilles.
Ainsi, dans 'CTA 12', j'ai supprimé une ligne pour ramener les en-têtes "Quantité" sur la ligne 7.
Dans ce cas, je cible alors les feuilles 'CTA' et je vérifie que la colonne est bien celle recherchée avant de calculer la MsgBox.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'
Dim sMsg$
'
If Left(Sh.Name, 3) = "CTA" Then
If Sh.Cells(7, Target.Column) = "Quantité" Then
With Worksheets("Stock Filtres")
If .Cells(4, 4) <= 6 Or .Cells(5, 4) <= 6 Then sMsg = "Filtre CTA 3 F7 Bas"
If .Cells(10, 4) <= 6 Or .Cells(11, 4) <= 6 Then sMsg = sMsg & Chr(10) & "Filtre CTA 4 F7 Bas"
If .Cells(16, 4) <= 2 Then sMsg = sMsg & Chr(10) & "Filtre CTA 5 F7 Bas"
If .Cells(21, 4) <= 2 Then sMsg = sMsg & Chr(10) & "Filtre CTA 6 F7 Bas"
If .Cells(26, 4) <= 12 Then sMsg = sMsg & Chr(10) & "Filtre CTA 7/14 F7 Bas"
If .Cells(31, 4) <= 12 Then sMsg = sMsg & Chr(10) & "Filtre CTA 8/9/13 F7 Bas"
If .Cells(43, 4) <= 4 Then sMsg = sMsg & Chr(10) & "Filtre CTA 11 G4 Bas"
If .Cells(44, 4) <= 4 Then sMsg = sMsg & Chr(10) & "Filtre CTA 11 F7 Bas"
If .Cells(45, 4) <= 4 Then sMsg = sMsg & Chr(10) & "Filtre CTA 11 H10 Bas"
If .Cells(50, 4) <= 2 Or .Cells(51, 4) <= 2 Then sMsg = sMsg & Chr(10) & "Filtre CTA 12 G4 Bas"
If .Cells(52, 4) <= 2 Or .Cells(53, 4) <= 2 Then sMsg = sMsg & Chr(10) & "Filtre CTA 12 F7 Bas"
If .Cells(54, 4) <= 2 Or .Cells(55, 4) <= 2 Then sMsg = sMsg & Chr(10) & "Filtre CTA 12 H10 Bas"
If sMsg <> "" Then MsgBox " ! ATTENTION !" & Chr(10) & Chr(10) & sMsg, vbCritical + vbOKOnly, "Stock filtres"
End With
End If
End If
'
End Sub
A+
Top merci curulis57 je te remercie .
Bon j'ai beaucoup a apprendre