Utilisation de la méthode Intersect
Résolu/Fermé
Mouftie
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
-
Modifié par Mytå le 1/08/2014 à 18:04
Mouftie Messages postés 215 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 6 septembre 2020 - 3 août 2014 à 14:41
Mouftie Messages postés 215 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 6 septembre 2020 - 3 août 2014 à 14:41
A voir également:
- Vba intersect target
- Mkdir vba ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Autofill vba ✓ - Forum Excel
8 réponses
Mouftie
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
15
1 août 2014 à 17:54
1 août 2014 à 17:54
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...
Il me reste à trouver le code pour interdire l'écriture dans toutes les colonnes dont la ligne 3 correspond à Sam ou dim...
Mouftie
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
15
1 août 2014 à 18:31
1 août 2014 à 18:31
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
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
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
1 août 2014 à 18:36
1 août 2014 à 18:36
Bonjour,
si tu pouvais déposer un extrait de ton fichier sur cjoint.com et coller ici le lien fourni.
eric
si tu pouvais déposer un extrait de ton fichier sur cjoint.com et coller ici le lien fourni.
eric
Mytå
Messages postés
2973
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
950
Modifié par Mytå le 1/08/2014 à 18:43
Modifié par Mytå le 1/08/2014 à 18:43
Re le Forum
Essaye comme ceci :
Mytå
Essaye comme ceci :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Cells(3, Target.Column) = "Sam" Or Cells(3, Target.Column) = "Dim" Then
MsgBox "Saisie interdite ! "
Range("A1").Activate
End If
End Sub
Mytå
Mouftie
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
15
1 août 2014 à 18:53
1 août 2014 à 18:53
Bonsoir Eriiic,
Ravie de m'aider de nouveau.
Comme demandé :
https://www.cjoint.com/?DHbsYeP6qDi
Ravie de m'aider de nouveau.
Comme demandé :
https://www.cjoint.com/?DHbsYeP6qDi
Mouftie
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
15
1 août 2014 à 19:15
1 août 2014 à 19:15
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).
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
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
1 août 2014 à 20:24
1 août 2014 à 20:24
Regarde si ça va :
eric
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
Mouftie
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
15
Modifié par Mouftie le 2/08/2014 à 13:47
Modifié par Mouftie le 2/08/2014 à 13:47
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é :
Merci
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 Thenmais ça ne fonctionne pas
c = Target.Address
c.ClearContents
Merci
Iama
Messages postés
319
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
27 mars 2020
14
2 août 2014 à 14:45
2 août 2014 à 14:45
Piste en passant
En verrouillant les cellules concerné, je pense que tu pourrais résoudre une bonne partie du problème. (saisie et cellule glissée)
En verrouillant les cellules concerné, je pense que tu pourrais résoudre une bonne partie du problème. (saisie et cellule glissée)
Mouftie
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
15
2 août 2014 à 15:17
2 août 2014 à 15:17
Oui, Iama, j'y ai pensé, mais chaque mois créé, génère des week end dans des colonnes différentes et en plus ça empêche le glisser sur plus de 5 jours, ce qui n'est pas recherché.
Merci
Merci
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
2 août 2014 à 19:12
2 août 2014 à 19:12
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 :
https://www.cjoint.com/?DHctkvT312Z
J'ai mis le gris des we en MFC comme ça change chaque mois.
eric
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
Mouftie
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
15
2 août 2014 à 19:40
2 août 2014 à 19:40
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
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
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
2 août 2014 à 21:52
2 août 2014 à 21:52
SelectionChange : évènement qui se déclenche quand on sélectionne une cellule.
Change : évènement qui se déclenche quand on change une cellule.
D'où leur nom.
une variable Static garde sa valeur entre deux appels.
eric
Change : évènement qui se déclenche quand on change une cellule.
D'où leur nom.
une variable Static garde sa valeur entre deux appels.
eric
Mouftie
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
15
3 août 2014 à 14:41
3 août 2014 à 14:41
Merci bcp pour ces explications.
A bientôt ? ;>
A bientôt ? ;>
1 août 2014 à 18:02
Voir le lien : VBA - Utilisation de la méthode Intersect
Mytå