IIf (lemessage="",lemessage = lemessage & Feuille(i), lemessage = lemessage & ", " & Feuille(i))
Je me suis dit, quitte à faire un "If" autant essayer de faire un "IIf" mais je suppose que si tu ne me l'as pas proposé c'est que ça ne marche pas ? Il me dit "Erreur de syntaxe".
Du coup j'ai adapté le code que tu m'as proposé à ma situation et cela fonctionne très bien, je l'ai un peu peaufiné par ailleurs histoire que ce soit plus agréable au niveau de la lecture du MsgBox. Je lui ai donc demandé de traiter 2 cas différents. Le premier si "lemessage = "" " afin qu'il me rajoute simplement le nom de la 1ère feuille "en retard", et le second cas qui intègre une virgule et un espace pour améliorer la visibilité.
Il ne me reste plus qu'à faire une vérification au niveau du Workbooks.Open. Si les fichiers sont déjà ouverts, dans ce cas il ne se passe rien. Je suppose que même si le fichier est ouvert, lui redemander est une action inutile.
Nouvelle petite question, j'ai remarqué dans ton code que tu déclarais "i" en tant que Byte, et que moi je restais en Integer. Pourquoi utilises-tu le type Byte ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
Sub TestMAJ()
Dim i As Integer
Dim d As Date
Dim Errorr As Integer
Errorr = 0
Dim Feuille
Dim lemessage As String
lemessage = ""
Feuille = Array("TOTAL", "Commandes", "Contrats_Actifs")
For i = 0 To 2
d = FileDateTime("Z:\PBR_LOG\ARIBA_2019\TestVBA\" & Feuille(i) & "\" & Feuille(i) & ".xlsx")
Debug.Print FileDateTime("Z:\PBR_LOG\ARIBA_2019\TestVBA\" & Feuille(i) & "\" & Feuille(i) & ".xlsx")
Debug.Print DateDiff("w", d, Now)
If DateDiff("w", d, Now) = 0 Then
MsgBox ("Données de l'onglet " & Feuille(i) & " datées de moins de 1 semaine")
Else
MsgBox ("Données de l'onglet " & Feuille(i) & " datées de plus de 1 semaine, veuillez renouveler les données")
Errorr = Errorr + 1
If lemessage = "" Then
lemessage = lemessage & Feuille(i)
Else
lemessage = lemessage & ", " & Feuille(i)
End If
Workbooks.Open "Z:\PBR_LOG\ARIBA_2019\TestVBA\" & Feuille(i) & "\" & Feuille(i) & ".xlsx"
End If
Next i
MsgBox ("Il y a " & Errorr & " fichiers à mettre à jour : " & lemessage)
End Sub |
Partager