Re,
Voilà le code d'ouverture du fichier pour le In et le Out.
Si tu veux rajouter des onglets il te faudra ajouter une variable pour l'onglet, une variable pour le tableau de l'onglet et une variable pour la date de l'onglet, définir ces variables, modifier le message et rajouter une boucle comme dans le code ci-dessous. ou alors utiliser le même principe sur une boucle sur plusieurs onglets...
Le code :
Private Sub Workbook_Open()
Dim I As Worksheet 'déclare la variable I (onglet In)
Dim O As Worksheet 'déclare la variable O (onglet Out)
Dim TVI As Variant 'déclare la variable TVI (Tableau des Valeurs de l'onglet In)
Dim TVO As Variant 'déclare la variable TVO (Tableau des Valeurs de l'onglet Out)
Dim DJ As Long 'déclare la variable DJ (Date du Jour)
Dim DV As Long 'déclare la variable DV (Date de la Veille)
Dim DTI As Long 'déclare la variable DTI (Date du Tableau In)
Dim DTO As Long 'déclare la variable DTO (Date du Tableau Out)
Dim X As Integer 'déclare la variable X (incrément)
Application.WindowState = xlMaximized 'fenêtre Excel
Windows(ThisWorkbook.Name).WindowState = xlMaximized 'fenêtre du classeur
Call RepositionneBoutonsActiveX
Sheets("Prog").Activate
Set I = Worksheets("In") 'définit l'onglet I
Set O = Worksheets("Out") 'définit l'onglet O
TVI = I.Range("A4").CurrentRegion 'définit le tableau des valeur TVI
TVO = O.Range("A4").CurrentRegion 'définit le tableau des valeur TVO
DJ = DateSerial(Year(Date), Month(Date), Day(Date)) 'définit la date du jour DJ (en entier long)
DV = DJ - 1 'définit la date du jour de la veille DV
'initialise le message MSG (variable déclarée publique dans le module [Module1])
MSG = "Au " & Format(DV, "dd/mm/yyyy") & " : " & Chr(13)
MSG = MSG & Chr(13) & "Entrées matière : " & Chr(13) ''redéfinit le message MSG (ajoute la partie "Entrées matière")
For X = 1 To UBound(TVI, 1) 'boucle sur toutes les lignes X du tableau des valeurs TVI
DTI = DateSerial(Year(TVI(X, 1)), Month(TVI(X, 1)), Day(TVI(X, 1))) 'définit la date DTI
'si DTI=DV, redéfinit le message MSG avec les valeurs 10a et 10b de l'onglet In et sort de la boucle
If DTI = DV Then MSG = MSG & "10a = " & TVI(X, 3) & Chr(13) & "10b = " & TVI(X, 4) & Chr(13): Exit For
Next X 'prochaine ligne de la boucle
MSG = MSG & Chr(13) & "Sorties matière : " & Chr(13) 'redéfinit le message MSG (ajoute la partie "Sortie matière")
For X = 1 To UBound(TVO, 1) 'boucle sur toutes les lignes X du tableau des valeurs TVI
DTO = DateSerial(Year(TVO(X, 1)), Month(TVO(X, 1)), Day(TVO(X, 1))) 'définit la date DTO
'si DTO=DV, redéfinit le message MSG avec les valeurs 10a et 10b de l'onglet Out et sort de la boucle
If DTO = DV Then MSG = MSG & "10a = " & TVO(X, 3) & Chr(13) & "10b = " & TVO(X, 4) & Chr(13): Exit For
Next X 'prochaine ligne de la boucle
MsgBox MSG 'affiche le message MSG
End Sub