Undo et Union Intersect
Résolu/Fermé
touroul
Messages postés
465
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
29 janvier 2024
-
Modifié le 18 nov. 2020 à 20:57
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 - 21 nov. 2020 à 21:42
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 - 21 nov. 2020 à 21:42
8 réponses
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 214
Modifié le 18 nov. 2020 à 21:42
Modifié le 18 nov. 2020 à 21:42
Bonjour,
Worksheet_Selection_Change est une invention de ton cru qui n'existe.
Sers-toi plutôt des listes déroulantes en haut pour choisir tes événements, ils seront corrects.
Et tu vas te faire jeter aussi sur
tu as mis Target dans l'union, et cherche donc à faire un Intersect avec rien...
eric
Worksheet_Selection_Change est une invention de ton cru qui n'existe.
Sers-toi plutôt des listes déroulantes en haut pour choisir tes événements, ils seront corrects.
Et tu vas te faire jeter aussi sur
If Not Intersect(Union(Range("A1:C6"), Range("E1:H6"), Range("D1:D4"), Target)) Is Nothing Then
tu as mis Target dans l'union, et cherche donc à faire un Intersect avec rien...
eric
touroul
Messages postés
465
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
29 janvier 2024
15
18 nov. 2020 à 22:13
18 nov. 2020 à 22:13
Bonsoir Eric
Merci pour ta réponse.
OK pour le Worksheet_SelectionChange .
J'ai supprimé le Target, mais mon code est toujours sans effet :
https://www.cjoint.com/c/JKsvmPLOq1d
Je ne comprends pas pourquoi.
Merci pour la suite :)
Merci pour ta réponse.
OK pour le Worksheet_SelectionChange .
J'ai supprimé le Target, mais mon code est toujours sans effet :
https://www.cjoint.com/c/JKsvmPLOq1d
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Union(Range("A1:C6"), Range("E1:H6")), Range("D1:D4")) Is Nothing Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End Sub
Je ne comprends pas pourquoi.
Merci pour la suite :)
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 214
Modifié le 18 nov. 2020 à 22:20
Modifié le 18 nov. 2020 à 22:20
Dis plutôt précisément ce que tu veux faire.
Ce n'est pas avec un code manifestement faux qu'on va deviner.
Parce que cet événement sans se servir de Target est pour le moins étrange...
eric
Ce n'est pas avec un code manifestement faux qu'on va deviner.
Parce que cet événement sans se servir de Target est pour le moins étrange...
eric
touroul
Messages postés
465
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
29 janvier 2024
15
18 nov. 2020 à 22:21
18 nov. 2020 à 22:21
OK.
Je pensais que c'était clair avec le fichier joint.
Simplement, je veux protéger avec UNDO la plage A1:H6, sauf les cellules fusionnées D5 et D6.
Merci !
Je pensais que c'était clair avec le fichier joint.
Simplement, je veux protéger avec UNDO la plage A1:H6, sauf les cellules fusionnées D5 et D6.
Merci !
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 214
Modifié le 18 nov. 2020 à 23:35
Modifié le 18 nov. 2020 à 23:35
mais ça peut être un collé sur tout A1:H6 ?
Car un Undo te nettoiera aussi D5:D6...
Ou bien ce sont juste des saisies dans des cellules individuelles ?
eric
Car un Undo te nettoiera aussi D5:D6...
Ou bien ce sont juste des saisies dans des cellules individuelles ?
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
touroul
Messages postés
465
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
29 janvier 2024
15
19 nov. 2020 à 06:02
19 nov. 2020 à 06:02
Bonjour Eric
Ah d'accord je comprends à présent pourquoi je t'ai embrouillé.
Oublie cette histoire de copier-coller.
Simplement je veux empêcher la saisie individuelle dans A1:H6, sauf les cellules fusionnées D5 et D6.
Merci par avance
Ah d'accord je comprends à présent pourquoi je t'ai embrouillé.
Oublie cette histoire de copier-coller.
Simplement je veux empêcher la saisie individuelle dans A1:H6, sauf les cellules fusionnées D5 et D6.
Merci par avance
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 214
19 nov. 2020 à 08:46
19 nov. 2020 à 08:46
Bonjour,
dans ce cas :
eric
dans ce cas :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union([A1:C6], [D1:C3], [E1:H6])) Is Nothing Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End Sub
eric
touroul
Messages postés
465
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
29 janvier 2024
15
19 nov. 2020 à 18:43
19 nov. 2020 à 18:43
Oui bravo Eric !
C'était bien ça !
Ma syntaxe était inexacte.
J'avais bien vu ces crochets sur le forum, mais dans des Range nommés, du coup je pensais que ça ne s'appliquait pas à mon cas.
Parfait.
Merci beaucoup pour ton aide !
C'était bien ça !
Ma syntaxe était inexacte.
J'avais bien vu ces crochets sur le forum, mais dans des Range nommés, du coup je pensais que ça ne s'appliquait pas à mon cas.
Parfait.
Merci beaucoup pour ton aide !
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 214
19 nov. 2020 à 23:43
19 nov. 2020 à 23:43
[A1:C6] est équivalent à Range("A1:C6"), mais il est préférable d'utiliser la seconde, celle que tu utilisais.
Ton erreur était autre, relis tranquillement
eric
Ton erreur était autre, relis tranquillement
eric
touroul
Messages postés
465
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
29 janvier 2024
15
21 nov. 2020 à 21:42
21 nov. 2020 à 21:42
Bonjour Eric
C'est vu.
Merci encore de m'avoir permis de progresser.
Bien cordialement
C'est vu.
Merci encore de m'avoir permis de progresser.
Bien cordialement