Bonjour P56,Oooh bien vu!
Dans la procédure Complete (module Accueil), il y a une condition du genre :
If Td(i, 2) >= Dt0 And Td(i, 2) < Dt0 + 30 And ...
Il faut ajouter un signe égal comme ceci :
If Td(i, 2) >= Dt0 And Td(i, 2) <= Dt0 + 30 And ...
Ou pour être plus précis, on pourrait écrire plutôt :
If Td(i, 2) >= Dt0 And Td(i, 2) < DateAdd("m", 1, Dt0) And ...
Sinon l'affichage ou non du zéro est limité par défaut à la feuille affichée (sans aucune incidence sur les autres classeurs)
Ceci dit afficher le zéro permet aussi de montrer les données qui ont été corrigées ...
Merci du signalement des "31"!
P.
De nouveau,Bonjour P56,
Encore merci pour ces précisions et de ton aide précieuse.
Est-il possible de bloquer la zone G4 à N34 pour que l'on puisse uniquement saisir 0;0,5 ou 1 ?
Effectivement suite à une erreur de saisie j'ai tapé 11. J'ai remis 0 pour annuler mais dans le feuille BDD il a gardé le 11 et ajouter une ligne 0. Et conclusion faussé mes calculs mensuels, annuels..
Bonne journée,
Virginie
P56,Bonjour Virginie,
Voilà des soucis qui me questionnent.
Dans le fichier "Mois_Vertical_3.xlsm" posté antérieurement et avec les divers correctifs, la ligne 35 est celle des totaux de chaque colonne de F à N, ce n'est pas une ligne de saisie de données.
Dans cette configuration je ne constate pas les effets indiqués (sur mon Pc : correction=ok, pas de cumul pirate)
Maintenant si une ou plusieurs lignes ont été ajoutées (entête?), ou s'il y a eu une modif de la structure de la feuille, il va probablement falloir revoir le code en conséquence. Pour le coup je veux bien une copie simplette uniquement de votre onglet Planning pour adapter correctement le code.
Sinon pour limiter la saisie aux 3 valeurs : 0, 0.5 et 1 :
* saisir ces 3 valeurs souhaitées dans une plage inutilisée quelconque (par exempe Z1, Z2 et Z3
* définir un nom pour la plage choisie, Formules/Gestionnaire de Noms/Nouveau => on peut donner un nom quelconque (par ex MesValeurs) pour la plage =Planning!$Z$1:$Z$3
* on va sélectionner alors la plage à limiter soit sur mon PC la plage G4:N34
* puis menu Données/Validation de données => page Options
* Autoriser => Personnalisé Formule =NB.SI(MesValeurs;G4)=1
* Cocher l'option Appliquer des modif aux cellules ...
(cf illustration)
* et valider
Regarde la pièce jointe 1159558
Si tout va bien la saisie sera limitée, pour la plage sélectionnée, aux seules 3 valeurs indiquées.
P.
Bonjour Virginie,
Voilà des soucis qui me questionnent.
Dans le fichier "Mois_Vertical_3.xlsm" posté antérieurement et avec les divers correctifs, la ligne 35 est celle des totaux de chaque colonne de F à N, ce n'est pas une ligne de saisie de données.
Dans cette configuration je ne constate pas les effets indiqués (sur mon Pc : correction=ok, pas de cumul pirate)
Maintenant si une ou plusieurs lignes ont été ajoutées (entête?), ou s'il y a eu une modif de la structure de la feuille, il va probablement falloir revoir le code en conséquence. Pour le coup je veux bien une copie simplette uniquement de votre onglet Planning pour adapter correctement le code.
Sinon pour limiter la saisie aux 3 valeurs : 0, 0.5 et 1 :
* saisir ces 3 valeurs souhaitées dans une plage inutilisée quelconque (par exempe Z1, Z2 et Z3
* définir un nom pour la plage choisie, Formules/Gestionnaire de Noms/Nouveau => on peut donner un nom quelconque (par ex MesValeurs) pour la plage =Planning!$Z$1:$Z$3
* on va sélectionner alors la plage à limiter soit sur mon PC la plage G4:N34
* puis menu Données/Validation de données => page Options
* Autoriser => Personnalisé Formule =NB.SI(MesValeurs;G4)=1
* Cocher l'option Appliquer des modif aux cellules ...
(cf illustration)
* et valider
Regarde la pièce jointe 1159558
Si tout va bien la saisie sera limitée, pour la plage sélectionnée, aux seules 3 valeurs indiquées.
P.
Bonjour P56,Ok,
Il ne faut pas contrarier les instincts. Pour pouvoir utiliser la touche Suppr., on peut modifier le début du code de le procédure Saisie comme ceci :
VB:Sub Saisie(Rg As Range) Dim T As Variant, deb As Single, fin As Single, Pause As Single If Ecrit Then Exit Sub With Sheets("Planning") If Rg.Column < 6 And Not .Cells(Rg.Row, "E").Value & .Cells(Rg.Row, "O").Value = "" Then
Sinon pour la case grisée, ç'est probablement à cause de la protection de la feuille.
P.
Bonjour Virginie,
Il me semble que cet effet vient du fait des précédents "bugs" rencontrés.
D'après mes tests les dernières corrections sont ok pour moi.
MAIS il est utile de corriger auparavant "à la main" les lignes en double qui ont pu être créées antérieurement à tord par les "bugs".
Autre vérification à faire, les formules en lignes 37 et 38 pour les décomptes :
* en F37 (total année) on doit avoir :
=SOMME.SI.ENS(T_Bdd[Durée];T_Bdd[[Date]:[Date]];">="&DATE($B$2;1;1);T_Bdd[[Date]:[Date]];"<"&DATE($B$2+1;1;1);T_Bdd[[Salarié]:[Salarié]];$E$1)
* en F38 (total période) on doit avoir :
=SOMME.SI.ENS(T_Bdd[Durée];T_Bdd[[Date]:[Date]];">="&DATE($B$2;1;1);T_Bdd[[Date]:[Date]];"<="&DATE($B$2;C2+1;0);T_Bdd[[Salarié]:[Salarié]];$E$1)
Ces 2 formules sont à recopier vers la droite jusqu'à la colonne N (format heure pour F, format standard pour les autres)
Avec ces 2 vérif je ne constate pas d'incohérence de données ni de total.
Est-ce que j'ai bon cette fois-ci?
(on va y arriver un jour ...!)
P.
Bonjour P56,C'est l'équivalent du $ dans les formules impliquant des tableaux structurés, pour permettre les recopies-vers-la-droite sans modif de la colonne.
Bonsoir P56,??
Votre fichier se comporte comme si le correctif du 19 dec n'avait pas été copié/collé dans le code.
De mon côté depuis ce correctif je ne constate pas cet effet et je n'arrive pas à reproduire ces lignes en doubles, pas de comportement non souhaité.
2 vérif à faire :
* vérifier l'application du correctif
* bien supprimer toutes les lignes en doublon de vos données (même valeur date)
P.
Bonjour P56,Aïe!
La rigueur dans la confusion est toujours mieux que la confusion dans la rigueur.
Dans le code tous les mots utilisés sont importants, nécessaires et indispensables.
Pour ce que je vois il y a encore des différences entre ce que j'ai écrit dans le correctif et dans votre code mis en image ...
P.