XL 2019 soucis avec un code VBA pour les doublons

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

chinel

XLDnaute Impliqué
Bonjour tout le monde, j'ai mon code et j'ai déniché un autre code (en vert) que je désire intégrer dans le mien mais cela ne fonctionne pas, besoin d'aide merci

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

if Intersect(Target, [B:B,G:G]) Is Nothing Then Exit Sub
Application.EnableEvents = False 'désactive les évènements
if Target.Count > 1 Then Application.Undo: GoTo 1 'annule les entrées ou effacements multiples
if Target = "" Or (Application.CountIf([B:B], Target) + Application.CountIf([G:G], Target)) = 1 Then GoTo 1
Target.Select
MsgBox "Cette personne est déjà affectée à une autre machine !", 48, "Doublon"
Target = ""
1 Application.EnableEvents = True 'réactive les évènements






If Range("A8") = "à l'arrêt" Then Range("B8,B10:B15,C8,C10:C15") = ""
If Range("A10") = "à l'arrêt" Then Range("B10") = ""
If Range("A11") = "à l'arrêt" Then Range("B11") = ""
If Range("A12") = "à l'arrêt" Then Range("B10:B15") = ""
If Range("A13") = "à l'arrêt" Then Range("B13") = ""
If Range("A14") = "à l'arrêt" Then Range("B14") = ""
If Range("A15") = "à l'arrêt" Then Range("B15") = ""

If Range("F8") = "à l'arrêt" Then Range("G8,G10:G15,h8,h10:h15") = ""
If Range("F10") = "à l'arrêt" Then Range("G10:G12") = ""
If Range("F11") = "à l'arrêt" Then Range("G11") = ""
If Range("F12") = "à l'arrêt" Then Range("G12") = ""
If Range("F13") = "à l'arrêt" Then Range("G13") = ""
If Range("F14") = "à l'arrêt" Then Range("G14") = ""
If Range("F15") = "à l'arrêt" Then Range("G15") = ""

If Range("A17") = "à l'arrêt" Then Range("B17,B19:B22,c17:c22") = ""
If Range("a19") = "à l'arrêt" Then Range("b19") = ""
If Range("a20") = "à l'arrêt" Then Range("b20") = ""
If Range("a21") = "à l'arrêt" Then Range("b21") = ""
If Range("a22") = "à l'arrêt" Then Range("b22") = ""

If Range("F17") = "à l'arrêt" Then Range("G17,G19:G23,h17,h19:h23") = ""
If Range("F19") = "à l'arrêt" Then Range("G19") = ""
If Range("F20") = "à l'arrêt" Then Range("G20") = ""
If Range("F21") = "à l'arrêt" Then Range("g21") = ""
If Range("F22") = "à l'arrêt" Then Range("g22") = ""
If Range("F23") = "à l'arrêt" Then Range("g23") = ""





If Range("A25") = "à l'arrêt" Then Range("B25,c25") = ""
If Range("A26") = "à l'arrêt" Then Range("B26,c26") = ""
If Range("A27") = "à l'arrêt" Then Range("B27,c27") = ""
If Range("A28") = "à l'arrêt" Then Range("B28,c28") = ""
If Range("A29") = "à l'arrêt" Then Range("B29,c29") = ""


Application.EnableEvents = True
End Sub
 
Bonjour,
En effet,tel que tu as recopié le code, il aurait dû planté. Car il y a GoTo 1 qui est une étiquette qui devrait être plus bas dans le code suivi de ':' ) deux points. C'est à dire 1:
Avec les étiquettes numériques les 2 points ne sont pas nécessaires :
VB:
Sub Test1()
GoTo 1
Exit Sub
1 MsgBox "Sans 2 points"
End Sub
Par contre :
VB:
Sub Test2()
GoTo fin
Exit Sub
fin: MsgBox "Avec 2 points"
End Sub
A+
 
Bonjour,

Avec les étiquettes numériques les 2 points ne sont pas nécessaires :
VB:
Sub Test1()
GoTo 1
Exit Sub
1 MsgBox "Sans 2 points"
End Sub
Par contre :
VB:
Sub Test2()
GoTo fin
Exit Sub
fin: MsgBox "Avec 2 points"
End Sub
A+
Bonjour @job75 😉 ,

Tous mes remerciements et toute ma gratitude pour ton gracieux partage. Grâce aux anciens(nes) j'ai beaucoup appris. Tu viens encore de m'apprendre une chose que je ne connaissais pas.
Je suis autodidacte, depuis mon inscription sur XLD, en toute modestie, j'ai bien progressé.

Bonne fin de journée.
 
@chinel : Comme je te l'ai déjà dit, si tu utilises un autre fichier que le mien et que tu n'expliques pas la ou les manipulations que tu fais. Il m'est impossible de t'aider. Car je dois reproduire, ce que tu as fait et suivre le fonctionnement du code.
C'est ce que tu devrais faire, exécution du code pas à pas en utilisant la touche F8.

edit: joint ton fichier réel
 

Pièces jointes

Ton fichier cause toujours problème. Malgré cela, j'ai pris le risque de l'ouvrir. Cependant, il me semble que sur la feuille "planning" il y avait des listes de validation qui n'existent plus sur le fichier joint réparé par Excel.
1673285003764.png
 
- 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

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
498
Réponses
32
Affichages
1 K
Réponses
25
Affichages
1 K
Réponses
2
Affichages
373
Réponses
3
Affichages
454
Réponses
3
Affichages
595
Retour