Microsoft 365 Ecrire une formule de calcul en Vba Excel

  • Initiateur de la discussion Initiateur de la discussion NONO14
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

NONO14

XLDnaute Impliqué
Bonjour à toutes et à tous,

Comment pourrait-on écrire cette formule de calcul en Vba, s'il vous plaît ? Pour le moment elle est écrite en dur dans des cellules Excel de mon tableau.
Cependant, il m'est demandé de l'écrire dans du code afin que personne ne puisse y accéder. Cette formule se trouve dans la colonne J du tableau de la feuille "Recap", il y en d'autres du même genre dans les colonnes K et L et un peu plus simples dans les colonnes M, N, O.
Bien sûr je pourrais protéger ces colonnes mais ce n'est pas ce qui m'est demandé, j'ai proposé cette solution, mais elle ne garantie pas une sécurité suffisante en cas d'effacement malencontreux par la personne qui va gérer ce fichier.
MAX_MAT et autres sont des Noms donnés à des cellules de la feuille "Données", soit les cellules L3 à O5.
Mot de passe de la feuille "falaise"
Merci par avance pour vos idées.
VB:
=SI(A2="";"";SI(A2<>"";SI(ET(D2<>"";E2<>"");E2-D2;SI(ET(D2<>"";E2="";F2<>"");MAX_MAT-D2;SI(ET(D2<>"";E2="";ET(F2<>"";G2=""));"";SI(ET(D2<>"";E2="";F2="";G2="";H2="";I2<>"");MAX_MAT-D2;SI(ET(D2<>"";E2="";F2="";G2<>"");MAX_MAT-D2;SI(ET(D2<>"";E2="";ET(F2="";G2="");ET(H2="";I2<>""));I2-D2;SI(ET(D2<>"";E2="";F2="";G2="");MAX_MAT-D2;SI(D2="";""))))))))))
 

Pièces jointes

Dernière édition:
Solution
Bonjour le Fil
juste pour signaler qu'a ce Niveau il y a un problème !
VB:
Private Sub TextCode_Change()
Dim Ctrl As Control
Dim Ctrl2 As Control
Dim Trouvé As Boolean
 Dim Trouve As Range

    Me.TextCode.Text = UCase(Me.TextCode) 'On met en Majuscule tout le Contenu du TextBox
    If Not EnableEvents Then Exit Sub
    Sheets("Liste_agents").Unprotect "falaise"
    'on cherche le nom associé au code dans la TS "t_Noms"
    With Sheets("Liste_agents").ListObjects("t_Noms")
    'ci-dessous on recherche dans une colonne ou se trouvent des Minuscules
    Set Trouve = .ListColumns(1).Range.Find(Me.TextCode, lookat:=xlWhol
Tu peux si la case n'a pas d'importance mettre Option Compare Text en tête de Module.
et supprimer ...
pour te donner une idée..
une version avec identification par mot de passe de l'utilisateur
les mots de passe sont sur la feuille "Données" qui est masque en xlveryhidden
pour l'instant, le mot de passe = code agent
Bonjour,
L'idée du formulaire est intéressante mais trop longue dans l'exécution du pointage, il faut aller au plus rapide, d'où l'utilité du bouton ou d'un double-clic. (qui fait son chemin dans la tête du chef)
Merci à tous pour votre investissement. Je m'aperçois qu'une simple question sur une formule de calcul m'amène à revoir mon projet, comme quoi des regards avisés sont toujours bons. Je vais essayer de prendre en compte (selon mes modestes connaissances) tous vos bons conseils.
 
Ce n'est pas en sélectionnant la cellule de droite ou du dessous que tu vas interdire une modification de la cellule que tu viens de mettre à jour. Du moins, je ne comprends pas le rapport.
Lorsque l'on double-clic, la cellule reste active donc modifiable manuellement, d'où la nécessité de passer à une autre cellule pour interdire un retour modification. Dans ma tête c'est clair, mais je dois mal m'expliquer.
 
Dans ce fichier, lorsque je double-clic, la cellule reste active, je dois cliquer sur une autre cellule pour la désactiver.
1725693538954.png
 

Pièces jointes

Hello
tu dis que la version formulaire est trop longue..?? admettons.. mais je trouve que c'est beaucoup plus sur et maitrisé...
dans ton fichier actuel.. qu'est ce qui empeche Paul Auchon de saisir (double clic) un pointage sur Alain Terrieur??
à aucun moment je ne vois une "identification" de l'agent..

questions à se poser également..
le fichier est sur UN seul PC auquel tout le monde à accès? (donc.. on en revient au pb d'identification de l'agent) ou le fichier est sur le PC de chaque agent? (la.. l'identification pourrait se faire grace au "user" de windows)
une pointeuse ou une douchette commencent par identifier l'agent avant de faire le pointage..
(pour la douchette, j'ai déjà vu passer de nombreux messages ici pour la mettre en place et la gerer avec Excel==> donc, c'est tout à fait possible)

est ce que ce fichier est en réseau? sur un sharepoint, un drive??
 
Hello
tu dis que la version formulaire est trop longue..?? admettons.. mais je trouve que c'est beaucoup plus sur et maitrisé...
dans ton fichier actuel.. qu'est ce qui empeche Paul Auchon de saisir (double clic) un pointage sur Alain Terrieur??
à aucun moment je ne vois une "identification" de l'agent..

questions à se poser également..
le fichier est sur UN seul PC auquel tout le monde à accès? (donc.. on en revient au pb d'identification de l'agent) ou le fichier est sur le PC de chaque agent? (la.. l'identification pourrait se faire grace au "user" de windows)
une pointeuse ou une douchette commencent par identifier l'agent avant de faire le pointage..
(pour la douchette, j'ai déjà vu passer de nombreux messages ici pour la mettre en place et la gerer avec Excel==> donc, c'est tout à fait possible)

est ce que ce fichier est en réseau? sur un sharepoint, un drive??
Le fichier est un sur un PC unique mis à disposition des agents. Après toutes les fraudes sont possibles, il faut compter sur l'honnêteté de chacun. Pour la douchette, il faut un logiciel spécifique qui gère les codes-barres non ?
 
Lorsque l'on double-clic, la cellule reste active donc modifiable manuellement, d'où la nécessité de passer à une autre cellule pour interdire un retour modification. Dans ma tête c'est clair, mais je dois mal m'expliquer.
Pas de souci, tu t'explique très bien et c'est parfaitement clair.

Mais regarde le fichier joint : quand tu double-cliques dans une cellule, ça inscrit la date ou l'heure mais la cellule ne reste pas en édition. 😉
 

Pièces jointes

Pas de souci, tu t'explique très bien et c'est parfaitement clair.

Mais regarde le fichier joint : quand tu double-cliques dans une cellule, ça inscrit la date ou l'heure mais la cellule ne reste pas en édition. 😉
Bonjour TootFatBoy, bonjour à toutes et à tous,
Merci beaucoup ton travail, c'est plutôt cool. Pour l'ajout d'une ligne, il me semble préférable de rester sur une fonction normale, du genre un clic dans une cellule vide de la colonne A.
Je suis entrain de revoir complètement mon projet, je l'ai chamboulé. Je le soumettrais au forum dès que possible. En tout état de cause, je vais me servir de ton code, avec ta permission.
Merci encore
 
Le but était simplement de te montrer que, comme je te le disais précédemment, si c'est la macro qui modifie le contenu d'une cellule elle peut sortir automatiquement du mode édition sans avoir besoin de se déplacer à droite ou en dessous.


je vais me servir de ton code, avec ta permission.
Le code est libre, donc tu en fais ce que tu veux. 😉
Mais dans son ensemble il ne me paraît pas viable car trop bancal.
 
Je suis entrain de revoir complètement mon projet, je l'ai chamboulé.
Ce n'est pas plus mal car, franchement, quel est l'intérêt d'avoir des colonnes différentes pour le matin, l'après-midi et le soir ?
Une fois qu'on a l'heure on peut en déduire si c'est le matin, l'après-midi ou le soir. Ce qu'il faut, c'est savoir si c'est une entrée ou une sortie. 😉

Pense aussi à ce que t'a dit le camarade vgendron : une version avec un formulaire de saisie est plus sûre et maîtrisée. 👍
 
Bonsoir à toutes et à tous,
Voici en pièce jointe le début de mon travail que j'ai pu réaliser grâce à vos bons conseils et des codes trouvés sur le forum, j'en remercie chaleureusement leurs auteurs.
Il me reste encore pas mal de boulot, mais je pense avoir bien avancé. J'attends avec impatience vos observations constructives en œil averti.
Merci encore pour toutes vos remarques qui m'ont permises d'avancer en espérant ne pas m'être fourvoyé.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
491
Réponses
3
Affichages
271
Réponses
4
Affichages
445
Réponses
4
Affichages
697
Réponses
9
Affichages
646
Retour