Macro enregistrement (chemin précis)

3xceln4ute

XLDnaute Occasionnel
Bonjour Forum,

J'ai deux demandes si vous me le permettez.

1 - J'ai une macro qui permet d'enregistrer l'horaire à un endroit précis.


nkukiG


La macro affiche une erreur au niveau de cette ligne:

Code:
fdObj.CreateFolder (NomRep)

Voici la macro

Code:
Sub BA_Sauvegarder_Horaire_Cadres_EXEC()
'
' BA_Sauvegarder_Horaire_Cadres Macro
' Macro enregistrée le 2017-10-21 par USALVRO
'
'Cherche a sauvegarder le fichier en cours dans le répertoire 03DivGestCH\Centre de Dotation Administration\HORAIRES D'ENTREVUES\.
'Si les sous répertoires /ANNÉE/, /MOIS/, et /DATE/ n'existent 'pas il les crée. Si tout existe il demande à l'usager d'y conserver le fichier

    Dim fdObj As Object

    'variable pour le chemin
    Dim NomRep As String

    'liste des nom de mois
    Dim NomRepMois(11) As String

    Dim Mois As String


    Mois = Month(Cells(12, 3)) - 1

    'compléter la matrice
    NomRepMois(0) = "01-Janvier " & (radio2.Cells(12, 3))
    NomRepMois(1) = "02-Fevrier " & (radio2.Cells(12, 3))
    NomRepMois(2) = "03-Mars " & (radio2.Cells(12, 3))
    NomRepMois(3) = "04- Avril " & (radio2.Cells(12, 3))
    NomRepMois(4) = "05-Mai " & (radio2.Cells(12, 3))
    NomRepMois(5) = "06-Juin " & (radio2.Cells(12, 3))
    NomRepMois(6) = "07-Juillet " & (radio2.Cells(12, 3))
    NomRepMois(7) = "08-Août " & (radio2.Cells(12, 3))
    NomRepMois(8) = "09-Septembre " & (radio2.Cells(12, 3))
    NomRepMois(9) = "10-Octobre " & (radio2.Cells(12, 3))
    NomRepMois(10) = "11-Novembre " & (radio2.Cells(12, 3))
    NomRepMois(11) = "12-Decembre " & (radio2.Cells(12, 3))

    'définition du chemin
    NomRep = "\\ile.mtl.qc.ca\VDM$\04.RessHumaines\03DivGestCH\Centre de Dotation Administration\HORAIRE D'ENTREVUES\" & _
                    Year(radio2.Cells(12, 3)) & "\" & NomRepMois(Mois) & "\" & Day(radio2.Cells(12, 3)) & " " & Format(radio2.Cells(12, 3), "mmmm") & "\"
                      
    'vérifie si le répertoire existe
        Application.ScreenUpdating = False
    Set fdObj = CreateObject("Scripting.FileSystemObject")
        If fdObj.FolderExists(NomRep) Then
'        MsgBox "Ce répertoire existe déjà.", vbInformation, "Dotation"
    Else
        fdObj.CreateFolder (NomRep)
'        MsgBox "Le répertoire a été créé.", vbInformation, "Dotation"
    End If

   Application.GetSaveAsFilename (NomRep)


    Application.ScreenUpdating = True
End Sub

2 - Serait-il possible de demander à Excel d'enregistrer le fichier en prenant en compte:
Nom du fichier_Date d'entrevue_Nom de l'intervenant RH responsable.xls
 

Pièces jointes

  • Horaire_entrevues - Test macro.xls
    211 KB · Affichages: 47

Staple1600

XLDnaute Barbatruc
Re

Chez moi, le test fonctionne
(évidemment en respectant les conditions préalables indiquées dans le PS du message#12)
VB:
Sub test()
Dim fbObj As Object, NomRep$
NomRep = "C:\TEMP\toto\titi"
'vérifie si le répertoire existe
        Application.ScreenUpdating = False
    Set fdObj = CreateObject("Scripting.FileSystemObject")
        If fdObj.FolderExists(NomRep) Then
       MsgBox "Ce répertoire existe déjà.", vbInformation, "Dotation"
    Else
        fdObj.CreateFolder NomRep
       MsgBox "Le répertoire a été créé.", vbInformation, "Dotation"
    End If
End Sub
A la première exécution de cette macro test, un dossier titi est créé dans C:\TEMP\toto
A la seconde exécution, un MsgBox s'affiche indiquant que ce répertoire existe déjà.

Conclusion du test:
c'est sans doute la manière dont du créé le String NomRep qui pose problème dans ton code initial
 

Staple1600

XLDnaute Barbatruc
Re

Quelques suggestions qui pourraient t'aider à remodeler ton code
VB:
Sub test2()
'Nom du fichier_Date d'entrevue_Nom de l'intervenant RH responsable.xls
Dim vDate As Date
vDate = Date
NomMois = Format(vDate, "mm-mmmm-yyyy")
MsgBox NomMois
NomFichier = Mid(ActiveWorkbook.Name, 1, InStrRev(ActiveWorkbook.Name, ".") - 1)
MsgBox NomFichier
Range("A1") = "DUPONT"
MsgBox NomFichier & "_" & Format(Date, "dd-mmmm-yyyy") & ".xls"
End Sub
 

Discussions similaires