Enregistrer sous avec contenu spécifique dans le nom du classeur

Bonjour,

J'essaie de créer une commande VBA qui me permettra à la fois d'enregistrer mon classeur avec un chemin d'accès précis, ex : C\CNESST.

À chaque fois, le classeur devra être enregistré en incluant le contenu de 5 cellules d'une feuille spécifique avec comme début : Rapport d'enquête.

Voici un des codes que j'ai trouvé mais il bogue.

wbchaine = ActiveWorkbook.Sheets("Rapport d'enquête").Range("B12", "B10", "C41", "D41", "F41").Value
Workbooks(wbchaine).Save

Je n'ai pas trouvé comment inclure le chemin ainsi que le début du nom du fichier. Existe-t-il un moyen d'y arriver?

Merci!

Bonsoir majpoulin

Effectivement, ça ne se fait pas comme vous le vouliez

Voici une possibilité

Sub Sauvegarde()
  Dim sPath As String, WbChaine As String, sExt As String
  ' Avec le classeur actif
  With ActiveWorkbook
    ' Récupérer l'extension
    sExt = LCase(Right(.Name, 5))
    ' Chemin du classeur actif
    sPath = .Path & "\"
    ' Avec la feuille désignée de l'objet parent
    With .Sheets("Rapport d'enquête")
      ' Préparer le nom du fichier
      WbChaine = .Range("B12") & .Range("B10") & .Range("C41") & .Range("D41") & .Range("F41")
    End With
    ' Sauvergarder le classeur actif dans le dossier et sous le nom désigné
    If sExt = ".xlsx" Then
      .SaveAs sPath & WbChaine & ".xlsx", FileFormat:=xlOpenXMLWorkbook
    ElseIf sExt = ".xlsm" Then
      .SaveAs sPath & WbChaine & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
    End If
  End With
End Sub

A+

Une fois de plus merci BrunoM45! J'apprends les rouages à la dure épreuve! Vous êtes d'une aide précieuse.

Malheureusement, le problème n'est pas résolu. La commande que je tente de créer se trouve dans un modèle Excel. Elle consiste à enregistrer le classeur en incluant les cellules mentionnées plus haut et il doit également être enregistré dans un répertoire spécifique. D'une part, je n'arrive pas à combiner les deux ensemble et d'autre part, j'obtiens un bogue avec les codes que vous m'avez fournis :

 ElseIf sExt = ".xlsx" Then
      .saveas sPath & WbChaine & ".xlsx", FileFormat:=xlOpenXMLWorkbookMacroEnabled

L'ensemble que j'ai tenté de produire ressemble à ceci :
Sub Sauvegarde()
  Dim sPath As String, WbChaine As String, sExt As String
  ' Avec le classeur actif
    With ActiveWorkbook
    ' Récupérer l'extension
    sExt = LCase(Right(.Name, 5))
       ' Chemin de sauvegarde
    ChDir "C:\CNESST"
    ' Avec la feuille désignée de l'objet parent
    With .Sheets("Rapport d'enquête")
      ' Préparer le nom du fichier
      WbChaine = .Range("B12") & .Range("B10") & .Range("C41") & .Range("D41") & .Range("F41")
    End With
    ' Sauvergarder le classeur actif dans le dossier et sous le nom désigné
    If sExt = ".xlsx" Then
      .saveas sPath & WbChaine & ".xlsx", FileFormat:=xlOpenXMLWorkbook
    ElseIf sExt = ".xlsx" Then
      .saveas sPath & WbChaine & ".xlsx", FileFormat:=xlOpenXMLWorkbookMacroEnabled
    End If
  End With
End Sub
Rechercher des sujets similaires à "enregistrer contenu specifique nom classeur"