Paramétrage du chemin avec nom d'utilisateur variable
Bonjour à tous,
Je travail sur un drive (en l’occurrence OneDrive) et j'aimerai pouvoir créer un module qui définit le nom d'utilisateur du chemin afin de pouvoir automatiser la portabilité de mes modules.
Avec un exemple ça devrait être plus clair:
- Voici un module qui créer une structure de dossier de réception de fichiers
Code:
1 2 3 4 5 6 7
| Sub Structuredossier()
Call Module33.NomUtilisateur
MkDir "C:\Users\" & NomUtilisateur & "\OneDrive\Data\Chaîne detraitement"
End Sub |
Le module 33 est le suivant:
Code:
1 2 3 4 5 6
| Sub NomUtilisateur()
Dim NomUtilisateur As String
NomUtilisateur = "Prénom nom" 'Prénom et Nom varient en fonction de l'utilisateur
End Sub |
Quand je lance mon module Structuredossier il me surligne NomUtilisateur sur la ligne -> MkDir "C:\Users\" & NomUtilisateur & "\OneDrive\Data\Chaîne detraitement" avec l'erreur Fonction ou variable attendue.
Clairement je m'y prends mal à priori. Mais je me suis déjà pas mal creuser la tête pour essayer de modifier mes chemins dans mes différents modules afin de pouvoir avec juste une simple manipulation en amont changer le nom d'utilisateur dans ces chemins.
Quelqu'un a-t-il de comment je pourrais procéder ?
Erreur sur la suite du code
Bon ça marche bien pour mon module qui crée la structure des dossiers.
En revanche, y'a une erreur sur "l'enregistrement sous" dans cette macro:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Sub ProcessFilesindividus()
Dim File As String, Pathname As String, Pathsave As String
Dim wb As Workbook
Application.DisplayAlerts = False
Pathname = "C:\Users\" & VBA.Environ("USERNAME") & "\OneDrive\Data\Chaîne de traitement\Table individus\Chaîne 300 pour la création de la base individus\Fichiers copiés\"
Pathsave = "C:\Users\" & VBA.Environ("USERNAME") & "\OneDrive\Data\Chaîne de traitement\Table individus\Fichiers traités\"
File = Dir(Pathname & "*.xls")
Do While File <> ""
Set wb = Workbooks.Open(Pathname & File)
Macromiseenformeindividus wb
ActiveWorkbook.SaveAs Filename:=Pathsave & ActiveWorkbook.Name
wb.Close
File = Dir()
Loop
End Sub |
L'erreur est sur ActiveWorkbook.SaveAs avec comme erreur "La méthode 'SaveAs' de l'objet '_Workbook' a échoué. Y'a t-il une incompatibilité de VBA.Environ avec le "ActiveWorkbook.SaveAs Filename:=" ?