Convertir une note en date du jour
Bonjour à tous,
Je suis un débutant sous Excel et je n'arrive pas à résoudre un problème malgré mes multiples recherches sur le net.
J'ai créer un tableau me permettant de remplir les notes de mes élèves avec sommes, moyennes. Jusque là pas de pb.
Quand un élève valide plusieurs compétences (du genre sait faire une addition, une soustraction et une multiplication), j'aimerais que cela valide une compétence globale (ce qui serait, si je me rapporte à l'exemple précédent, les techniques opératoires).
Mais mon gros pb, c'est que ce n'est pas une note qui doit correspondre à la validation de cette compétence globale mais une date, la date du jour où la compétence globale est remplie.
Ce qui donne par exemple :
Maxime a eu A en soustraction, A en addition et A en multiplication. En remplissant ces 3 cases avec des A cela rempli une autre case qui correspond à "Je connais mes techniques opératoires". Mais au lieu d'avoir un A dans cette case, j'aimerai qu'il y ait la date du jour où j'ai rempli ces cases.
Pour l'instant, j'ai associé à chaque note (A, CA et NA) un chiffre (2, 1 et 0). J'obtiens donc dans la case de ma compétence globale une somme. J'aimerai qu'à partir d'un certain nombre (par exemple 8), cette case affiche la date du jour.
J'espère avoir été clair (je n'en suis pas certain ^^). En tout cas, une aide serait la bienvenue et serait aussi bénéfique pour mes collègues
Bonjour,
Tu trouveras ci-joint une proposition, si elle ne correspond pas à ta demande.
Peux-tu, s'il te plait joindre un fichier comportant explicitement tes besoins.
Amicalement
Air_2
Génial !
D'abord merci pour ta réponse, c'est un grand pas en avant!
Et un 2ème merci car grâce à toi j'ai pu comprendre comment fonctionnait la formule SI.
Malgré tout il y a un petit souci. Si j'enregistre ton fichier et que je change la date de mon PC. En l'ouvrant, la date a aussi changé dans le tableau
Il faudrait qu'une fois rentrée, cette date ne bouge plus.
Désolé Olivier,
Effectivement... méa culpa
Je te propose donc un nouveau fichier avec le code qui va remplacer les formules f(x)=si() :
Public Lignefin As Variant 'je déclare ici la portée et le type de ma variable, si tu veux en savoir + visite ce super site (^_-)
Public ValeurContenue As String 'je déclare ici la portée et le type de ma variable, si tu veux en savoir + visite ce super site (^_-)
Sub Traitement() 'ma procédure privée commence si je clique sur le bouton de la feuille
Lignefin = ActiveSheet.Range("b65536").End(xlUp).Row 'je cherche la derniere ligne renseignée dans le fichier
For a = 8 To Lignefin 'je commence ma première boucle à la ligne 8 jusqu'à la dernière ligne
For b = 4 To 6 'je commence ma seconde boucle à la colonne 4 jusqu'à la dernière colonne=6 ; ColonneA=1 ; etc...
ValeurContenue = UCase(ActiveSheet.Cells(a, b)) 'je déclare ici une variable qui va contenir la valeur de la ligne et colonne visitée
If ValeurContenue = "A" Then 'début du test pour une action déterminée selon condition respectée, si ma variable contient "A" alors
ActiveSheet.Cells(a, b + 4) = Date 'je renseigne la date de ce jour à la quatrième colonne à droite de celle qui est visitée
Else 'sinon
ActiveSheet.Cells(a, b + 4) ="" ''je renseigne vide la quatrième colonne à droite de celle qui est visitée cela permet de mettre à blanc s'il y avait eu un A renseigné par erreur
End 'fin de de mon test
Next ' fin de ma seconde boucle et colonne suivante
Next ' fin de ma première boucle et ligne suivante
End Sub 'fin de ma procédureSi tu souhaite une version améliorée et plus friendly n'hésite pas.
Au plaisir de te lire
Amicalement
Air_2
Merci beaucoup pour ton aide !
J'ai regardé ta feuille et ça marche nickel, mais j'avoue que ça devient compliqué pour moi de comprendre et de l'appliquer à ma feuille déjà existante. (il y a des centaines de cases à remplir, qui, de plus, ne sont pas remplies en même temps. Donc il faut recliquer sur le bouton à chaque fois que l'on rentre de nouvelles notes, ce qui change les dates précédentes).
Du coup, je vais faire quelques modifications. La fonction SI va me permettre d'indiquer par une icône ou un texte que la compétence globale est acquise et que l'on peut insérer la date en utilisant Ctrl + ; . De cette façon, une fois rentrée, on ne peut plus la changer !
C'est plus fastidieux que ta solution, mais c'est beaucoup mieux que ma situation de départ
Merci ! Sans toi, je n'aurais pas pu avancer.
Si tu ne veux pas le bouton et ne pas changer de feuille, peux-tu utiliser mon fichier et me donner un exemple de feuille qui tu utilises.
De plus, dans ma précédente version, j'ai laissé le code d'origine qui m'a permis de te proposer la toute première version.
Je m'en suis rendu compte, mais hélas un peu trop tard car tu viens de me répondre.
Je te propose une dernière possibilitée une feuille avec bouton et une feuille sans bouton.
A ta disposition pour te proposer une solution plus agile compatible avec la feuille que tu utilises.
Excellent !
C'est exactement ce que j'aimerais avoir : la feuille 2 de ton fichier (sans bouton).
J'ai bien observé le code, et j'ai réussi à l'adapter à ma feuille.
Et ca marche ! si c'est moi qui entre la valeur directement dans la case (quand je place la note, la date s'affiche à coté !!! super)
Mais voilà, il y a malgré tout un petit problème (dsl je ne suis pas très doué)
En fait, les notes sont sur une autre feuille. J'utilise donc une formule pour faire apparaître la somme des notes dans la 2e feuille, celle où j'utilise ton code. Mais ça ne marche pas de cette façon. Je t'explique :
Quand je rentre moi même la note (sans passer par la formule qui va chercher la somme des notes dans la 1ere feuille), ça marche super!
Mais quand je laisse la formule fonctionner (c'est à dire en remplissant les cases avec des notes dans la 1ere feuille), elle affiche bien la bonne note dans la 2e feuille, mais rien ne se passe (pas de date!). Il faut que j'appuie sur la touche "entrée" dans la case f(x) pour que ça marche.
Je suis vraiment à 2 doigts que ça fonctionne parfaitement ! Mais bon tu m'as déjà beaucoup aidé, je ne voudrais pas non plus abuser !
Bonsoir,
Je viens de tester avec une formule basique : RechercheV , cela fonctionne parfaitement.
S'il te plait, peux-tu me retourner mon fichier avec une feuille contenant le tableau que tu utilises avec quelques exemples de données renseignées (en modifiant les noms (^_-) ); et dans la feuille embarquant le code en vba la formule que tu souhaites utiliser.
Ce sera pour moi un grand plaisir de te répondre le plus rapidement possible.
Amitié
Air_2
Je t'envoie ça !
J'ai mis quelques explications dans ce fichier, tu devrais t'y retrouver.
Merci encore pour ton aide précieuse !
Bonsoir,
Tu trouveras je l'espère une solution "Must" telle que tu l'envisageait (^_-).
A très vite
Air_2
Génial !
Merci beaucoup pour cette aide et pour le temps que tu m'as accordé !
Je vais pouvoir terminer ce fichier comme je voulais au départ.
Moi et mes collègues te devons un gain de temps précieux dans notre travail.
Merci !