Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Création d'une alarme

  • Initiateur de la discussion Initiateur de la discussion genius
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

genius

XLDnaute Nouveau
Bonjour à vous,

Je suis toujours sur ma nomenclature, que j'ai grandement amélioré depuis quelques jours.
Voilà, je bloque sur une chose en particulier en ce moment.
Pour rappel: la "Nomenclature" est liée avec un fichier "Fournisseurs", et également avec un fichier "Clients".
Ce qui me permet de créer des demande de prix, des bons de commande, des bons de livraisons, et à terme peut-être aussi éditer directement les factures pour le client.

Dans cette nomenclature, il existe des feuilles nommées "Matériel X" et des feuilles "Plan X". (discussion déjà abordée avec job75).

Bref, pour les demandes de prix, c'est ok, celà fonctionne.
Par contre, lorsque je créé un bon de commande, je rentre le délai dans mon tableau, et normalement, à X jours de ce délai, une alarme se déclenche.

Mon soucis est que je n'arrive pas à comprendre le code qui existe, et qu' il y a une erreur.

Voilà la macro pour les alarmes, le problème se trouve à la 4ème ligne:

"TableauDébut = Sheets("Matériel #*").Index

En fait, il ne reconnait pas le nombre de feuilles nommée "Matériel X" et ça doit être pareil pour les feuilles nommées "Plan X".



'** REMPLIT LES TABLEAUX DE L'ALARME
Sub Alarme()
'** init
TableauDébut = Sheets("Matériel #*").Index
If Sheets("Informations").Range("K16").FormulaR1C1 = 1 Then
TableauFin = Sheets("Plan #*").Index
Else
TableauFin = Sheets("Plan (" & CStr(Sheets("Informations").Range("K17").FormulaR1C1) & ")").Index
End If
'** effacer anciennes valeurs
If Range("F9").FormulaR1C1 > 0 Then
Rows("12:" & CStr(Range("F9").FormulaR1C1 + 11)).Select
Selection.Delete Shift:=xlUp
End If
Range("F9").FormulaR1C1 = 0
'** corps
ligne = 11
For i = TableauDébut To TableauFin '** onglets
For j = 4 To 36 '** '** analyse des lignes
If Left$(Sheets(i).Name, 3) = "Matériel" Then
If Sheets(i).Range("N" & CStr(j)).FormulaR1C1 <> "" Then
If CInt(CDate(Sheets(i).Range("N" & CStr(j)).FormulaR1C1) - Now()) <= Range("F8").FormulaR1C1 Then
ligne = ligne + 1
Range("F9").FormulaR1C1 = Range("F9").FormulaR1C1 + 1
Rows(CStr(ligne) & ":" & CStr(ligne)).Select
Selection.Insert Shift:=xlDown
Range("C" & CStr(ligne)).FormulaR1C1 = Sheets(i).Range("B" & CStr(j)).FormulaR1C1
Range("D" & CStr(ligne)).FormulaR1C1 = Sheets(i).Range("C" & CStr(j)).FormulaR1C1
Range("E" & CStr(ligne)).FormulaR1C1 = Sheets(i).Range("D" & CStr(j)).FormulaR1C1
Range("F" & CStr(ligne)).FormulaR1C1 = Sheets(i).Range("K" & CStr(j)).FormulaR1C1
Range("J" & CStr(ligne)).FormulaR1C1 = Sheets(i).Range("O" & CStr(j)).FormulaR1C1
Range("F" & CStr(ligne)).Select
Selection.NumberFormat = "dd/mm/yy"
Range("G" & CStr(ligne)).FormulaR1C1 = Sheets(i).Range("F" & CStr(j)).FormulaR1C1
Range("B" & CStr(ligne)).FormulaR1C1 = CInt(CDate(Sheets(i).Range("N" & CStr(j)).FormulaR1C1) - Now()) + 1
Call docfournisseur(Range("G" & CStr(ligne)).FormulaR1C1, ligne)
Range("B" & CStr(ligne) & ":J" & CStr(ligne)).Select
If Range("B" & CStr(ligne)).FormulaR1C1 <= 0 Then
Selection.Font.ColorIndex = 3
Selection.Font.Bold = True
Else
Selection.Font.ColorIndex = 0
Selection.Font.Bold = False
End If
End If
End If
Else
If Sheets(i).Range("P" & CStr(j)).FormulaR1C1 <> "" Then
If CInt(CDate(Sheets(i).Range("P" & CStr(j)).FormulaR1C1) - Now()) <= Range("F8").FormulaR1C1 Then
ligne = ligne + 1
Range("F9").FormulaR1C1 = Range("F9").FormulaR1C1 + 1
Rows(CStr(ligne) & ":" & CStr(ligne)).Select
Selection.Insert Shift:=xlDown
Range("C" & CStr(ligne)).FormulaR1C1 = Sheets(i).Range("B" & CStr(j)).FormulaR1C1
Range("D" & CStr(ligne)).FormulaR1C1 = Sheets(i).Range("C" & CStr(j)).FormulaR1C1
Range("E" & CStr(ligne)).FormulaR1C1 = Sheets(i).Range("D" & CStr(j)).FormulaR1C1
Range("F" & CStr(ligne)).FormulaR1C1 = Sheets(i).Range("M" & CStr(j)).FormulaR1C1
Range("J" & CStr(ligne)).FormulaR1C1 = Sheets(i).Range("Q" & CStr(j)).FormulaR1C1
Range("F" & CStr(ligne)).Select
Selection.NumberFormat = "dd/mm/yy"
Range("G" & CStr(ligne)).FormulaR1C1 = Sheets(i).Range("G" & CStr(j)).FormulaR1C1
Range("B" & CStr(ligne)).FormulaR1C1 = CInt(CDate(Sheets(i).Range("P" & CStr(j)).FormulaR1C1) - Now()) + 1
Call docfournisseur(Range("G" & CStr(ligne)).FormulaR1C1, ligne)
Range("B" & CStr(ligne) & ":J" & CStr(ligne)).Select
If Range("B" & CStr(ligne)).FormulaR1C1 <= 0 Then
Selection.Font.ColorIndex = 3
Selection.Font.Bold = True
Else
Selection.Font.ColorIndex = 0
Selection.Font.Bold = False
End If
End If
End If
End If
Next j
Next i
If Range("F9").FormulaR1C1 > 0 Then
Rows("12:" & CStr(ligne)).Select
Selection.Sort Key1:=Range("B12"), Order1:=xlAscending, Key2:= _
Range("G12"), Order2:=xlAscending, Header:=xlNo, OrderCustom _
:=1, MatchCase:=False, Orientation:=xlTopToBottom
Else
MsgBox ("Pas d'alarme")
End If
Range("A1").Select
End Sub

D'avance merci.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
238
Réponses
4
Affichages
213
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
540
Réponses
3
Affichages
202
Réponses
2
Affichages
163
Réponses
5
Affichages
292
Réponses
4
Affichages
480
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…