probleme avec option explicit?

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 !

jojo2006

XLDnaute Occasionnel
bonjour à tous,
voila je ne comprend pas l'option explicit pour la déclaration de variable.
Le code ci dessous marche très bien (seul) mais lorsque je l'introduit dans mon projet, Excel plante à la première variable qu'il rencontre. pourquoi?
je n'ai pas très saisie (meme pas du tout) le sens de l'option explicit

merci à vous de m'éclairer



Option Explicit
Dim tablo()
Dim chemin As String

Private Sub ScrollBar1_Change()
Image1.Picture = LoadPicture(chemin & tablo(ScrollBar1))
End Sub
Private Sub UserForm_Initialize()
Dim X As Integer
Dim repertoire As String

chemin = "C:\photos\"
repertoire = Dir(chemin & "*.jpg") 'adapter le chemin

Do While Len(repertoire) > 0
X = X + 1
ReDim Preserve tablo(1 To X)
tablo(X) = repertoire
repertoire = Dir()
Loop

With ScrollBar1
.Max = UBound(tablo)
.Min = 1
.Value = 1
End With

Image1.Picture = LoadPicture(chemin & tablo(ScrollBar1))
End Sub
 
Re : probleme avec option explicit?

bonjour

ta procédure fonctionne parfaitement chez moi ( à condition bien sur qu'il y a des image .jpg dans le repertoire)


Quel est le message d'erreur ?



Option Explicit :
cette instruction, permet d'identifier toute variable non définie, ou mal orthographiée.
Il est conseillé d'avoir une majuscule dans la variable déclarée : Ensuite lors de la saisie de la variable dans la macro , celle-ci reprendra automatiquement la majuscule : cela permet de vérifier les fautes d'orthographe éventuelles .


Pour qu'Option Explicit s'insère automatiquement dans chaque nouveau classeur :
Aller dans visual Basic Editor
Menu Outils
Options
Dans l'onglet Editeur , cocher l'option "Déclaration Explicite des variables"




bonne journée
Ce lien n'existe plus
 
Re : probleme avec option explicit?

merci michel pour ta réponse

la procédure fonctionne très bien seule mais lorque et uniqement lorsque je l'insère dans un autre projet ca plante. ca s'arrete à la premiere variable qu'Excel rencontre.

Au passage:

comment faire pour éviter une erreur si le repertoire ne contient d'image?

merci à toi
 
Re : probleme avec option explicit?

rebonjour

pour gérer les repertoires sans image

Code:
If X = 0 Then
    ScrollBar1.Enabled = False
Else
    With ScrollBar1
        .Max = UBound(tablo)
        .Min = 1
        .Value = 1
    End With

    Image1.Picture = LoadPicture(chemin & tablo(ScrollBar1))
End If



par contre tu n'as toujours pas indiqué le message d'erreur qui s'affiche



bon apres midi
Ce lien n'existe plus
 
Re : probleme avec option explicit?

Merci pour le cas ou le repertoire ne contient pas d'image (X=0 hé oui!!)

sinon mon erreur: erreur de compilation variable non définie.

en fait dans une procédure de mon projet j'utilise un I comme variable (pour un numero de ligne) je ne l'avais pas déclaré.


si j'ai bien compris lorsque qu'on utilise l'option explicit on ai obligé de déclarer toutes les varaiables suivantes sinon ca plante??

sinon la solution serait de créer le code suivant sans utiliser l'option explicit j'ai essayé rien ne veut fonctionner meme en créant au départ les variables (public lien as string public tablo as variant) Avez vous une Idée??


Option Explicit
Dim tablo()
Dim chemin As String
Private Sub ScrollBar1_Change()
Image1.Picture = LoadPicture(chemin & tablo(ScrollBar1))
End Sub
Private Sub UserForm_Initialize()
Dim X As Integer
Dim repertoire As String

chemin = "C:\photos\"
repertoire = Dir(chemin & "*.jpg") 'adapter le chemin

Do While Len(repertoire) > 0
X = X + 1
ReDim Preserve tablo(1 To X)
tablo(X) = repertoire
repertoire = Dir()
Loop

If X = 0 Then
ScrollBar1.Enabled = False
Else


With ScrollBar1
.Max = UBound(tablo)
.Min = 1
.Value = 1
End With

Image1.Picture = LoadPicture(chemin & tablo(ScrollBar1))
end if
End Sub
 
Re : probleme avec option explicit?

rebonjour

si j'ai bien compris lorsque qu'on utilise l'option explicit on ai obligé de déclarer
toutes les varaiables suivantes sinon ca plante??

oui c'est cela.


sinon , je suis désolé mais je ne comprends pas ta dernière question. pourquoi tu ne veux pas utiliser Option Explicit ?


bonne soiree
Ce lien n'existe 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
3
Affichages
916
  • Question Question
Réponses
7
Affichages
487
Réponses
2
Affichages
585
  • Question Question
Microsoft 365 VBA insert photos
Réponses
12
Affichages
1 K
Réponses
15
Affichages
728
Réponses
5
Affichages
680
Retour