Image suivante/précédente

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

T

Tial

Guest
Bonjour à toutes et tous.

Je rencontre les problèmes suivant :

J'ai deux boutons pour afficher : image précédente et image suivante (voir code ci dessous).

Ces images sont dans un répertoire et nommées 000.JPG, 001.JPG,002.JPG......ainsi de suite.

1)Quand je suis à la dernière image affichée de mon répertoire.....Si je valide image suivante.....

2)Quand je suis à la première image affichée de mon répertoire.....Si je valide image précédente.....

J'ai ce message d'erreur (dans les deux cas):

Erreur d'exécution'-2147024809 (80070057)':
Le fichier spécifié est introuvable.


Serait il possible de mettre un message genre :
1) La dernière image est déja affichée.
2) La première image est déja affichée.
Pour ne plus avoir cette vilaine erreur d'exécution.

Par avance merci à vous.
Tial




Sub SpinButtonChange()
'On Error Resume Next
Dim strImage As String
SpinButtonMax
If SpinButton2.Max < 0 Then
MsgBox 'Pas de photo dans le répertoire !', vbCritical + vbOKOnly
SpinButton2.Value = 0
Else

Do
strImage = String(3 - Len(CStr(SpinButton2.Value)), '0') & SpinButton2.Value & '.JPG'
If strImage = Range('S3').Value Then
SpinButton2.Value = Switch(SpinButton2.Value = SpinButton2.Max, 0, SpinButton2.Value = 0, SpinButton2.Max)
Else
Exit Do
End If
Loop
Feuil1.Shapes('Rectangle 1827').Fill.UserPicture strChemin & strImage
Range('S3').Select
DeProtege
Range('S3').Value = strImage
Protege
End If
End Sub
 
Hello le Forum, Tial,

Plutôt que d’afficher un msgbox qui te dis « dernière image » ou « première image » blablabla, je te propose une solution plus « pro »

Tu fais un test sur ton spinbouton du genre :

if SpinButton.value = SpinButton2.Max then
SpinButton.value = SpinButton.Min

Et tu affiches le première image. Tu fais pareil pour la première, tu affiches la dernière.

Voilà mon idée

@+

Creepy
 
Salut Creepy

Je ne peut malheureusement joindre de fichier (taille trop importante).
En effet cette fonction fait partie d'une grosse appli.

J'ai évolué un peu, voila ou j'en suis.
Je joint également tout le code pour cette fonction.


Donc, j'ai un bouton 'image précédente' et un bouton 'image suivante'.
De plus, je récupère le nom de l'image en 'S3'.


Niveau problème, j'en suis la:
Tout fonctionne foctionne jusqu'à l'affichage de la dernière image de mon répertoire (dans ce cas, 012.jpg).

Quand j'arrive à la dernière image (012.jpg) et que je clic sur image
suivante j'ai :

Affichage = 012.jpg
'S3' = 013.jpg

et ainsi de suite jusqu'à :

Affichage = 012.jpg
'S3' = 023.jpg

Et la, quelque soit le nombre de clics supplémentaires sur image suivante,
je reste à :

Affichage = 012.jpg
'S3' = 023.jpg

Y' a un truc qui m'échappe.....


Mon code :

Sub SpinButtonMax()
'c'est lui qui dit nombre d'image.
On Error Resume Next
With Application.FileSearch
.NewSearch
.SearchSubFolders = True
.LookIn = 'c:\\MM\\'
.FileName = '0??.JPG'
.Execute
SpinButton2.Max = .FoundFiles.Count - 1
End With
End Sub


Sub SpinButtonChange()
On Error Resume Next
Dim strImage As String
If SpinButton2.Value > SpinButton2.Max Then
SpinButton2.Value = 0
Else
If SpinButton2.Value <= -1 Then
SpinButton2.Value = SpinButton2.Max
End If
End If
strImage = String(3 - Len(CStr(SpinButton2.Value)), '0') & SpinButton2.Value & '.JPG'
Feuil1.Shapes('Rectangle 1827').Fill.UserPicture strChemin & strImage
Range('S3').Select
DeProtege
Range('S3').Value = strImage
Protege
End Sub

Private Sub SpinButton2_SpinDown()
SpinButtonChange
End Sub

Private Sub SpinButton2_SpinUp()
SpinButtonChange
End Sub

Martial
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
39
Affichages
6 K
J
Réponses
0
Affichages
812
JohnRambo
J
N
Réponses
5
Affichages
3 K
Nicocotte125
N
M
Réponses
0
Affichages
642
Morrowind
M
Retour