XL 2013 Problème dans Formulaire VBA qui efface formules dans mon classeur Excel

Ismagapi

XLDnaute Junior
Bonjour et merci de votre aide par avance,
J'ai créé un formulaire pour rechercher, modifier ou créer dans une base de données. J'arrive à rapatrier mes données mais lorsque je créé ou lorsque je modifie grace à un bouton de commande, la sauvegarde se fait dans ma base de données mais efface la formule de ma cellule. Résultat les valeurs remontées par la suite par mon formulaire sont erronées car la formule =SI(CL259>0;NBVAL(CP259;CZ259;DJ259;DT259;ED259;EN259);"0") se transforme en chiffre 1,2,3,4,5 et 6 en valeurs numériques.
Comment peut on faire pour empêcher l'écriture de ma textBox qui rapatrie la donnée de la cellule dans ma base de données ? Ou comment peut on inscrire dans une textBox en code vba cette formule ?

Ci joint mon code entier (je sais c'est un peu le bordel mais je débute ...)
Merci de l'attention que vous porterez à mon problème et surtout m'aider à le résoudre....
 

Pièces jointes

  • Fichier Test.xlsm
    140.1 KB · Affichages: 4

Dranreb

XLDnaute Barbatruc
Bonjour.
Les informations données par des formules devraient être affichées non dans des TextBox mais dans des Label, et il ne faudrait pas les réécrire.
Étant donné que la plage n'a pas fait l'objet d'une mise sous forme de tableau, pour une nouvelle ligne vous pourriez peut-être faire :
VB:
WS.Cells(Ligne, CByte(CTRL.Tag)).FormulaR1C1 = "=IF(RC90>0,COUNTA(RC94,RC104,RC114,RC124,RC134,RC144),""0"")"
et :
VB:
WS.Cells(Ligne, CByte(CTRL.Tag)).FormulaR1C1 = "=IF(RC90>0,RC90-RC91,"""")"
Ou mettre ces FormulaR1C1 dans le tag, derrière le numéro de colonne, après un point-virgule ou un "|" … (fonction VBA Split pour récupérer les deux parties)
 

Discussions similaires

Réponses
17
Affichages
591
Réponses
12
Affichages
241

Statistiques des forums

Discussions
312 074
Messages
2 085 059
Membres
102 768
dernier inscrit
clem135164