Bonjour,
Tes explications étaient incomplètes, tout comme ton code d'ailleurs (NewRep et Pname n'y sont pas initialisées, sans parler des fautes de copie... !)
A cet égard, note-toi quelque part que lorsque tu cites du code, reproduis la procédure par copie dans le module où elle se trouve, sans exclure la déclaration (Sub... End Sub, ou autre type), et collage dans le post. Ton interlocuteur peut ainsi savoir qu'il dispose de la totalité du code de la procédure, et la copie conservant la mise en forme faite automatiquement par VBA permet en elle-même de déceler certaines erreurs. En outre, lorsqu'une procédure contient des variables de niveau module, il convient de l'indiquer en précisant leur initialisation si celle-ci n'intervient pas dans la procédure examinée.
Après ce préambule, étant frais au réveil et dans de bonnes dispositions encore, et tenant compte que tu as tout de même pris la peine de mettre ton code sous balises Code :
Dim OldRep As String, NewRep As String, W As String, N As Long
Dim NomFich As String
Dim Pname As String
N = 9
Do While N <= 14
W = Sheets("TI").Range("C" & N)
NomFich = Dir(OldRep & "\" & W & "*.pdf")
Do While NomFich <> ""
If GetAttr(OldRep & "\" & NomFich) = vbNormal Then
FileCopy OldRep & "\" & NomFich, NewRep & "\" & Pname & "\" & NomFich
End If
NomFich = Dir()
Loop
N = N + 1
Loop
sous réserve de l'initialisation de NewRep et Pname, et qu'il n'y ait pas d'autres éléments omis...
Si tu ne comprends pas l'une ou l'autre des 5 modifications apportées à ton bout de code, tu demandes...
Cordialement.