VBA effacer les cellules d'une plage correspondantes aux week-en
Fermé
Mouftie
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
-
3 oct. 2014 à 13:53
Mouftie Messages postés 215 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 6 septembre 2020 - 7 oct. 2014 à 19:05
Mouftie Messages postés 215 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 6 septembre 2020 - 7 oct. 2014 à 19:05
A voir également:
- Excel vba effacer une plage de cellules
- Formule excel pour additionner plusieurs cellules - Guide
- Liste déroulante excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Verrouiller cellules excel - Guide
- Déplacer une colonne excel - Guide
5 réponses
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
523
6 oct. 2014 à 16:03
6 oct. 2014 à 16:03
Bonjour,
D'après ce que je crois comprendre, les dates sont sur la ligne 3.
Ton instruction devrait être :
If Weekday(Cells(3, c.Column), vbMonday) > 5 Or Application.CountIf([FERIES], Cells(3, c.Column)) > 0 Then ...
A+
D'après ce que je crois comprendre, les dates sont sur la ligne 3.
Ton instruction devrait être :
If Weekday(Cells(3, c.Column), vbMonday) > 5 Or Application.CountIf([FERIES], Cells(3, c.Column)) > 0 Then ...
A+
redaiwa
Messages postés
351
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
25 janvier 2024
119
6 oct. 2014 à 15:48
6 oct. 2014 à 15:48
Salam Mouftie.
J'ai travaillé avec un cas similaire (Planning de Permanence) où je ne devais écrire que dans les cellules qui correspondent à un weekend ou à un jour férié.
Mon idée à été de mettre en rouge (par macro) tous les weekend et jours fériés dans le planning (pour une meilleure visibilité) puis à chaque sélection de cellule, tester si la police est en rouge auquel cas c'est un weekend ou un jour férié et agir en conséquence.
Ci-joint un exemple : https://www.cjoint.com/?DJgpY2UVyZ4
J'espère que j'ai été utile :)
J'ai travaillé avec un cas similaire (Planning de Permanence) où je ne devais écrire que dans les cellules qui correspondent à un weekend ou à un jour férié.
Mon idée à été de mettre en rouge (par macro) tous les weekend et jours fériés dans le planning (pour une meilleure visibilité) puis à chaque sélection de cellule, tester si la police est en rouge auquel cas c'est un weekend ou un jour férié et agir en conséquence.
Ci-joint un exemple : https://www.cjoint.com/?DJgpY2UVyZ4
J'espère que j'ai été utile :)
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
3 oct. 2014 à 16:29
3 oct. 2014 à 16:29
Bonjour,
si FERIES est bien une plage nommée qui contient les dates des jours fériés alors cela doit fonctionner.
si FERIES est bien une plage nommée qui contient les dates des jours fériés alors cela doit fonctionner.
Mouftie
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
15
6 oct. 2014 à 11:34
6 oct. 2014 à 11:34
Bonjour Pilas31
Je te remercie de m'avoir répondu.
Je te confirme que FERIES est bien une plage nommée.
quand je crée ma feuille du mois, j'ai un message d'erreur : '13' Incompatibilité de type.
J'ai également mis le code suivant, dans la feuille modèle, pour empêcher l'écriture dans les zones WE et Fériés.
Je viens de faire un nouvel essai ; là ma feuille mois a bien été créée, mais d'une part je ne peux rien saisir dans mon planning (ça s'efface au fure et à mesure) et d'autre part, les formules dans les colonnes fériés n'ont pas été effacées
Merci de bien vouloir m'aider.
Je te remercie de m'avoir répondu.
Je te confirme que FERIES est bien une plage nommée.
quand je crée ma feuille du mois, j'ai un message d'erreur : '13' Incompatibilité de type.
J'ai également mis le code suivant, dans la feuille modèle, pour empêcher l'écriture dans les zones WE et Fériés.
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'ongletLà, je n'ai pas d'erreur, mais je ne peux rien saisir dans la feuille jour férié ou pas.
Dim c As Range
On Error Resume Next
Static noEvents As Boolean
If noEvents Then Exit Sub
Set Plg = Intersect(Intersect(Target, [A:AG]), [5:120])
For Each c In Plg
If Weekday(Cells(5, c.Column), vbMonday) > 5 Or Application.CountIf([FERIES], Cells(5, c.Column)) > 0 Then
noEvents = True
c.Value = Empty
noEvents = False
End If
Next c
On Error Resume Next
End Sub
Je viens de faire un nouvel essai ; là ma feuille mois a bien été créée, mais d'une part je ne peux rien saisir dans mon planning (ça s'efface au fure et à mesure) et d'autre part, les formules dans les colonnes fériés n'ont pas été effacées
Merci de bien vouloir m'aider.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 6/10/2014 à 19:22
Modifié par Mouftie le 6/10/2014 à 19:22
Bonsoir redaiwa et Gyrus.
Merci à vous 2
Gyrus, tu as parfaitement raison, j'ai confondu les dates et les données... ; maintenant mes 2 procédures fonctionnent, mais celle qui efface les formules déclenche la procédure évènement ce qui entraine un temps de réponse énorme, il faudrait que je passe par un tableau virtuel (array), mais là je tatonne pas mal, pour ne pas dire plus.
Je vais chercher encore.
Merci à vous 2
Gyrus, tu as parfaitement raison, j'ai confondu les dates et les données... ; maintenant mes 2 procédures fonctionnent, mais celle qui efface les formules déclenche la procédure évènement ce qui entraine un temps de réponse énorme, il faudrait que je passe par un tableau virtuel (array), mais là je tatonne pas mal, pour ne pas dire plus.
Je vais chercher encore.
redaiwa
Messages postés
351
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
25 janvier 2024
119
7 oct. 2014 à 15:08
7 oct. 2014 à 15:08
Tu pourrais peut-être éviter d'utiliser l'événement Worksheet_Change ? Quitte à repenser un peu ton code.
Mouftie
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
15
7 oct. 2014 à 19:05
7 oct. 2014 à 19:05
comment peut-on éviter l'événement Worksheet_Change ?
les utilisateurs font des copiés / collés sur plusieurs semaines, mais il faut à chque fois supprimer les saisies, les jours non travaillés.
les utilisateurs font des copiés / collés sur plusieurs semaines, mais il faut à chque fois supprimer les saisies, les jours non travaillés.