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

  • Initiateur de la discussion Initiateur de la discussion choup67
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour