Diaporama, défilement de photographies sur une feuille

  • Initiateur de la discussion Initiateur de la discussion CISCO
  • 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 !

CISCO

XLDnaute Barbatruc
Bonsoir à tous

En m'aidant des propositions de J. Boisgontier sur son site, j'ai essayé de faire un petit diaporama faisant défiler des photos allant de DSC_0101 à DSC_0104 prises dans le dossier "à peindre2".

Voila macro
Code:
Dim p As Integer, pas As Integer, temps As Date, fichier as String, répertoirePhoto As String
-----------
Sub Début()
  répertoirePhoto = "C:\Users\à peindre2\" ' A adapter à chaque cas
  fichier = "DSC_0" 'A Adapter à chaque cas
  pas = 10
  majHeure
End Sub
----------
Sub majHeure()
  For p = 1 To 4
  Set img = ActiveSheet.Pictures.Insert(répertoirePhoto & fichier & 100 + p & ".jpg")
  Application.Wait (Now + pas)
  Next
End Sub
----------
Sub auto_close()
 On Error Resume Next
 Application.OnTime temps, Procedure:="majHeure", Schedule:=False
End Sub

Cela fonctionne, mais plus je fais des tests, plus cela rame. Les deux, trois premières fois, c'est OK, mais après, c'est long, c'est long... Si je copies le code et le mets dans un autre fichier, cela fonction correctement au début, puis cela rame de nouveau...

Est-ce que vous auriez une explication, une ou des améliorations à me proposer...

@ plus

P.S : Si vous voulez tester le fichier en pièce jointe, il faut modifier le chemin d'accès et le nom du fichier.
 

Pièces jointes

Re : Diaporama, défilement de photographies sur une feuille

Bonsoir CISCO,

Les Pictures pèsent lourd et s'accumulent les unes sur les autres.

En les supprimant avant chaque diaporama (ou à la fin) cela devrait aller mieux :

Code:
Sub majHeure()
  ActiveSheet.DrawingObjects.Delete
  For p = 1 To 4
  Set img = ActiveSheet.Pictures.Insert(répertoirePhoto & fichier & 100 + p & ".jpg")
  Application.Wait (Now + pas)
  Next
End Sub
A+
 
Re : Diaporama, défilement de photographies sur une feuille

Bonsoir CISCO, job

je me souvenait de la macro, mais comme Jacques j'avais créé un formulaire avec 14 images sans numérotation.

Peut-être que ça pourras t'aider.


Code:
Public temps, répertoire, NomPhoto

Sub majHeure()
 UserForm1.Image1.Picture = LoadPicture(répertoire & "\" & NomPhoto)
 NomPhoto = Dir
 If NomPhoto = "" Then NomPhoto = Dir(répertoire & "\" & "*.jpg")
 temps = Now + TimeValue("00:00:6")
 Application.OnTime temps, "majHeure"
End Sub

Sub auto_close()
 On Error Resume Next
 Application.OnTime temps, Procedure:="majHeure", Schedule:=False
End Sub

Sub horloge()
Application.OnTime Now + TimeValue("01:00:00"), "Arret"
End Sub

Sub Arret()
auto_close
Unload UserForm1
Application.DisplayAlerts = False
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  auto_close
End Sub

Private Sub UserForm_Terminate()
Run ("Arret")
End Sub

Peut-être avec un contrôle image ou WebBrowser ça passerait mieux, c'est juste une opinion.




A+ 😎
 
Dernière édition:
Re : Diaporama, défilement de photographies sur une feuille

Bonsoir CISCO, job


Et voilà, chez moi pas de souci d'attente, à tester. Dans la macro post #3, comme je n'avais pas regardé le fichier comme il faut, je n'avais pa vu qu'il fallait initialiser les variables, voir la PJ.



A+ 😎
 

Pièces jointes

Dernière édition:
Re : Diaporama, défilement de photographies sur une feuille

salut

Avec peu d'images , on peut les transférer directement dans le classeur* à partir d'un contrôle ImageList dans un formulaire (macro légère).

Code:
Private Sub UserForm_Activate()
 Dim n As Byte, temp As Date
  For n = 1 To 4
    Me.Caption = "photo " & n
    Image1.Picture = ImageList1.ListImages(n).Picture
    temp = Timer
    Do: DoEvents:: Loop While Timer < temp + 2
  Next
  End
End Sub

* portabilté accrue : plus besoin de les rechercher sur le disque (surtout si elles ont été supprimées)
 

Pièces jointes

Re : Diaporama, défilement de photographies sur une feuille

re
Bonjour le fil,
Curieux que ni Lone-wolf ni Si... ne répondent au problème posé :
Moi j'ai répondu ou essayé de répondre 🙄
A+

Job, on sait que tu es le meilleur malheureusement les codes coincent chez moi ! 😡

De plus, avec ton instruction supplémentaire, tous les contrôles de la feuille sont supprimés. Il y en a peut-être d'autres utiles, non ? Je pense, aussi qu’elle est mal placée !

Pour avoir un résultat correct à partir les codes fournis j’y arrive, chez moi, avec seulement cela
Code:
Sub Début()
  répertoirePhoto = "…\" 'A Adapter à chaque cas
  fichier = "…" ' A Adapter à chaque cas
  For p = 0 To 3
  ActiveSheet.DrawingObjects.Delete 'plus efficace ici
  Set img = ActiveSheet.Pictures.Insert(répertoirePhoto & fichier & p & ".jpg")
   temp = Timer :  Do: DoEvents: Loop While Timer < temp + 2 'chercher l'erreur ...
  Next
End Sub

C'est quand même gros de voir un tel message quand on veut proposer des solutions peut-être préférables à celles testées au départ ! 😡
 
Re : Diaporama, défilement de photographies sur une feuille

Re job,

Non, mon dernier fichier est fait sur la feuille. 😉


@Cisco: tu veux bien ajouter la version d'Excel que tu utilise, ainsi les autres s'adaptent. 😉
Et Si... aussi please 😉




A+ 😎
 
Dernière édition:
Re : Diaporama, défilement de photographies sur une feuille

De plus, avec ton instruction supplémentaire, tous les contrôles de la feuille sont supprimés. Il y en a peut-être d'autres utiles, non ?

J'ai de bonnes lunettes et j'avais vu que dans le fichier du post #1 CISCO n'a pas mis de boutons ou autres contrôles.

Maintenant s'il veut en mettre, il faudra faire une boucle vérifiant que l'objet est une "picture" pour le supprimer.

A+
 
Re : Diaporama, défilement de photographies sur une feuille

Bonjour à tous

Vous disputez pas, les copains... Je n'ai pas d'autres boutons sur la feuille en question, donc...

J'essaye de comprendre vos diverses propositions.

@ plus
 
- 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

Discussions similaires

Réponses
4
Affichages
688
Retour