Microsoft 365 Ecrire une formule de calcul en Vba Excel

NONO14

XLDnaute Occasionnel
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

  • Tablo_Heures.xlsm
    282.8 KB · Affichages: 13
Dernière édition:
Solution
Bonjour
tu dis ne pas vouloir protéger les colonnes..et pourtant tu postes un fichier protégé...

pour inscrire une formule dans une cellule J2 par VBA, voici ma méthode
1) créer une variable qui contient la formule en Anglais
FormuleJ="=if(A2="""",""""if(A2<>""""................)"
en anglais veut dire: les fonctions sont écrites dans la version Anglaise ==> Si==>IF, et==> And....
les ; sont remplacés par des ,
les " sont remplacés par ""

2) inscrire la formule
range("J2").formula=formuleJ

3) pour étirer la formule: autofill

NONO14

XLDnaute Occasionnel
Pourquoi ? 🤔 🤔 🤔
Et pourquoi n'est-elle pas construite directement à la taille adaptée au UserForm ?
La page 1 est construite à la taille du formulaire, ce sont les autres pages qui devaient être redimensionnées.
Le code de patricktoukon redimensionne le tout alors j'ai fait avec sans me creuser la tête davantage.
Je les redimensionne pour une question d'esthétisme et ça plaît bien comme ça au donneur d'ordre. Et puis pour être tout à fait honnête, ça ne me dérange pas plus que ça, ce n'est qu'un petit bout de code en plus et quand je vois ce qu'il me reste à faire alors...
 

vgendron

XLDnaute Barbatruc
Ok, la page 1 est construite à la taille du UserForm. C'est très bien.

Mais ça ne répond toujours pas à ma question de départ : pourquoi faut-il redimensionner les autres pages ?!? 🤯 🤪 🙃

Franchement, ça m'intrigue.
je dirais.. juste pour faire joli...:)
perso.. je ne fais jamais de redimensionnement de USF (si.. une fois dans une appli ou j'ajoutais dynamiquement des frames...)
 

vgendron

XLDnaute Barbatruc
Bon, je n'aurai jamais ma réponse, et ça continuera de m'intriguer. 😁 🤣

Mais ce n'est pas grave. La seule chose importante est que tu trouves une solution pour obtenir ce que tu veux. 👍
bah.. toofat.. un gros coup de fatigue??
la réponse est claire: "pour faire joli"....
la page 2 contient moins de controls à afficher que la page1 ==> quand la page 2 est affichée, sa taille (et celle du USF) est diminuée..
 

Discussions similaires

Réponses
9
Affichages
343
Réponses
5
Affichages
369
Réponses
3
Affichages
161

Statistiques des forums

Discussions
313 913
Messages
2 103 512
Membres
108 685
dernier inscrit
BAAK