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

Outlook Discussion :

Macro qui ne fonctionne d'une fois


Sujet :

Outlook

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 11
    Points : 3
    Points
    3
    Par défaut Macro qui ne fonctionne d'une fois
    Bonjour à toutes et à tous,

    Me revoila pour un petit problème.

    Lorsque que je suis dans Outlook. J'ouvre un contact, et par un bouton situé dans la boite à outlis personnalisé, j'ouvre excel, remplis les cellules des coordonées de mon contact, j'imprime l'ensemble avec une petite imprimante (étiquette) et je ferme excel. Tout ce passe super bien, mais une fois seulement ! Si je clic de nouveau sur mon bouton, rien ne se passe !

    Voici mon 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
    'Déclaration des variables
            Dim appExcel As Excel.Application    'Application Excel
            Dim wbExcel As Excel.Workbook    'Classeur Excel
            Dim wsExcel As Excel.Worksheet    'Feuille Excel
            Dim xlmacroBook As Excel.Workbook
            Dim MavarXL
     
            'Ouverture de l'application
            Set appExcel = CreateObject("Excel.Application")
            appExcel.Visible = True
            'Ouverture d'un fichier Excel
            Dim Presence As Boolean
            Presence = False
            fichier = "Outlook etiquette client.xls"
            For Each w In Workbooks
            If w.Name = fichier Then Presence = True
            If w.Name = fichierratio Then appExcel.Workbooks("Ratio 2011.xls").Close
            Next w
     
            If Presence = True Then
            Else
            Set wbExcel = appExcel.Workbooks.Open("C:\Documents\Outlook etiquette client.xls")
            End If
     
            'wsExcel correspond à la première feuille du fichier
            Set wsExcel = wbExcel.Worksheets(1)
     
        Set myolapp = CreateObject("Outlook.Application")
        Set myinspector = myolapp.ActiveInspector
     
    With appExcel.Workbooks("Outlook etiquette client.xls").Sheets("Feuil1")
    'On Error Resume Next
    '.Application.ScreenUpdating = False
    '.Application.DisplayAlerts = False
        .Range("a1") = myinspector.CurrentItem.CompanyName
        .Range("a2") = myinspector.CurrentItem.Title & " " & myinspector.CurrentItem.LastName & " " & myinspector.CurrentItem.FirstName
        .Range("a3") = myinspector.CurrentItem.HomeAddressStreet
        .Range("a4") = myinspector.CurrentItem.HomeAddressPostalCode & " " & myinspector.CurrentItem.HomeAddressCity
        .Range("a5") = "Tél. : " & myinspector.CurrentItem.HomeTelephoneNumber
        .Range("a6") = "Fax : " & myinspector.CurrentItem.TelexNumber
        .Range("a7") = "Portbale : " & myinspector.CurrentItem.MobileTelephoneNumber
        .Range("a8") = "Mail : " & myinspector.CurrentItem.Email1Address
        .Activate
     
    With appExcel.ActiveSheet
     
        .Application.ActivePrinter = "ZDesigner TLP 2824 Plus (ZPL) sur Ne00:"
        ExecuteExcel4Macro _
            "PRINT(1,,,1,,,,,,,,2,""ZDesigner TLP 2824 Plus (ZPL) sur Ne00:"",,TRUE,,FALSE)"
     
    End With
     
     
    .Application.ScreenUpdating = True
    .Application.DisplayAlerts = True
    End With
    appExcel.Application.DisplayAlerts = False
    appExcel.Workbooks("Outlook etiquette client.xls").Close
    appExcel.Quit
    appExcel.Application.DisplayAlerts = True
    Set appExcel = Nothing
    Merci d'avance pour vos réponses.

  2. #2
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Je penses que tu ne remets pas certaines variables à rien à la fin.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      Set myolapp = CreateObject("Outlook.Application")
        Set myinspector = myolapp.ActiveInspector
    Ces deux là par exemple ne sont pas réinitialisés et les objets correspondants non libérés (2 instances pour myolapp). Il manque quelque chose de ce style.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    myolapp.quit
    set myinspector=Nothing
    set myolapp=Nothing
    Idem pour wbexcel et wsexcel à mettre à Nothing (même si vu que c'est ouvrir un workbook, cela ne doit pas poser trop de problèmes, je pense).
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Bonjour carden752,

    Tout d'abord merci pour t'as réponse. J'ai essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    myolapp.Quit
    Set myinspector = Nothing
    Set myolapp = Nothing
    Set wsExcel = Nothing
    Set wbExcel = Nothing   'Classeur Excel
    Set appExcel = Nothing
    Cela fonctionne effectivement, mais "myolapp.quit" ferme complétement l'application Outlook. Ce que je ne souhait pas évidement ! Je l'ai donc supprimé.

    En faisant fonctionner mon code. j'ai bien vu que excel s'ouvrait, que les cellules ce remplissent comme il faut, mais lors de la deuxième utilisation c'est l'impression qui ne ce déclenche pas ! Il passe directement à la fermeture d'excel !

    As-tu une idée pour cela ?

    Merci.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Re,

    Je crois avoir trouver la solution à mon problème. La gestion du VBA avec Outlook est très compliqué ! Je vais tout simplement créer mes macros avec excel et utilisé appexcel.application.run("mamacro") pour faire appel à mes macros dans excel, car je doit gérer pas mal de choses en relation avec excel.

    Merci pour ton aide carden752.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/12/2008, 14h19
  2. [AJAX] IE7 : lien qui ne fonctionne qu'une fois :(
    Par NoobX dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 25/08/2008, 16h34
  3. On Error GoTo qui ne fonctionne qu'une fois
    Par bernard0828 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/08/2007, 07h39
  4. bouton submit qui ne fonctionne qu'une fois
    Par sam01 dans le forum Langage
    Réponses: 6
    Dernier message: 06/07/2007, 08h19
  5. [AJAX] Méthode sous Ajax qui ne fonctionne qu'une fois?
    Par patrice419 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/04/2007, 13h19

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