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 :

migration 2003 à 2007 [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 491
    Par défaut migration 2003 à 2007
    Bonjour,

    J'ai une macro qui me permet via un fichier excel de récupérer des informations et avec celles-ci d'envoyer un email avec pièce jointe.

    La macro a été faite sous excel 2003 et le PC de l'utilisateur a été migré en 2007. Le problème c'est que la macro ne fonctionne plus comme avant.

    Je ne sais pas pourquoi mais la pièce jointe (du moins son nom) est collée à la suite de l'adresse email du destinataire ????

    Est ce que quelqu'un pourrait m'aider car je suis un peu perdu ?

    Voici le code :
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    Sub EnvoiMail()
      Dim nomfich As String
      Dim nomfich2 As String
      Dim Corps As String
     
    Dim Msg, Style, Title, Response, MyString
     
     
    'Cde_a_emailer = InputBox("Entrez le n° de commande pour lequelle vous voulez envoyer un email", "N° de commande")
    'Range("L1").Value = Cde_a_emailer
    Cde = InputBox("Entrez le n° de commande pour lequelle vous voulez envoyer un email", "N° de commande")
    Range("K1").Value = Cde
    'Cde = Range("K1").Value
     
    If Cde = "" Then Exit Sub
     
    Range("K2").Select
    Client = ActiveCell.Value
     
    Range("K3").Select
    Email = ActiveCell.Value
     
    Range("K4").Select
    Date_expe = ActiveCell.Value
    Range("K5").Select
    Date_expe2 = ActiveCell.Value
    Range("K6").Select
    Date_Cde = ActiveCell.Value
    Range("K7").Select
    Date_Cde2 = ActiveCell.Value
     
    ActiveSheet.Range("A1").Select
     
     
        Msg = "Confirmez vous l'envoi d'un email pour la commande" & vbCrLf & Cde & " du client " & Client
        Style = vbYesNo + vbQuestion
        Title = "Confirmation envoi email"
     
        Response = MsgBox(Msg, Style, Title) ' Affiche le message.
     
     
            If Response = vbYes Then    ' L'utilisateur a choisi Oui.
                myrep = "\\Envoi_BA_par_email\Cde_clé_USB\" & Date_expe
                nomfich = myrep & "\" & Cde & ".txt"
                nomfich2 = Dir(myrep & "\*" & Cde & "*.txt")
     
                If nomfich2 <> "" Then
                Adresse = Email
                Sujet = "BULLETINS D'ANALYSE COMMANDE " & Cde
                Texte = "Bonjour," & vbCrLf & vbCrLf & "Veuillez trouver ci-joint la liste des produits expédiés le " & Date_expe2 & " et pour laquelle vous pourrez télécharger les bulletins d'analyse sur notre site." & vbCrLf & "Bonne réception." & vbCrLf & "Bien cordialement." & vbCrLf & vbCrLf & "Le Service Commercial"
     
                Shell "C:\Program Files\Outlook Express\msimn.exe " & "/mailurl:mailto:" & _
                Adresse & "?subject=" & Sujet & "&Body=" & Texte & ""
                SendKeys "%I" & "p" & nomfich & "~"
                        'Signification des caractères après "SendKeys":
                        '* %I et P = Insertion de la pièce jointe dans Outlook Express. (%=Alt)
                        '* ~ = Validation. (~=Entrée)
                        '* %S = Envoyer.
     
                Else
                Msg = "Il n'y a pas de commande n° " & Cde & " expédiée à la date du" & vbCrLf & Date_expe2
                Style = vbOK
                Title = "Confirmation envoi email"
     
                Response = MsgBox(Msg, Style, Title) ' Affiche le message.
     
                    If Response = vbOK Then
                        Date_Cde = InputBox("Entrez la Date d'expédition de la commande" & vbCrLf & Cde & vbCrLf & vbCrLf & "        sous le format :   aaaammjj", "Date d'expédition de la commande")
                        Range("K6").Value = Date_Cde
     
                        myrep = "\\Envoi_BA_par_email\Cde_clé_USB\" & Date_Cde
                        nomfich = myrep & "\" & Cde & ".txt"
                        nomfich2 = Dir(myrep & "\*" & Cde & "*.txt")
     
                        If nomfich2 <> "" Then
     
                            Adresse = Email
                            Sujet = "BULLETINS D'ANALYSE COMMANDE " & Cde
                            Texte = "Bonjour," & vbCrLf & vbCrLf & "Veuillez trouver ci-joint la liste des produits expédiés le " & Date_Cde2 & " et pour laquelle vous pourrez télécharger les bulletins d'analyse sur notre site." & vbCrLf & "Bonne réception." & vbCrLf & "Bien cordialement." & vbCrLf & vbCrLf & "Le Service Commercial "
     
                            Shell "C:\Program Files\Outlook Express\msimn.exe " & "/mailurl:mailto:" & _
                            Adresse & "?subject=" & Sujet & "&Body=" & Texte & ""
                            SendKeys "%I" & "p" & nomfich & "~"
                                'Signification des caractères après "SendKeys":
                                '* %I et P = Insertion de la pièce jointe dans Outlook Express. (%=Alt)
                                '* ~ = Validation. (~=Entrée)
                                '* %S = Envoyer.
     
                        Else
                        Msg = "Il n'y a pas de commande n° " & Cde & " expédiée à la date du" & vbCrLf & Date_Cde2
                        Style = vbOK
                        Title = "Confirmation envoi email"
                        Response = MsgBox(Msg, Style, Title) ' Affiche le message.
     
                        End If
                    End If
                End If
            End If
     
            ActiveSheet.Range("A1").Select
     
     
     
     
    End Sub
    Par avance merci pour votre éclairage.

    Nini

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 491
    Par défaut
    Bonjour et bonne année à tous,


    Je ne sais pas si vous pourrez plus m'aider cette année que l'année dernière sur mon problème mais en tous les cas, je me le souhaite car je suis toujours planté.

    Je pense que cela vient du code suivant qui ne passe pas sous excel 2007 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Shell "C:\Program Files\Outlook Express\msimn.exe " & "/mailurl:mailto:" & _
                Adresse & "?subject=" & Sujet & "&Body=" & Texte & ""
                SendKeys "%I" & "p" & nomfich & "~"

    La pièce jointe se colle au niveau de l'adresse email et non comme une pièce jointe; du coup j'ai une syntaxe dans l'adresse email comme ci-dessous :
    email@email.comfichier.txt




    Par avance merci pour votre aide

    Nini

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 491
    Par défaut
    Bonjour,

    J'ai trouvé une solution en bidouillant un code.

    Voici le code et a priori sur les 1er essais il fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ' envoi du message via Outlook Express
    URLto = "mailto:" & Adresse & "?subject=" & Sujet & "&body=" & Texte & ""
     
    ' ouvre Outlook Express
    ActiveWorkbook.FollowHyperlink Address:=URLto
     
    ' fait patienter la macro pour ne pas faire les SendKeys dans Excel mais dans Outlook Express
    Application.Wait (Now + TimeValue("0:00:01"))
     
    ' permet de taper virtuellement les touches pour insérer la pièce jointe
    Application.SendKeys "%I" & "p", True
    Application.SendKeys nomfich, True
    Application.SendKeys "~", True

    Merci à moi alors !!!

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 27/10/2014, 14h00
  2. [AC-2007] migration 2003 2007
    Par jo remy dans le forum IHM
    Réponses: 1
    Dernier message: 05/02/2013, 02h38
  3. Migration Access 2003 à 2007 Aucun Soucis ?
    Par Benji01 dans le forum Access
    Réponses: 4
    Dernier message: 12/05/2008, 19h11
  4. [Migration 2003 - 2007] problème de routage des mails
    Par nicoda dans le forum Exchange Server
    Réponses: 0
    Dernier message: 15/01/2008, 11h03
  5. Réponses: 1
    Dernier message: 01/08/2006, 14h42

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