si tout est correct alors B41 et C4 ne sont pas dans l'onglet "DGPF Vierge" ?
Essayez de récupérer le chemin et le nom de fichier dès le début de la macro :
Sub OpenXLSDPGF()
Dim Chemin as string
Dim Nomfichier as String
Chemin=Range("B41").value & "\"
Nomfichier="DPGF " & Range("C4").value & ".xlsx"
Worksheet("DPGF vierge").Range("A2:I29").Copy
ActiveWorkbook.SaveAs Filename:=Chemin & Nomfichier, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.close
End sub