2016-11-08 1 views
0

Je veux vérifier si un nom de fichier existe déjà. Ce que j'ai écrit fonctionne parfaitement lorsque je le teste dans mon bureau local. Mais tous les noms de fichiers sont enregistrés dans un Sharepoint. Quand je l'ai testé là-bas, ça ne marche pas! Je reçois toujours le message d'erreur: mauvais fichier Nom ou numéro. C'est ce que je l'ai écrit:vérifier si un fichier existe déjà en utilisant VBA powerpoint

Private Sub CommandButton21_Click() 

Dim NewFileName    As String 
Dim OwnPathName    As String 

oldWeekDay = Weekday(Now) 

Select Case oldWeekDay 

Case 1 
    NewFileName = "PT PM Weekly " & Format(Date + 4, "yyyymmdd") 
Case 2 
    NewFileName = "PT PM Weekly " & Format(Date + 3, "yyyymmdd") 
Case 3 
    NewFileName = "PT PM Weekly " & Format(Date + 2, "yyyymmdd") 
Case 4 
    NewFileName = "PT PM Weekly " & Format(Date + 1, "yyyymmdd") 
Case 5 
    NewFileName = "PT PM Weekly " & Format(Date, "yyyymmdd") 
Case 6 
    NewFileName = "PT PM Weekly " & Format(Date + 6, "yyyymmdd") 
Case 7 
    NewFileName = "PT PM Weekly " & Format(Date + 5, "yyyymmdd") 

End Select 

OwnPathName = ActivePresentation.Path 
FullFileName = OwnPathName & "\" & NewFileName 

'for debug only (can remove it later) 
'MsgBox OwnPathName 
'MsgBox FullFileName 


Dim StrFile    As String 
Dim FileFound   As Boolean 

FileFound = False 
'look for all types of PowerPoint files only (filter only to PowerPoint files to save time) 
StrFile = Dir(OwnPathName & "\*pptm*") 

Do While Len(StrFile) > 0 
If InStr(StrFile, NewFileName) > 0 Then 
    FileFound = True 
    Exit Do 
End If 
StrFile = Dir 
Loop 

If FileFound Then 
MsgBox "Modification already done" 
Else 
RemoveTextboxes 
AllBlackAndDate 
SaveAllPresentations (FullFileName) 
End If 

End Sub 

Je ne comprends pas pourquoi ça ne fonctionne pas! Pouvez-vous m'aider s'il vous plaît pour résoudre le problème? Merci d'avance!

+0

Mon OwnpathName = https://sec-ishare.infineon.com/sites/MC_PM/Shared%20Documents/09_Reporting/PT/2016 – Zigouma

Répondre

0

Je pense que cela peut fonctionner, je l'utilise tout le temps pour parcourir les répertoires de mon PC ou de tout autre réseau auquel j'ai accès.

F = Dir(StrFile, 7) 'sets f equal to the first file name 
Do While F <> ""  'loops until there are no more files in the directory 

If InStr(StrFile, NewFileName) > 0 Then 
    FileFound = True 
    Exit Do 
End If 

    F = Dir   'set f equal to the next file name in the directory 

Loop