Comme vous parliez uniquement d'erreur sans préciser laquelle et qu'à la compilation du code j'avais une erreur ... je ne suis pas allé plus loin.
L'erreur d'exécution 9 est liée au fait que l'intitulé de la colonne du nom dans le tableau "bddRH" comporte un espace à la fin "Nom " et que dans le code (à 2 endroits) il est fait référence à la colonne "Nom" sans espace à la fin.
Pour la constitution des noms de chemin, en dehors de la 1ère concaténation avec cDossierBase qui comporte déjà un \ à la fin, il faut en insérer lors des concaténations suivantes. Tu aimes visiblement les espaces de fin mais le service "Outillage " va te provoquer une erreur d'exécution. Il serait bon d'encapsuler l'élément que tu concatène dans un Trim(xxx), donc :
cDossierService = cDossierBase & Trim(tsPers.ListColumns("Service").DataBodyRange(i, 1).Value)
...
cDossierRepertoireS = cDossierService & "\" & Trim(tsPers.ListColumns("RepertoireS").DataBodyRange(i, 1).Value)
Pour finir, il faut corriger vNomFic ... car le stockage se ferait dans le niveau service au lieu du niveau RepertoireS. Le modèle d'entretien ne contient pas de macro, pourquoi est-il enregistré au format xlsm au lieu de xlsx, idem pour le fichier enregistré
VNomfich = cDossierRepertoireS & "\" & tsPers.ListColumns("Nom ").DataBodyRange(i, 1).Value & "_" & tsPers.ListColumns("Prenom").DataBodyRange(i, 1).Value & ".xlsm"
En cas d'erreur : Merci de préciser le code et le descriptif ainsi que la ligne où l'erreur survient.