Rangement automatique

Bonjour, je souhaite enregistrer sous format pdf un fichier excel. De façon automatique, je souhaite que le nom du fichier porte le nom d'une case spécifique et soit rangé dans un dossier avec une date spécifique.

Le code que j'ai trouvé est le suivant :

Sub test()

Dim cheminDossier, nouveauNom

nouveauNom = Sheets("Reporting").Range("N1")

nouveauNom = Replace(nouveauNom, "/", "_")

cheminDossier = "M:\REPORTING DE GESTION\Multitalent M\" & nouveauNom

MkDir cheminDossier

Dim cheminFichier

cheminFichier = cheminDossier & "\" & ActiveSheet.[T4] & ".pdf"

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=cheminFichier, _

IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub

Cependant, une fois que le dossier est créé avec l'instruction MkDir, la macro bug, et ne veut plus enregistrer un autre fichier... qui a la même date mais pas le même nom.

Comment puis-je résoudre ce problème ?

Merci à vous pour votre aide

Bonjour Maeljourdain,

Essaye ce code pour voir

Sub test()
  Dim cheminDossier, nouveauNom
  nouveauNom = Sheets("Reporting").Range("N1")
  nouveauNom = Replace(nouveauNom, "/", "_")
  cheminDossier = "M:\REPORTING DE GESTION\Multitalent M\" & nouveauNom
  ' En cas d'erreur lors de la création du dossier, on continue le code
  On Error Resume Next
  ' Créer le dossier
  MkDir cheminDossier
  ' Activer la gestion normale des erreur
  On Error GoTo 0

  Dim cheminFichier
  cheminFichier = cheminDossier & "\" & ActiveSheet.[T4] & ".pdf"
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=cheminFichier, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub

A+

Salut BrunoM45,

comment ce fait-il qu'un message Erreur d'éxécution'-2147024773 (8007007b))':

"Document non enregistré" apparait ?

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=cheminFichier, _

IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

cette partie là est surlignée en jaune

merci pour ton aide

Re,

Dans l'éditeur VBA il faudrait mettre un point d'arrêt [F9] sur la ligne qui pose problème

Lorsque ta ligne apparaîtra, mets ton curseur de souris sur ta variable "cheminfichier"

Ou dans la fenêtre d'exécution, tapes : debug.print cheminfichier

et Entrée pour avoir la valeur de ta variable

A+

Rechercher des sujets similaires à "rangement automatique"