Macro qui fonctionne sur un fichier mais pas sur un autre

bonjour,

tout d'abord je vous remercie pour la qualité de vos réponses, car dès lors que je suis confronté à un problème sur Excel avec ou sans macro, je consulte le forum et j'y trouve la solution

je rencontre un problème que je ne peux expliquer. j'ai deux fichiers de travail (cf PJ) qui contiennent exactement les mêmes macros, impression automatique & enregistrer sous au format pdf dans un répertoire lambda

la macro qui pose problème concerne celle pour "enregistrer sous". le fichier pdf est stocké dans un répertoire racine qui existe sur tous les postes des utilisateurs, puis dans un dossier qui est propre à chaque. la macro regarde si le répertoire choisi par l'utilisateur existe, s'il existe alors il crée le pdf, et s'il n'existe pas, il crée le répertoire et stock le pdf dedans

tout marche nickel dans le fichier "2018 - Révision de comptes" mais dans le fichier "2018 - Heures supplémentaires" il fait bien le test pour voir si le répertoire choisi par l'utilisateur existe ou pas, mais il ne crée pas le fichier pdf

et c'est là que je sèche et que j'ai besoin de votre aide. merci bcp par avance

Bonjour,

Pour moi les deux ne fonctionnent pas ... une petite coquille ...

Ton code :

    CheminDossier = "C:\User\" & Environ("username") & "\Heures supplémentaires\" & NomDossier & "\"

La correction à tester : Remarque le "s" qui manquait au chemin "Users"

    CheminDossier = "C:\Users\" & Environ("username") & "\Heures supplémentaires\" & NomDossier & "\"

ric

bonjour Ric

en fait il y a 2 adresses bien différentes, testés sur W7 & W10.

pour enregistrer tes documents, si tu as crée un dossier sur le bureau le chemin sera alors : c:\userS\.....

en revanche, si tu te sers du répertoire documents qui est présent à chaque cession utilisateur alors le chemin sera : c:\user\.... (sans S)

Bonjour,

Je suis septique ... puis-je l'être?

exemple : C:\Users\ric\Desktop

Ouvre l'Explorateur Windows, rend toi dans le dossier et clique dans la barre d'adresse en haut. Le nom du chemin apparaît.

Recommence pour l'autre dossier ... tu as vraiment deux dossiers "user" : C:\Users\ et C:\User\ ???

Étrange ...

Ric

je comprends que tu puisses être septique, mais la "preuve" en image

Chemin depuis l'accès classique cad dans le répertoire document existant à chaque cession utilisateurs : image 01 & 02

Chemin depuis un répertoire crée sur le bureau : image 03, 04 & 05

05 04 03 02 01

Bonjour Xavier,

J'essaie de comprendre pour reproduire afin de tester ... tu mentionnes :

la macro qui pose problème concerne celle pour "enregistrer sous". le fichier pdf est stocké dans un répertoire racine qui existe sur tous les postes des utilisateurs, puis dans un dossier qui est propre à chaque.

Là, tu sembles indiquer que le pdf est enregistrer à deux endroits ... mais le code ne mentionne pas deux enregistrements.

Ric

Rebonjour,

Je ne suis pas en réseau ... pour que les chemins se créent, il a fallu que j'ajoute dans les références VBA "Microsoft Forms 2.0 Objects Library".

Puis, si je ne vérifie pas chacun des dossiers de façon indépendante, ça ne fonctionne pas.

Je dois donc faire ainsi :

    NomDossier = Application.InputBox("Nom du dossier d'enregistrement :", "Dossier")

    CheminDossier = "C:\User\"
    test_repertoire (CheminDossier)

    CheminDossier = "C:\User\" & Environ("username")
    test_repertoire (CheminDossier)

    CheminDossier = "C:\User\" & Environ("username") & "\Heures supplémentaires\"
    test_repertoire (CheminDossier)

    CheminDossier = "C:\User\" & Environ("username") & "\Heures supplémentaires\" & NomDossier & "\"
    test_repertoire (CheminDossier)

ric

le fichier ne n'enregistre pas 2x

certains collègues utilisent le chemin normal c:\user\U......\ pour stocker leurs documents => pour ceux-ci, ils doivent d'abord créer un répertoire "heures supplémentaires" afin d'y stocker le fichier pdf de chaque collaborateur en cliquant sur le bouton "enregistrer sous"

d'autres collaborateurs ont crée un répertoire sur le bureau avec le chemin c:\userS\U......\Desktop\ pour y stocker leurs documents

mais je vais demander à tout le monde d'utiliser le chemin normal et d'y stocker leur pdf, d'où l'écriture du chemin "c:\user\U......\Heures supplémentaires" ...

à moins que je puisse demander aux utilisateurs de choisir eux même le répertoire où seront stockés les pdf, mais là je ne sais pas faire

Rebonjour,

Oui, devoir choisir où placer le fichier est possible.

Je retrouve l'info et je reviens.

Ric

Bonjour Xavier,

Erreur je me reprend ...

ric

Rebonjour,

Ici, on parle du fichier "2018 - Révision de comptes (macro enregistrer sous fonctionne).xlsm" car le nom du fichier d'enregistrement est pris dans la feuille en "E4" (Compte = Range("E4").Value).

Pour l'autre fichier il faudra adapter la valeur de "Compte".

Est-ce que ceci peut convenir ?

Sub EnregistrerSous()

      'Déclaration des variables
   Dim CheminDossier As String
   Dim objShell As Object, objFolder As Object, oFolderItem As Object

   Set objShell = CreateObject("Shell.Application")

      ' demande le chemin
   Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
   On Error GoTo Gesterr

   Set oFolderItem = objFolder.Items.Item
   CheminDossier = oFolderItem.Path & "\"

      'Nom de la cellule de titre
   Compte = Range("E4").Value

      'Enregistrement du fichier au format pdf
   ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CheminDossier & Compte & ".pdf", _
                                   Quality:=xlQualityStandard, IncludeDocProperties:=False, _
                                   IgnorePrintAreas:=False, OpenAfterPublish:=False
Gesterr:
End Sub

ric

BRAVO ric ..... comme un con je n'ai pas changer la cellule comportant le titre .....

en remplacant Compte = Range("E4").Value par Compte = Range("C5").Value ça fonctionne parfaitement

je savais bien qu'un œil expert m'aiderai !!!! merci bcp

Bonjour,

Ça a pris du temps ... mais l'important c'est de trouver

ric

« Macro qui fonctionne sur un fichier mais pas sur un autre » : le titre de ce sujet est vraiment très intéressant !

comme ça été résolu, je suis ravi de l'heureux dénouement de ce fil de discussion ! un moment, j'ai cru que si ça marchait pour le 1er fichier "2018 - Révision de comptes (...).xlsm" et pas pour le 2ème "2018 - Heures supplémentaires.xlsm", c'est que le second refusait de faire des heures supplémentaires, justement. (note du MEDEF : ils sont jamais contents, ces employés !)


@Xavier L

pour passer le sujet en résolu, il te suffit de cliquer sur le bouton qui est près du bouton (dans le coin haut droit du post qui a résolu ton exo) ; tu sauras que tu as réussi quand tu verras un petit rond vert avec une coche, comme ceci :

sujet

(toi seul peut le faire, car c'est toi qui a créé ce sujet)

dhany

Rechercher des sujets similaires à "macro qui fonctionne fichier pas"