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 :

Joindre fichier avec nom variable [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2008
    Messages : 106
    Par défaut Joindre fichier avec nom variable
    Bonjour le forum!!!

    J'ai besoin de votre aide, mon cerveau est mêlé je crois!!!

    Donc ma situation:

    J'ai un fichier Excel où les gens peuvent inscrire une nouvelle demande. Chaque nouvelle demande est reliée à un numéro unique qui s'affiche en B6 suite à la demande (je vous épargne les détails, mais l'utilisateur complète un Userform qui rempli ensuite les champs de ma feuille "Demande de remplacement" et inscrit le numéro en B6).

    Je veux enregistrer chaque nouvelle demande dans un fichier Excel séparé puis l'envoyer par courriel.

    J'ai placé le nom du fichier dans une cellule sur ma feuille "Demande de remplacement" qui est en fait ceci : ="Demande hors délais - "&B6&".xlsx"
    Résultat du nom (xx étant un numéro variable) : Demande hors délais - XX.xlsx

    Voici mon code pour sauvegarder le fichier dans mon répertoire avec le numéro unique qui lui est attribué (ce code fonctionne très bien).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Sheets("Demande de remplacement").Select
        Sheets("Demande de remplacement").Copy
        ChDir _
            "G:\G-All-Jl-Plt\Commis Operations\Kaizen\Gestion des EPI\Demandes hors délais"
        ActiveWorkbook.SaveAs Filename:=Cells(1, 20).Value 'emplacement du nom de mon fichier avec son numéro unique.
        ActiveWindow.Close
    Je souhaite maintenant l'envoyer par courriel en pièce jointe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      ActiveWorkbook.EnvelopeVisible = True
     
                    With ActiveSheet.MailEnvelope
     
                        .Item.To = "monadresse@email.com"
                        .Item.Subject = Atelier & "-Demande d'EPI - " & EPI & " pour " & Employé & " (" & Punch & ")" 'Reprend plusieurs variables utilisée dans mon code préalablement (fonctionne très bien)
                        .Item.Attachments.Add = "G:\G-All-Jl-Plt\Commis Operations\Kaizen\Gestion des EPI\Demandes hors délais\"&???
                        .Item.Send
                        End With
    J'ai essayé de mettre le chemin dans une variable de type String et d'inscrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Item.Attachments.Add = MaVariable
    J'ai essayé de pointer directement sur une cellule...

    Bref je n'y arrive pas!
    SVP SVP SVP un petit indice pour continuer!

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Et de cette façon ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    With ActiveSheet.MailEnvelope
     
        .Item.To = "monadresse@email.com"
        .Item.Subject = Atelier & "-Demande d'EPI - " & EPI & " pour " & Employé & " (" & Punch & ")"
        .Item.Attachments.Add ThisWorkbook.Path & "\" & ThisWorkbook.Name
        .Item.Send
     
    End With
    Hervé.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2008
    Messages : 106
    Par défaut
    Bonjour Hervé,

    Malheureusement, je ne veux pas joindre tout le fichier, mais tel qu'indiqué dans mon premier bout de code, je copie un onglet seulement vers un nouveau classeur que j'enregistre. C'est ce nouveau classeur enregistré que je souhaite joindre à mon courriel.

    Voici mon code pour sauvegarder le fichier dans mon répertoire avec le numéro unique qui lui est attribué (ce code fonctionne très bien).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sheets("Demande de remplacement").Select
        Sheets("Demande de remplacement").Copy
        ChDir _
            "G:\G-All-Jl-Plt\Commis Operations\Kaizen\Gestion des EPI\Demandes hors délais"
        ActiveWorkbook.SaveAs Filename:=Cells(1, 20).Value 'emplacement du nom de mon fichier avec son numéro unique.
        ActiveWindow.Close
    Je me retrouve donc avec un fichier qui sera au chemin suivant:
    G:\G-All-Jl-Plt\Commis Operations\Kaizen\Gestion des EPI\Demandes hors délais\Demande hors délais - XX.xlsx

    Mon problème est qu'il changera de nom chaque fois puisque le XX sera un numéro variable.

    Je ne sais pas comment inscrire ce chemin variable dans Item.Attachments.Add
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With ActiveSheet.MailEnvelope
     
        .Item.To = "monadresse@email.com"
        .Item.Subject = Atelier & "-Demande d'EPI - " & EPI & " pour " & Employé & " (" & Punch & ")"
        .Item.Attachments.Add '??? chemin variable
        .Item.Send
     
    End With

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Si le nom du fichier est bien inscrit comme stipulé ici
    ActiveWorkbook.SaveAs Filename:=Cells(1, 20).Value
    tu pourrais écrire, j'imagine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Item.Attachments.Add = "G:\G-All-Jl-Plt\Commis Operations\Kaizen\Gestion des EPI\Demandes hors délais\" & Cells(1, 20).value

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2008
    Messages : 106
    Par défaut
    Bonjour,

    Malheureusement il me revoit "Erreur d'exécution. Échec de l'opération" en me renvoyant directement sur ma ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Item.Attachments.Add = "G:\G-All-Jl-Plt\Commis Operations\Kaizen\Gestion des EPI\Demandes hors délais\" & Cells(1, 20).Value
    J'ai aussi essayé de mettre le chemin par une fomule concaténée en Cells(2, 20) puis d'en faire un copier coller valeur en Cells(3, 20). Aucun de ces lignes ne fonctionnent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .Item.Attachments.Add =Cells(2, 20).Value 'chemin concaténé par formule
    .Item.Attachments.Add =Cells(3, 20).Value 'chemin directement inscrit dans la cellule
    .Item.Attachments.Add = "G:\G-All-Jl-Plt\Commis Operations\Kaizen\Gestion des EPI\Demandes hors délais\" & Cells(1, 20).Value ' chemin concaténé directement par VBA

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Qu'est-ce qu'il y a comme texte dans la cellule T1 ?
    Est-ce seulement le nom du fichier ou tout le chemin + le nom ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2008
    Messages : 106
    Par défaut
    Oui j'ai une erreur tel qu'indiqué ici :

    Citation Envoyé par Lufia Voir le message
    Bonjour,

    Malheureusement il me revoit "Erreur d'exécution. Échec de l'opération" en me renvoyant directement sur ma ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Item.Attachments.Add = "G:\G-All-Jl-Plt\Commis Operations\Kaizen\Gestion des EPI\Demandes hors délais\" & Cells(1, 20).Value

    Le fichier est pourtant bien généré dans le répertoire indiqué.
    Je vais valider avec ton bout de code pour voir s'il le détecte bien (la joie de travailler en réseau, le fichier est occupé actuellement !)

    À suivre en fin de journée ou demain Am.

    Merci pour l'aide!


    Je viens de découvrir une autre erreur étrange!!!!

    Jusqu'à ce PM, avec le code suivant, le fichier se générait dans le répertoir mentionné avec le nom inscrit en T1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            Sheets("Demande de remplacement").Select
        Sheets("Demande de remplacement").Copy
        ChDir _
            "G:\G-All-Jl-Plt\Commis Operations\Kaizen\Gestion des EPI\Demandes hors délais"
        ActiveWorkbook.SaveAs Filename:=Cells(1, 20).Value
        ActiveWindow.Close
    Là, j'essaie et le fichier va s'enregistrer dans le répertoire Bibliothèques\Documents
    ??????????????
    Pourquoi le fichier ne s'enregistre plus dans le répertoire mentionné??

    Bien évidement le msgbox suggéré me renvoit que le fichier est inexistant!


    Plus ça avance et plus j'ai l'impression de reculer

    58e essaie!

    J'ai tenté d'envoyer le nouveau classeur généré directement avant de le fermer (donc peut importe son chemin au final) avec le code suivant:

    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
     
           'Sauvegarde du fichier
            Sheets("Demande de remplacement").Select
            Sheets("Demande de remplacement").Copy
            ChDir _
                "G:\G-All-Jl-Plt\Commis Operations\Kaizen\Gestion des EPI\Demandes hors délais"
            ActiveWorkbook.SaveAs Filename:=Cells(1, 20).Value
     
           ' Envoie du fichier directement dans le nouveau fichier généré
           ActiveSheet.Range("AF1:AF3").Select ' la plage de cellules à envoyer
           ActiveWorkbook.EnvelopeVisible = True
     
                    With ActiveSheet.MailEnvelope
     
                        .Item.To = "diongeneviev@bfusa.com"
                        .Item.Subject = Atelier & "-Demande de remplacement d'EPI - " & EPI & " pour " & Employé & " (" & Punch & ")"
                        .Item.Attachments.Add = ThisWorkbook.Path & "\" & ThisWorkbook.Name
                        .Item.Send
                    End With
    Et encore une fois, VBA me renvoit "Erreur d'exécution. Échec de l'opération" en focussant sur la ligne .Item.Attachments.Add

    J'ai vraiment l'impression que c'est une erreur toute banale dans la nommenclature de cet Item, mais je ne met pas le doigt dessus!

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

Discussions similaires

  1. [XL-2007] Macro enregistrement fichier excel en pdf avec nom variable
    Par catetesse dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 23/01/2018, 14h03
  2. [2012] Import fichier avec nom variable
    Par parker13 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 23/01/2014, 09h50
  3. Fermeture d'un fichier avec nom variable
    Par girardinho dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/07/2010, 14h31
  4. Ouvrir un fichier Excel avec nom variable
    Par Mechsangoku dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/10/2009, 12h36

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