Mise à jour liaisons powerpoint/excel : mettre les fenetres excel en arrière plan

choup67

XLDnaute Occasionnel
Bonjour à tous,

J'ai un powerpoint qui comporte des liaisons vers cellules excel (copiées par "collage spécial/liaisons")

Ces liaisons se mettent à jour via une macro (je ne maitrise pas du tout vba, j'ai réussi à la construire en explorant les forums) en fonction du numéro de diapositive et de l'heure actuelle, le tout pendant la diffusion du diaporama.

Jusque là, tout fonctionne. Le hic, c'est que lors des mises à jour, les fichiers excel s'ouvrent en premier plan. Quand la mise à jour est fini, les fichiers sont refermés mais il reste une fenêtre excel vide en premier plan, ce qui empêche le diaporama de se poursuivre.

Voici mon code :
Code:
Private Sub oApp_SlideShowNextSlide(ByVal Wn As SlideShowWindow)
Dim Forme As Shape
Dim sld As Slide
Dim heure As Integer
Dim Min As Integer
Dim SlideNum As Integer
Dim appXL As Excel.Application


SlideNum = ActivePresentation.SlideShowWindow.View.Slide.SlideIndex
heure = Hour(Time)
Min = Minute(Time)

If SlideNum = 22 And heure = 8 And Min <= 30 Then
For Each sld In ActivePresentation.Slides
For Each Forme In sld.Shapes
If Forme.Type = msoLinkedOLEObject Then
Forme.LinkFormat.Update
appXL.Visible = False
End If
Next
Next
End If
End Sub

Auriez vous une idée?

Merci
 

choup67

XLDnaute Occasionnel
Re : Mise à jour liaisons powerpoint/excel : mettre les fenetres excel en arrière pla

J'ai trouvé la solution.

Autre question, le lancement se fait à heure précise, comment est ce que je peux dire à la macro de se lancer toutes les X minutes?

Merci.

Voici mon code
Code:
Private Sub oApp_SlideShowNextSlide(ByVal Wn As SlideShowWindow)
Dim Forme As Shape
Dim sld As Slide
Dim heure As Integer
Dim Min As Integer
Dim SlideNum As Integer

SlideNum = ActivePresentation.SlideShowWindow.View.Slide.SlideIndex
heure = Hour(Time)
Min = Minute(Time)

If SlideNum = 22 And heure = 9 And Min <= 59 Then
For Each sld In ActivePresentation.Slides
For Each Forme In sld.Shapes
If Forme.Type = msoLinkedOLEObject Then
Forme.LinkFormat.Update
With Excel.Application
.ScreenUpdating = False
End With
End If
Next
Next
End If
End Sub
 

Statistiques des forums

Discussions
312 215
Messages
2 086 321
Membres
103 178
dernier inscrit
BERSEB50