Problème sur le code VBA

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 !

Koky Dramé

XLDnaute Nouveau
Bonjour, j'aurais besoin de votre aide sur mon code VBA. Quand je clique sur le bouton que j'ai créé et affecté une macro pour vérifier mon code , on me signale une erreur. L'image de la boîte de dialogue qui décèle l'erreur et celle de mon code VBA sont ci-jointes.
Merci d'avance.
 

Pièces jointes

  • 123.PNG
    123.PNG
    4 KB · Affichages: 50
  • Code.PNG
    Code.PNG
    53 KB · Affichages: 47
An OK, je vois....Quand j'enregistrais le fichier, il y avait Classeur en macro or l'un enregistrait le fichier sous format xltm et je le choisissais sans le savoir, du coup je ne pouvais pas joindre un fichier de cette extension, désolé. Voici le nouveau (enfin le même avec un format xlsm).
 

Pièces jointes

Essaie ceci

VB:
Sub Macro01()
Dim StocksT01 As Range
For Each Valeur In ActiveSheet.Range("StocksT_01")
    If Valeur > 50 And Valeur < 100 Then
        MsgBox "Niveau de stock de" & Valeur & "Tigo moyen.", vbInformation, "Niveau de stock faible"
    End If
    If Valeur < 50 Then
        MsgBox "La référence: " & Valeur.Offset(0, -3) & " doit être commandée.", vbCritical, "Quantité en stock insuffisante"
    End If
Next Valeur
End Sub
 
Merci beaucoup vgendron, ça a marché à merveille. J'aurai juste deux ou trois questions à propos...
Pourquoi vous n'avez pass eu besoin de cette ligne (Valeur = Cells(StocksT_01.Row, 1)) dans votre code?
Pourquoi "Valeur" après Next?
Pourquoi le mien ne marchait, quelle étai(en)t m(es)on erreur?
Merci encore un fois
 
For each Valeur in range
Valeur.. c'est déjà la valeur.. et pas l'adresse;; donc pas besoin des "Cells(StocksT_01.Row, 1)) "

next valeur.. c'est une question de syntaxe... ce n'est pas obligatoire.. mais quand il y a plusieurs "for" imbriqués sans indentation.. c'est plus pratique pour voir à quel moment la boucle est fermée..
tout comme
if condition then
action
else
end if

si tu ne fais rien dans le else..pas besoin de le mettre.. ca surcharge le code inutilement
d'ailleurs.. on pourrait meme écrire
if condition then action
mais la.. perso..j'aime pas...
juste une question de gout..
j'imagine qu'à un niveau supérieur de codage (avec optimisation d'execution), il vaut mieux limiter le nombre de lignes.. mais.. ca.. vu mon utilisation.. je n'en suis pas à ce niveau..
 
Bonsoir Koky Dramé, vgendron,
j'imagine qu'à un niveau supérieur de codage (avec optimisation d'execution), il vaut mieux limiter le nombre de lignes.. mais.. ca.. vu mon utilisation.. je n'en suis pas à ce niveau..
Chez moi ce code s'effectue en 1 seconde :
Code:
Sub a()
t = Timer
For i = 1 To 100000000
Next
MsgBox Timer - t
End Sub
J'ai ensuite inséré 1000 lignes vides dans la boucle For/Next : la durée reste exactement la même.

A+
 
For each Valeur in range
Valeur.. c'est déjà la valeur.. et pas l'adresse;; donc pas besoin des "Cells(StocksT_01.Row, 1)) "

next valeur.. c'est une question de syntaxe... ce n'est pas obligatoire.. mais quand il y a plusieurs "for" imbriqués sans indentation.. c'est plus pratique pour voir à quel moment la boucle est fermée..
tout comme
if condition then
action
else
end if

si tu ne fais rien dans le else..pas besoin de le mettre.. ca surcharge le code inutilement
d'ailleurs.. on pourrait meme écrire
if condition then action
mais la.. perso..j'aime pas...
juste une question de gout..
j'imagine qu'à un niveau supérieur de codage (avec optimisation d'execution), il vaut mieux limiter le nombre de lignes.. mais.. ca.. vu mon utilisation.. je n'en suis pas à ce niveau..
OK je vois, je suis débutant et je me rend compte que j'ai beaucoup d'astuces à mettre en tête.
Merci beaucoup encore une fois
 
- 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
155
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
796
Réponses
15
Affichages
360
Réponses
2
Affichages
51
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
84
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
643
  • Question Question
Réponses
7
Affichages
134
Retour