Utilisation de la méthode Intersect
Résolu
Mouftie
Messages postés
234
Statut
Membre
-
Mouftie Messages postés 234 Statut Membre -
Mouftie Messages postés 234 Statut Membre -
Bonjour,
Je cherche à empêcher des saisies dans un planning, les week end (chaque fois que sur la ligne 3 il y a Sam ou Dim, la colonne doit rester vierge).
J'ai trouvé sur le net plusieurs possibilités pour bloquer les saisies, mais quand j'essaie de les appliquer, j'ai ce message qui apparait puis la boîte de dialogue Références - VBAProject qui s'ouvre et comme je ne sais que faire, j'annule et la plus rien ne se passe. je peux saisir ce que je veux aucun message ou autre interdiction.
Pour l'exemple, voici le dernier code essayé
Merci
Je cherche à empêcher des saisies dans un planning, les week end (chaque fois que sur la ligne 3 il y a Sam ou Dim, la colonne doit rester vierge).
J'ai trouvé sur le net plusieurs possibilités pour bloquer les saisies, mais quand j'essaie de les appliquer, j'ai ce message qui apparait puis la boîte de dialogue Références - VBAProject qui s'ouvre et comme je ne sais que faire, j'annule et la plus rien ne se passe. je peux saisir ce que je veux aucun message ou autre interdiction.
Pour l'exemple, voici le dernier code essayé
Private Sub Worksheet_SelectionChange(ByVal Target As Range)Est-ce quelqu'un peut m'aider svp.
If Not Intersect(Target, Range("a1:a20")) Is Nothing Then Range("b1").Select
End Sub
Merci
8 réponses
-
Je viens de trouver : le code doit être placé dans la feuille concernée.
Il me reste à trouver le code pour interdire l'écriture dans toutes les colonnes dont la ligne 3 correspond à Sam ou dim... -
Merci Mytå,
Je mets cette page dans ma besace, elle est fort utile.
mais dans mon cas :
Ce n'est pas quand on clique sur la date, mais partout où la date d'entête correspond à Sam ou dim.
Merci quand même -
-
Merci Mytå,
Mais cela ne fonctionne pas : si j'écris dans une cellule de la colonne "Sam", il ne se passe rien (j'ai bien décalé ma ligne de date en 3 - pas comme dans mon fichier). -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Regarde si ça va :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim c As Range If Target.Row <= 2 Then Exit Sub If Not Application.Intersect(Target, Range("A:AE")) Is Nothing Then If Weekday(Cells(1, Target.Column), vbMonday) > 5 Then MsgBox " Non, c'est le WE" Else MsgBox "Click on " & Target.Address _ & vbLf & "Ok, c'est un " & Format(Cells(1, Target.Column), "dddd") End If End If End Sub
eric
-
Bonjour Eriiic,
Merci, mais ça ne fonctionne pas comme je voudrais :
En effet, si on écrit qqc le vendredi et que l'on glisse jusqu'au vendredi suivant (par exemple) on se retrouve avec des saisies le samedi et le dimanche.
il faudrait effacer la saisie de la colonne ou les colonnes considérée(s) .
j'ai essayé :If Weekday(Cells(1, Target.Column), vbMonday) > 5 Then
mais ça ne fonctionne pas
c = Target.Address
c.ClearContents
Merci -
Bonjour,
si on écrit qqc le vendredi et que l'on glisse jusqu'au vendredi suivant
Comment on peut deviner si tu ne le dis pas ?
En plus tu proposais SelectionChange qui n'a rien à voir avec ce que tu veux.
La prochaine fois dis en détail ce que tu veux, sans proposer de fausses pistes.
A tester, en espérant que tu aies tout dit :Private Sub Worksheet_Change(ByVal Target As Range) Dim pl As Range, c As Range Static noEvents As Boolean If noEvents Then Exit Sub Set pl = Intersect(Intersect(Target, [A:AE]), [3:65000]) For Each c In pl If Weekday(Cells(1, c.Column), vbMonday) > 5 Then noEvents = True c.Value = Empty noEvents = False End If Next c End Sub
https://www.cjoint.com/?DHctkvT312Z
J'ai mis le gris des we en MFC comme ça change chaque mois.
eric -
Bonsoir Eriiic,
C'est exactement ce que je voulais ; je croyais l'avoir dit correctement : "Il me reste à trouver le code pour interdire l'écriture dans toutes les colonnes dont la ligne 3 correspond à Sam ou dim..." (je suis désolée de t'avoir fait perdre du temps).
Je suis complètement novice avec les évènements SelectionChange ou Change ? je ne fais pas bien la différence...
C'est comme "Static noEvents As Boolean" quand j'ai fait F1 sur Static, je n'ai aucune réponse de l'aide.
En tout cas un grand merci