IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro "enregistrer sous en pdf" + "déplacer en renommant" [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 52
    Par défaut Macro "enregistrer sous en pdf" + "déplacer en renommant"
    Bonjour à toute la communauté.

    Tout d'abord je vous présente mes excuses pour ce énième sujet à propos de macro utilisant des fonctions apparemment simplistes pour un puriste.
    De même, je tiens à informer que ce sujet est posté après avoir passé pas mal de temps sur notre "ami" google et même sur ce forum. Malgré tout, sans succès (sinon le sujet n'aurait aucun intérêt).

    Venons justement au vif du sujet avec ses joyeux problèmes.

    En gros, j'aimerai créer une macro qui permettrait à la fois de créer une sauvegarde en pdf du fichier excel (tout le classeur, pas uniquement une feuille) en cours vers un dossier de destination tout en modifiant son nom à partir de cellules.
    A vrai dire ce problème est réglé.

    En plus de la première requête, j'aimerai que le fichier en question (ouvert donc, si on utilise la macro) soit déplacé vers un autre dossier de destination (différent de celui dans lequel se trouve le fichier actuel et différent du dossier de destination de la sauvegarde pdf) avec un nouveau nom qui lui aussi dépendra de cellules. Le fichier d'origine devra aussi être supprimé après le transfert.

    Je ne sais pas si c'est assez clair.

    Voici le code que j'utilise actuellement et qui ne fonctionne pas, bien entendu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub PDF()
     
    Dim Fichier As String, Chemin As String, NouveauChemin As String, Fichiert As String
     
    Fichier = "C:\Users\t\Desktop\pdf\" & "_" & [B2].Value & "_" & [B1].Value & "_" & Format(Date, "yyyymmdd")
    Chemin = "C:\Users\t\Desktop\"
    NouveauChemin = "C:\Users\t\Desktop\test01\"
    Fichiert = [B2].Value & "_" & [B1].Value & "_" & Format(Date, "yyyymmdd") & ".xls"
     
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Fichier, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        ignorePrintAreas:=False, OpenAfterPublish:=False
     
    Kill NouveauChemin & Fichiert
    Name Chemin & Fichiert As NouveauChemin & Fichiert
    Kill Chemin & Fichiert
     
    Application.Quit
     
    End Sub
    Merci beaucoup pour vos éventuelles solutions.

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 216
    Par défaut
    Bonjour,

    Tu ne peux pas déplacer/supprimer un fichier qui est en cours d'utilisation et qui contient la macro qui s’exécute...
    Pourquoi ne peux-tu pas enregistrer directement le fichier au bon endroit ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 52
    Par défaut
    En effet je pourrai ne faire que deux simples sauvegardes mais le problème c'est que j'aimerai que le fichier d'origine soit supprimé une fois les sauvegardes réalisées.

    En gros, dans le dossier A, le fichier d'origine.
    Dans le dossier B, le fichier en pdf
    Dans le dossier C, le fichier en xls

    Et une fois que le fichier d'origine est fermé, il est supprimé du dossier A (tout en étant sauvegardé dans les dossiers B et C).

    Tout ça pour faciliter une tâche répétitive et qui survient (trop) souvent. (et aussi un peu par fainéantise)

    PS: je comprends que le fichier ne puisse être supprimé lorsqu'il est ouvert, c'est pour ça que j'ai fais en sorte qu'il se ferme une fois la macro terminée.

    En tout cas merci pour ta réponse

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 216
    Par défaut
    Que représente le fichier d'origine ?
    Si c'est un fichier EXCEL, tu peux passer par un modèle qui contient les macros et ensuite tu le fermes sans l'enregistrer...

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 52
    Par défaut
    le fichier d'origine est bien un fichier excel.
    Le soucis c'est surtout de savoir si je peux faire tout ça en restant sur le fichier à déplacer. En fait les fichiers sont créés par client. Et lorsque toutes les données sont entrées, il faut normalement fermer le fichier en question, le déplacer dans un dossier puis créer une sauvegarde pdf dans un autre dossier.

    Dit comme ça c'est tout bête et ça ne prend que 1 minute mais multiplié par 100, tout en sachant que je n'ai pas spécialement de temps à accorder pour cette action, je pensais créer une macro pour combler tout ça.
    Autre problème qui se pose: d'autres personnes ont accès aux fichiers et doivent réaliser la même action or ces personnes sont moins compétentes que moi en informatique (et mon niveau n'est pas merveilleux comme vous pouvez le constater). Donc ajouter un autre fichier pour lancer les macro risquent de les embêter plus qu'autre chose.

    Après j'ai vu sur internet la fonction name. Pourrait-elle me servir? Sachant que je n'ai pas réussi à l'utiliser convenablement.

    EDIT: sinon je passe par la fonction save et la suppression se fera en manuel, comme tu l'as indiqué.

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 216
    Par défaut
    Ben en fait, je viens de tester la solution ci-dessous et elle fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test()
     
        Dim OldFile As String
        Dim fs As Scripting.FileSystemObject
        Dim f As Scripting.File
     
        OldFile = ThisWorkbook.Name
        ThisWorkbook.SaveAs Filename:="Toto.xlsm" 'Le nom de ton nouveau fichier...
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set f = fs.GetFile(OldFile)
        f.Delete
     
    End Sub
    Il ne te reste plus qu'à l'adapter pour toi.
    (dans mon cas et pour ce test, je n'ai pas gérer les répertoires des fichiers ni de gestion d'erreur...)

    Remarques : tes fichiers contiennent des macros et doivent donc être dans un format qui les prend en charge.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Améliorer ma macro "enregistrer sous"
    Par Gualino dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/07/2011, 18h50
  2. [OpenOffice][Tableur] [calc] macro "enregistrer sous"
    Par chegerg dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 24/03/2009, 06h00
  3. macro enregistrer sous
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/02/2008, 18h43
  4. Macro "enregistrer sous et mise à jour"
    Par Jonathan Raucy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/01/2008, 09h37
  5. Macro enregistrer sous
    Par lara008 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/08/2007, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo