Création d'une alarme

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.
 

Discussions similaires

Réponses
11
Affichages
296
Réponses
14
Affichages
660

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch