Se connecter avec
S'enregistrer | Connectez-vous

Effacer une image

Dernière réponse : dans Programmation

Bonjour a toutes et tous, forum bonjour

Dans la suite de mon programme, je rencontre un souci auquel je n’ai pas la solution.

Je m’explique :

Dans la colonne (A) j’ai une liste de films, quand je clic sur un nom de film, je lance Windows Média Player pour visualiser celui-ci et dans la foulée l’image correspondante au film s’affiche.

Quand je n’ai pas l’image du film, j’en affiche une autre par défaut toujours la même (Liberty.jpg)
Quand je clic sur WMP pour l’arrêter un message qui dit que WMP est a l’arrêt, je clic de nouveau et l’image s’efface, enfin presque d’où le souci.

En fait seule l’image (afficher par défaut s’efface) et en (aucun cas celle qui correspond au film) ne veut pas s’effacer.

Alors que bien sur dans les deux cas il faudrait de toutes manières effacer l’image par défaut OU celle correspondante au film.

Je joins le code qui permets de faire fonctionner ca et S’il vous plait de regarder mon code afin d’y déceler une erreur.

Par avance je vous remercie de corriger.

Bon 14 Juillet a vous et encore merci a vous et de votre temps.

Raymond

  1. '*** LANCE UN FILM SUR DOUBLE CLIC DANS LA LISTE COLONNE A
  2. Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  3. Dim Chemin As String: Dim Fichier As String: Dim Shp As Shape: Dim Retval As Long: Dim ID As Variant
  4. Application.ScreenUpdating = False
  5.  
  6. If Not Intersect(Target, Range("A2:A" & [A3000].End(xlUp).Row)) Is Nothing Then
  7. Cancel = True
  8. Chemin = "E:\Videos\"
  9. Fichier = "E:\Affiche\" & Target.Value & ".jpg"
  10. End If
  11.  
  12. '*** APPEL DU FILM CHOISI DANS LA COLONNE A
  13. ID = Shell("""C:\Program Files\Windows Media Player\wmplayer.exe"" """ & Chemin & Target & ".avi", vbMaximizedFocus)
  14. Retval = ExecCmd("Wmplayer.exe")
  15.  
  16. '*** APPEL DE L'IMAGE CORRESPONDANT AU FILM L T W H
  17. On Error Resume Next
  18. Set Shp = Feuil1.Shapes.AddPicture(Fichier, msoFalse, msoCTrue, 945, 196, 194, 240)
  19. On Error GoTo 0
  20. Fichier = IIf(Shp Is Nothing, "E:\Affiche\Liberty.jpg", Fichier)
  21. Set Shp = Feuil1.Shapes.AddPicture(Fichier, msoFalse, msoCTrue, 945, 196, 194, 240)
  22. Shp.Name = Fichier
  23.  
  24. Application.ScreenUpdating = True
  25. '*** ARRET DU LECTEUR ET EFFACE L'AFFICHE
  26. If Retval = -1 Then MsgBox "Windows média player est arrêter."
  27. Shp.Delete
  28. End Sub

Autres pages sur : effacer image

Lassé par la pub ? Créez un compte
Expert Programmation

Ce code n'est pas très beau, mais devrait fonctionner :( 

Mais qu'est ce que vous avez tous avec ces On Error d'un autre âge :pfff: 
Avant d'utiliser un fichier, on vérifie qu'il existe !

  1. ' // On Error Resume Next
  2. ' // Set Shp = Feuil1.Shapes.AddPicture(Fichier, msoFalse, msoCTrue, 945, 196, 194, 240)
  3. ' // On Error GoTo 0
  4. ' // Fichier = IIf(Shp Is Nothing, "E:\Affiche\Liberty.jpg", Fichier)
  5. If Not FileExists(Fichier) Then Fichier = "E:\Affiche\Liberty.jpg"
  6.  
  7. Set Shp = Feuil1.Shapes.AddPicture(Fichier, msoFalse, msoCTrue, 945, 196, 194, 240)
  8. Shp.Name = Fichier


Je propose une version de FileExists ici : http://www.presence-pc.com/forum/ppc/Programmation/tuto...

zeb a dit :
Ce code n'est pas très beau, mais devrait fonctionner :( 

Mais qu'est ce que vous avez tous avec ces On Error d'un autre âge :pfff: 
Avant d'utiliser un fichier, on vérifie qu'il existe !

  1. ' // On Error Resume Next
  2. ' // Set Shp = Feuil1.Shapes.AddPicture(Fichier, msoFalse, msoCTrue, 945, 196, 194, 240)
  3. ' // On Error GoTo 0
  4. ' // Fichier = IIf(Shp Is Nothing, "E:\Affiche\Liberty.jpg", Fichier)
  5. If Not FileExists(Fichier) Then Fichier = "E:\Affiche\Liberty.jpg"
  6.  
  7. Set Shp = Feuil1.Shapes.AddPicture(Fichier, msoFalse, msoCTrue, 945, 196, 194, 240)
  8. Shp.Name = Fichier


Je propose une version de FileExists ici : http://www.presence-pc.com/forum/ppc/Programmation/tuto...


Salut Zed, forum

Merci pour ta réponse, j'ai essayer ton code mais ca bug ici ''' FileExists(Fichier) ''' en me générant une erreur de compilation sub ou fonction non définie

Ou bien je me suis planter en faisant la modification code ci-joint que j'ai modifier selon tes conseils

  1. '*** LANCE UN FILM SUR DOUBLE CLIC DANS LA LISTE COLONNE A
  2. Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  3. Dim Chemin As String: Dim Fichier As String: Dim Shp As Shape: Dim Retval As Long: Dim ID As Variant
  4. Application.ScreenUpdating = False
  5.  
  6. If Not Intersect(Target, Range("A2:A" & [A3000].End(xlUp).Row)) Is Nothing Then
  7. Cancel = True
  8. Chemin = "E:\Videos\"
  9. Fichier = "E:\Affiche\" & Target.Value & ".jpg"
  10. End If
  11.  
  12. '*** APPEL DU FILM CHOISI DANS LA COLONNE A
  13. ID = Shell("""C:\Program Files\Windows Media Player\wmplayer.exe"" """ & Chemin & Target & ".avi", vbMaximizedFocus)
  14. Retval = ExecCmd("Wmplayer.exe")
  15.  
  16. '*** APPEL DE L'IMAGE CORRESPONDANT AU FILM L T W H
  17. If Not FileExists(Fichier) Then Fichier = "E:\Affiche\Liberty.jpg" '>>>>>>>>>>>>>>>>>>>> c'est ici l'erreur
  18. Set Shp = Feuil1.Shapes.AddPicture(Fichier, msoFalse, msoCTrue, 945, 196, 194, 240)
  19. Shp.Name = Fichier
  20.  
  21. Application.ScreenUpdating = True
  22. '*** ARRET DU LECTEUR ET EFFACE L'AFFICHE
  23. If Retval = -1 Then MsgBox "Windows média player est arrêter."
  24. Shp.Name = Fichier
  25. End Sub


Merci c'est sympa a toi

bonne après midi

Raymond



Expert Programmation

zeb a dit :
Avant d'utiliser un fichier, on vérifie qu'il existe !
C'est quoi ces vérifications d'un autre âge ?

Ton fichier existe peut être, mais c'est pas pour autant que tu a le droit de le lire ou qu'il n'est pas verrouillé. Et inutile d'essayer de commencer par tester si le fichier peut être lu, puisqu'aujourd'hui à l'heure du mélange des genres question lecteurs réseaux, entre le sharepoint/samba/cifs avec des ACL à la mord-moi-le-noeud, ça en deviens un bordel monstre à tel point que la réponse à la question "est ce que j'ai le droit d'ouvrir le fichier" peut être complètement bidon.

La solution c'est de chercher à lire le fichier et à gérer l'erreur. On peut pas faire autrement. Après, peut être qu'on peut gérer l'erreur sans utiliser On Error, mais là j'en sais rien.

Forum un peu bizarre et pas courtois

c'est plutot du style règlement

auriez vous oubliez qu'un jour on a tous appris a marcher

je croyais que le but d'un forum était d'un bénévola pour aider

les autres et non pas pour les crucifiés
Expert Programmation

Salut Ray,

Les conseils que je dispense sur ce forum sont avisés. Et ceux de Batchy le sont aussi.

Or, aucun de nous deux ne détient la vérité absolue, et nous apportons indépendamment notre avis. Parfois nous ne sommes pas d'accord, et nous en débattons, en nous justifiant, en nous expliquant. Jamais je ne manquerai de courtoisie envers un membre de ce forum sous prétexte que je ne suis pas du même avis que lui, et j'ajoute même qu'en tant que modérateur, je tente de faire respecter cet état d'esprit.

Par ailleurs, si tu ne lis pas de salutations entre batchy et moi sur ton sujet, ne pense pas que nous ne nous respectons pas. Au contraire. Nous nous sommes sans doute déjà échangé des politesses plus tôt dans un autre sujet, puisque nous sommes de gros contributeurs, souvent d'accord, en plus ;) 
Lassé par la pub ? Créez un compte