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

J

joedu31

Guest
Bonjour,

J'ai un petit soucis, j'aimerai que lorsque je clique sur l'onglet "QUAND JE CLIQUE FEUILLE" dans le fichier ci joint, apparaisse un message d'erreur SI il y a plus de 6 fois le numéro de poste.

Code:
Worksheet_Deactivate()

Ici dans l'exemple, il devrait apparaitre avec la station numéro 6.

" Vous avez rentré un nombre supérieur d'étapes associé pour une même station. Le nombre limite pour chaque station est de 6."



Merci à vous,
Joe
 

Pièces jointes

Re : Macro check

Bonjour Joe, bonjour le forum,

Peut-être comme ça :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim L As Worksheet 'déclare la variable L (onglet Liste)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim D As Object 'déclare la variable D (Dictionnaire)
Dim I As Integer 'déclare la variable I (Incrément)
Dim TT As Variant 'déclare la variable TT (Tableau Temporaire)

Set L = Sheets("LISTE") 'définit l'onglet L
If Sh.Name = "QUAND JE CLIQUE FEUILLE" Then 'condition : si l'onglet actié se nomme "QUAND JE CLIQUE FEUILLE"
    TV = L.Range("C5").CurrentRegion ' définit le tableau des valeurs TV
    Set D = CreateObject("Scripting.dictionary") 'définit le dictionnaire D
    For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
        D(TV(I, 1)) = "" 'alimente le dictionnaire TV avec les données de la colonne 1 du tableau des valeurs  TV
    Next I 'prochaine ligne de la boucle
    TT = D.Keys 'récupère dans le tableau temporaire TT la liste des éléments de D sans doublon
    For I = 0 To UBound(TT) 'boucle sur tous les éléments du tableau temporaire TT
        'si le nomre de fois que l'élément apparait dans la colonne C de l'onglet L est supérieur à 6, message
        If Application.WorksheetFunction.CountIf(L.Columns(3), TT(I)) > 6 Then _
           MsgBox " Vous avez rentré un nombre supérieur d'étapes associé pour la station " & Chr(34) & TT(I) & Chr(34) & ". Le nombre limite pour chaque station est de 6."
    Next I 'prochain élément de la boucle
End If 'fin de la condition
End Sub

[Édition]
Bonjour Lolote, nos posts se sont croisés...
 
Re : Macro check

Merci à vous deux pour vos réponses 🙂

J'ai essayé ta méthode Robert, mais aucune réaction de la feuille... 😕


[Edit]

Vous trois***, je viens de voir ton message en actualisant la page DoubleZero 😛
Merci à vous 🙂
 
- 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
2
Affichages
625
Réponses
10
Affichages
973
Réponses
0
Affichages
503
K
Réponses
12
Affichages
2 K
F
  • Résolu(e)
Microsoft 365 Macro VBA
Réponses
16
Affichages
3 K
Fofi1
F
B
Réponses
4
Affichages
2 K
benoitoleron
B
I
Réponses
2
Affichages
2 K
I
M
  • Question Question
Réponses
3
Affichages
1 K
M
B
Réponses
5
Affichages
972
Benjy51190
B
Retour