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

VBA PowerPoint Discussion :

Ne pas afficher le message de demande de mise à jour des liaisons [PPT-2003]


Sujet :

VBA PowerPoint

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Points : 14
    Points
    14
    Par défaut Ne pas afficher le message de demande de mise à jour des liaisons
    Bonjour à tous,



    Avant de commencer, je précise que je travaille sous VBA avec Excel 2003 et PowerPoint 2003.



    J'ai un petit problème. J'ai réalisé une macro dans Excel qui permet l'ouverture d'un fichier PowerPoint. Or, pour les fichier PowerPoint contenant des liaisons, un message de demande de mise à jour des liaisons s'affiche (voir ci-dessous).





    Ce message s'affiche car la mise à jour des liaisons a été déclarée " Automatique" par l'utilisateur (c'est même le paramétrage par défaut, l'autre choix étant "Manuel").



    Je sais bien qu'en définissant toutes les liaisons en mise à jour "Manuelle" je n'obtiendrais pas ce message. Cependant, cette macro est sensée ouvrir n'importe quel fichier, et doit s'adapter au fichier PowerPoint à ouvrir et non l'inverse.



    Il faut savoir qu'ouvrir un fichier PowerPoint nécessite du code Powerpoint. L'ouverture sans mise à jour des liaisons d'un fichier Excel (UpdateLinks = False) n'est pas applicable ici, puisque l'ouverture d'un fichier PowerPoint s'effectue avec la fonction Open (voir ci-dessous) qui ne permet pas de déclarer l'ouverture du fichier PPT sans mettre à jour ou pas les liaisons.

    expression.Open(FileName, ReadOnly, Untitled, WithWindow, OpenConflictDocument)



    Voilà, je pense avoir été le plus clair possible.


    Si quelqu'un a une solution, cela me serait fort utile...


    Merci d'avance à tous.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    Bonsoir à tous,


    Désolé pour ce retard.



    Voici donc mon code finalisé pour ouvrir un fichier PowerPoint depuis Excel, sans faire apparaître le message de demande de mise à jour des liaisons :


    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
    106
    107
    Sub M_OUVERTURE_FIC_PPT()
    
    
    ' Déclaration des variables
    Dim Nom_Fic_Macro As String
    Dim Path_Fic_Macro As String
    Dim TitreMsg As String
    
    Dim PPT_App As Object
    Dim PPT_Doc As Object
    Dim PPT_Doc_ouvert As Object
    
    Dim Path_Fic_PPT As Variant
    
    Dim Cpt_bs As Integer
    
    
    ' Initialisation de l'écran, non-affichage des alertes et non-demande de mise à jour des liaisons (pour Excel)
    Application.ScreenUpdating = True
    Application.DisplayAlerts = False
    Application.AskToUpdateLinks = False
    
    
    
    ' Acquisition du nom et du chemin d'accès du fichier Excel où est présente la macro
    Nom_Fic_Macro = ThisWorkbook.Name
    Path_Fic_Macro = ThisWorkbook.Path
    
    
    
    ' Attribution du titre des messages affichés
    TitreMsg = Left(Nom_Fic_Macro, Len(Nom_Fic_Macro) - 4)
    
    
    
    ' Sélection du fichier PowerPoint qui contient les objets liés
    ' Si aucun fichier n'est sélectionné, la macro est quittée
    With Application.FileDialog(msoFileDialogFilePicker)
        
        .Title = "Sélectionnez le fichier PowerPoint contenant les objets liés"
        .InitialFileName = Path_Fic_Macro
        .AllowMultiSelect = False
        .Filters.Clear
        .Filters.Add "Fichiers PowerPoint (*.ppt)", "*.ppt"
        .InitialView = msoFileDialogViewDetails
        .ButtonName = "Sélectionner"
        .Show
        
        If .SelectedItems.Count = 0 Then
                Exit Sub
        
        Else
                
                Path_Fic_PPT = .SelectedItems(1)
            
                For Cpt_bs = Len(Path_Fic_PPT) To 1 Step -1
                        If Mid(Path_Fic_PPT, Cpt_bs, 1) = "\" Then
                                Nom_Fic_PPT = Right(Path_Fic_PPT, Len(Path_Fic_PPT) - Cpt_bs)
                                Exit For
                        End If
                Next Cpt_bs
                
        End If
                
                
    End With
    
    
    
    ' Création de l'objet PowerPoint, objet invisible, et non-affichage des alertes dans PowerPoint
    ' PPT_App.DisplayAlerts = 1 -> 1 = valeur de ppAlertsNone (argument propre à Powerpoint)
    Set PPT_App = CreateObject("PowerPoint.Application")
    PPT_App.DisplayAlerts = 1
    
    
    
    
    ' Si le fichier PowerPoint défini par l'utilisateur est ouvert,
    ' il est fermé par la macro, avec une demande de sauvegarde
    For Each PPT_Doc_ouvert In PPT_App.Presentations
            If PPT_Doc_ouvert.FullName = Path_Fic_PPT Then
                    If MsgBox("Le fichier PowerPoint que vous avez sélectionnez est déjà ouvert." & Chr(10) & _
                               "Il va être fermé." & Chr(10) & Chr(10) & _
                               "Souhaitez-vous l'enregistrer ?", vbYesNo + vbQuestion, TitreMsg) = vbYes Then
                            PPT_Doc_ouvert.Save
                    End If
                    PPT_Doc_ouvert.Close
            End If
    Next PPT_Doc_ouvert
    
    
    
    ' Ouverture du fichier PowerPoint sans afficher la fenêtre PowerPoint
    Set PPT_Doc = PPT_App.Presentations.Open(Path_Fic_PPT, WithWindow:=msoFalse)
    
    
    
    
    ' Initialisation de l'écran, affichage des alertes et demande de mise à jour des liaisons (pour Excel)
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    Application.AskToUpdateLinks = True
    
    
    
    End Sub


    La ligne qui m'évite d'avoir le message de demande de mise à jour des liaisons est la suivante :
    PPT_App.DisplayAlerts = 1

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

Discussions similaires

  1. [PPT-2010] Désactiver la demande de mise à jour des liaisons
    Par Daejung dans le forum VBA PowerPoint
    Réponses: 2
    Dernier message: 21/03/2012, 15h31
  2. Réponses: 5
    Dernier message: 21/11/2008, 08h48
  3. Réponses: 3
    Dernier message: 18/04/2008, 13h36
  4. Ne pas afficher un Message d'erreur
    Par titeZ dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/08/2007, 13h39
  5. NE pas afficher le message de confirmation lors du rechargement d'un formulaire
    Par Earthwormjim dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/11/2006, 14h46

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