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 - renommer un fichier envoyé en pièce jointe dans un mail !


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Macro - renommer un fichier envoyé en pièce jointe dans un mail !
    Chers ami(e)s bonjour,

    Je viens crier à l'aide car je bloque sur un bout de macro.

    Tout d'abord je vous explique en gros :

    J'ai un fichier. des personnes doivent remplir un onglet. cet onglet m'est retourné par mail.
    J'ai une belle macro ( trouvé sur ce site surement ! ) qui :

    affiche l'onglet
    créée une copie de l'onglet
    le met en pièce jointe d'un mail dont l'adresse se trouve dans une cellule du tableau
    envoi le mail
    ferme la copie sans l'enregistrer.

    Le probleme est que je souhaiterais que cette pièce jointe soit renommée en fonction du contenu d'une certaine cellule
    ( par ex : si je mets tartempion dans la cellule B2, la pièce jointe devra s'appeler tartempion (le.xls se met d'office).

    J'ai trouvé des choses à droite et à gauche mais cela ne s'adapte pas à ma macro existante .
    Avez vous une solution ?

    Voici la macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub envoi_réponses()
    Dim Dest As String, Sujet As String
    Worksheets("Réponses").Visible = True
    Sheets("Réponses").Select 
    ActiveSheet.Copy 'crée une copie de la feuille active
    Dest = Range("C2").Value 'Adresse mail selon contenu de la cellule C2
    Sujet = "Réponse du candidat"
    ActiveWorkbook.SendMail Dest, Sujet, False
    Application.DisplayAlerts = False
    ActiveWorkbook.Close 'ferme la copie de la feuille active
    Application.DisplayAlerts = True
    Worksheets("Réponses").Visible = False
    Sheets("Accueil").Range("A1").Select
    End Sub
    Merci d'avance et bonne journée !

    Nicko

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Bonjour,

    Sauf erreur, votre la feuille copiée devient la feuille active ... Donc il faut juste rajouter quelque-chose du type (non testé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.Copy 'crée une copie de la feuille active
    ActiveSheet.Name = Range("XXXX").Value
    "Idéalement nous sommes ce que nous pensons. Dans la réalité, nous sommes ce que nous accomplissons." A.Senna
    et n'oubliez-pas de développer des .... sourires ^_^

  3. #3
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    Si tu veux changer le nom il faut enregistrer sous ton nouveau classeur

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    merci vinc_bilb mais en fait cela ne renomme que l'onglet ... oliv, le problème est que je ne veux pas garder ce fichier...

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Et bien, ça ne marche pas à ma connaissance, dans la mesure ou Workbook.Name est une propriété READ ONLY
    La seule possibilité que je vois est de le sauver par la méthode SAVEAS, sous le bon nom, puis de l'effacer après

    Bonne soirée

    Vous pouvez réadapter peut-être le code ci-dessous (Ext_Wbkk est le workbook temporaire)
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Application.DisplayAlerts = False
     
            Ext_Wbkk.SaveAs Filename:=SavExtrpath & Ext_Wbkkname, FileFormat:=FileFmt, _
                CreateBackup:=False, AddToMru:=True, ReadOnlyRecommended:=False
            Ext_Wbkk.Saved = True
     
            Application.DisplayAlerts = True
        End If
     
            ' Email and propose to delete
        If Email = True Then
     
            Call SEND_WBK(Ext_Wbkk, Signature)
     
            Msgprompt = "Would you like to delete this workbook from disk? " & vbCrLf & _
                Ext_Wbkk.FullName
            Msganswer = Msgbox(Msgprompt, vbYesNo, Subname)
     
            If Msganswer = vbYes Then
                ThisWorkbook.Activate
                Workbooks(Ext_Wbkkname).Close SaveChanges:=False
                Kill (SavExtrpath & Ext_Wbkkname)
            End If
     
        End If
     
            ' Closure, propose to close if still open
        If IS_WBK_OPEN(Ext_Wbkkname) = True Then
            Msgprompt = "Would you like to close this extract workbook?"
            Msganswer = Msgbox(Msgprompt, vbYesNo, Subname)
            If Msganswer <> vbNo Then Workbooks(Ext_Wbkkname).Close SaveChanges:=True
        End If
     
        Application.EnableEvents = True
        Application.DisplayAlerts = True
    "Idéalement nous sommes ce que nous pensons. Dans la réalité, nous sommes ce que nous accomplissons." A.Senna
    et n'oubliez-pas de développer des .... sourires ^_^

  6. #6
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    et bien tu le supprimes après mais tu es obligé de passer par là


Discussions similaires

  1. Envoyer plusieurs pièces jointes dans un mail
    Par totor92290 dans le forum IHM
    Réponses: 16
    Dernier message: 02/03/2016, 14h19
  2. Envoyer des pièces jointes à des adresses mail en php en utilisant fichier excel
    Par jemna dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 07/01/2013, 15h28
  3. Réponses: 2
    Dernier message: 12/11/2008, 14h11
  4. Réponses: 1
    Dernier message: 16/10/2008, 23h17
  5. Renommer une pièce jointe dans un mail.
    Par gregb34 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 24/09/2007, 12h55

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