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 :

VBA - ERROR 400 chez un autre mais pas chez moi [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2013
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 220
    Par défaut VBA - ERROR 400 chez un autre mais pas chez moi
    Bonjour tout le monde,

    Pour aider un copain, je lui ai travaillé son fichier Excel de suivi des clients. Moi j'ai la version 2010, lui la 2007.

    Dans son fichier, j'ai ajouté deux codes qui envoient des mails à deux occasions différentes. J'ai aussi ajouté une macro de tri selon les données de certaines cellules.

    Problème constaté : chez moi, tout va bien. Ouvre, ferme, modifie, ajoute des données, envoie les courriels, hop ! ça gaze.

    Chez lui : le fichier à fonctionné 2 jours. Le 3ème, fichier corrompu. J'ai renvoyé le fichier original, avec un autre nom. Ça marche deux jours, et maintenant ça ne marche plus du tout, il a "ERROR 400" chaque fois qu'il lance la macro pour envoyer un mail. J'ai envoyé un troisième fichier, il bug dès la première utilisation (et ne cherche même plus à fonctionner au moins une journée).

    C'est son Excel ou c'est mon fichier qui a la jaunisse chez lui ?

    Voici le code utilisé pour les mails (ils sont exactement pareils, il n'y a que l'objet et le texte qui changent - Le second s'appelle RenouvellementTest()) :

    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
    Sub AnniversaireTest()
    ' Working in Office 2000-2013
        Dim OutApp As Object
        Dim OutMail As Object
        Dim strbody As String
     
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
     
        strbody = "Bonjour," & _
                  "<br><br>Texte de bon anniversaire !<br>" & _
                  "<br>Blablalbalbalba" & _
                  "<br><br>Avec mes meilleures salutations."
     
     
        On Error Resume Next
     
        With OutMail
            .Display
            .To = Cells(ActiveCell.Row, 26)
            '.CC = ""
            '.BCC = ""
            .Subject = "Une journée spéciale"
            .HTMLBody = "<HTML><BODY>" & strbody & "</BODY></HTML>" & "<br>" & .HTMLBody
            .Display
        End With
     
        On Error GoTo 0
        Set OutMail = Nothing
        Set OutApp = Nothing
    End Sub
    Et voici le code de tri :

    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
    Sub Tri_OrangeTest()
    '
    ' Affiche les lignes de couleur orange dans le haut du tableau
    '
     
    '
        ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Add(Range( _
            "V7:V750"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color _
            = RGB(255, 153, 51)
        ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Add Key:=Range _
            ("V7:V750"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
     
        With ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub
     
     
    Sub Tri_BleuTest()
    '
    ' Affiche les lignes bleues dans le haut du tableau
    '
     
    '
        ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Add(Range( _
            "F7:F750"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color _
            = RGB(149, 179, 215)
        ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Add Key:=Range _
            ("F7:F750"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
     
        With ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub
    avec dans la Feuil1, l'appel des macros de tris sur changement de valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_Change(ByVal Target As Range)
     If Not Application.Intersect(Target, Range("B1")) Is Nothing Then
     
       Tri_OrangeTest
     End If
     
     If Not Application.Intersect(Target, Range("B2")) Is Nothing Then
     
       Tri_BleuTest
     End If
     
    End Sub
    Je précise que je ne suis pas programmeuse (ça doit se voir du reste ! ) : je bidouille des codes glanés à droite et à gauche et je demande de l'aide sur ce forum quand ça coince. Par contre, j'aime comprendre ce que je fais alors si j'ai bidouillé un monstre, j'aimerais le savoir.

    Je joins un fichier test, si des fois...

    Merci !
    Fichiers attachés Fichiers attachés

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    J'ai téléchargé l'exemple, mais, j'ai Excel 2010. Je vais quand même essayer d'y jeter un oeil un peu plus tard, d'un coup...

    Ceci dit, j'ai interrogé le moteur de recherche de MSDN. Il a bravement, théoriquement du moins, craché presque 4300 réponses:

    http://social.msdn.microsoft.com/sea...0&addenglish=1

  3. #3
    Invité
    Invité(e)
    Par défaut bonjour,
    dans vb outils->références regarde si il n'y a pas de librairies manquantes.
    Images attachées Images attachées  

  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
    .HTMLBody = "<HTML><BODY>" & strbody & "</BODY></HTML>" & "<br>" & .HTMLBody
    Petite question en passant... pourquoi ajouter ceci ?

  5. #5
    Membre éclairé
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2013
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 220
    Par défaut
    Bonjour Clément, rdurupt et parmi,

    Merci à tous les trois de vous pencher sur mon souci.

    Clément, je vais éplucher le résultat des recherches et j'attends de vos nouvelles si des fois vous avez le temps de regarder mon exemple.

    rdurupt : oui, toutes les librairies nécessaires sont activées.

    Parmi : ce code vient du site de Ron de Bruin (http://www.rondebruin.nl/win/s1/outlook/signature.htm). Je ne suis pas très familière avec la mise en forme HTML alors j'ai recopié intégralement. L'avantage de ce code, c'est qu'il inclut la signature. À l'origine, le code était :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .HTMLBody = strbody & "<br>" & .HTMLBody
    Cependant, j'avais des problèmes de taille de police dans le message Outlook : c'était du 8,5, par défaut, sans me demander mon avis. J'ai fait des recherches et j'ai juste ajouté les balises de format et j'ai pu obtenir un message avec une police 10 ou 11.

    C'est bancal ?


    Je précise pour vous trois que j'ai essayé de mettre un Errorhandler. De mon côté comme du sien, une fois la macro d'envoi du message exécutée, il y a une petite fenêtre dans Excel avec "0" et "OK".... ??

  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
    Effectivement, cette partie ajoute bien la signature... merci...
    Par contre, tu mets 2 .Display
    Je ne pense pas que le 2e soit nécessaire et cause peut-être une erreur (?).

    Lorsque je ne sais pas d'où provient une erreur j'utilise souvent ceci, mais ça ne fonctionnera pas pour les erreurs non traçables... Mais c'est souvent pratique quand il n'y a pas de possibilité de déboguer l'erreur...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub MaSub
       On Error Goto Erreur
       .... code
     
       Exit Sub
    Erreur:
       Msgbox Err.number & vbcrlf & err.Description
       Stop        'ici le code arrête et tu fais F8
       Resume   'un autre F8 et tu vas remonter à ta ligne d'erreur
    End Sub
    Et je mets les 2 dernières lignes en commentaire quand le code fonctionne bien

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

Discussions similaires

  1. [OL-2007] meetings s'affichent chez les participant mais pas chez l'organisateur
    Par laetitia1971 dans le forum Outlook
    Réponses: 0
    Dernier message: 25/06/2015, 16h25
  2. [XL-2007] Macro fonctionne sur mon poste mais pas chez les autres
    Par Rosees dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/10/2013, 17h01
  3. [WD12] client/serveur chez moi, mais pas chez les autres ?
    Par daphi dans le forum HyperFileSQL
    Réponses: 5
    Dernier message: 19/03/2009, 18h43
  4. idFTP : fonctionnement OK chez moi, mais pas chez les autres
    Par Goofyjp dans le forum Composants VCL
    Réponses: 2
    Dernier message: 31/10/2008, 15h35
  5. Code ok sur mon PC mais pas chez les autres ?
    Par catherineFR27 dans le forum Général VBA
    Réponses: 6
    Dernier message: 04/06/2007, 20h29

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