Bonjour à vous !
première précision, je suis totalement inexpérimenté en VBA même si je me débrouille bien avec XLS et PPT. Je ne suis pas dans l'informatique et le présent problème posé est pour solutionner un bénévolat dont je m'occupe. (j'organise annuellement un tournoi de pétanque avec 32 équipes). J'ai créé un XLS avec différents onglets correspondant à chaque poule de 4. J'encode au fur et à mesure les résultats dans l'onglet concerné, ... les classements se mettent à jour automatiquement jusqu'à la finale ... - tout va bien de ce côté-là !
Par contre, pour que les joueurs puissent voir leur classement sans toujours venir me le demander, j'ai créé un ppt que je fais tourner en boucle sur un deuxième écran. chaque slide du ppt reprend une partie de chaque onglet XLS avec le classement.
Ma question : je souhaite liaisonner le fichier ppt avec le XLS pour que chaque fois que j'encode un résultat (mon Excel reste évidement ouvert mais j'enregistre après chaque résultat), le ppt qui est diffusé sur l'autre écran se met à jour à chaque redémarrage de la boucle du ppt.
Je ne sais malheureusement pas programmer en VBA.
J'ai trouvé sur un site ce qui semble être un solution mais je ne sais pas l'adapter à mon ppt/xls.
Est-ce qu'un d'entre vous peut m'aider à écrire le programme à faire tourner à chaque démarrage de boucle ... ?
D'avance Merci de votre aide.
Philippe.

ce que j'ai trouvé : (je pense que dans mon cas, c'est la seconde partie que je dois utiliser)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
If SSW.View.CurrentShowPosition = 1 Then
    ActivePresentation.Slides(3).Shapes("Excel").LinkFormat.Update
End If
End Sub
Et voici une seconde macro qui met à jour tous les objets de la présentation insérés avec liaison, sous condition que ce soient des objets OLE, dès que le diaporama redémarre à la première diapositive :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
Dim diapo As Slide, sh As Shape
If SSW.View.CurrentShowPosition = 1 Then
    For Each diapo In ActivePresentation.Slides
        For Each sh In diapo.Shapes
            If sh.Type = msoLinkedOLEObject Then
                sh.LinkFormat.Update
            End If
        Next
    Next
End If
End Sub

j'ai bien mis cela dans le VBA du ppt ... mais cela n'a pas l'air de fonctionner.