Convertir Javascript en VBA
ButteDuLac
Messages postés
495
Date d'inscription
Statut
Membre
Dernière intervention
-
ButteDuLac Messages postés 495 Date d'inscription Statut Membre Dernière intervention -
ButteDuLac Messages postés 495 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Dans une BDD sous Access, j'ai besoin d'un code me permettant d'accélérer la saisie dans un contrôle de champ HEURE (détails : https://forums.commentcamarche.net/forum/affich-34326541-saisie-rapide-de-l-heure#p34330117).__J'ai trouvé, dans une autre BDD où je suis utilisatrice seulement, créée en Javascript, une partie de code qui semble servir à cette fonction (notez que je ne connais pas le Javascript, c'est une simple déduction).
Est-ce qu'il est possible de traduire ce code Java en langage VBA?
Pouvez-vous soit m'indiquer une ressource pour le faire, soit si vous en avez la capacité, me faire la traduction? Ce serait très, très gentil!
Merci!
Dans une BDD sous Access, j'ai besoin d'un code me permettant d'accélérer la saisie dans un contrôle de champ HEURE (détails : https://forums.commentcamarche.net/forum/affich-34326541-saisie-rapide-de-l-heure#p34330117).__J'ai trouvé, dans une autre BDD où je suis utilisatrice seulement, créée en Javascript, une partie de code qui semble servir à cette fonction (notez que je ne connais pas le Javascript, c'est une simple déduction).
Est-ce qu'il est possible de traduire ce code Java en langage VBA?
function _ARR(v,d){v*=Math.pow(10,d);v=Math.round(v);return v/Math.pow(10,d)}
function _VAL(v){var r=parseFloat(v);return isNaN(r)?0:r}
function _SAE(c,o){var d=0;c += "";var f=c.length-1;if(o&1)while(c.charAt(d)==" ")d++;if(o&2)while(c.charAt(f)==" ")f--;if (f < d) f= d;return c.substring(d,f+1)}
function _HVC(h,f){if(h=="")return"";var r=f;var nPos=r.indexOf("HH");if(nPos>-1)r=r.substring(0,nPos)+h.substring(0,2)+r.substring(nPos+2,r.length);nPos=r.indexOf("MM");if(nPos>-1)r=r.substring(0,nPos)+h.substring(2,4)+r.substring(nPos+2,r.length)
nPos=r.indexOf("SS");if(nPos>-1)r=r.substring(0,nPos)+h.substring(4,6)+r.substring(nPos+2,r.length);nPos=r.indexOf("CC");if(nPos>-1)r=r.substring(0,nPos)+h.substring(6,8)+r.substring(nPos+2,r.length);return r}
function _CVH(h,f){if(h=="")return"";var e=f.indexOf("HH");if(e==-1)return"";var m=f.indexOf("MM");if(m==-1)return"";var s=f.indexOf("SS");var t=s==-1?"00":h.substring(s,s+2);var c=f.indexOf("CC");var d=c==-1?"00":h.substring(c,c+2)
return h.substring(e,e+2)+h.substring(m,m+2)+t+d}
function _EVH(e){var h=""+Math.floor(e/(100*3600));if(h.length==1)h="0"+h;e=e%(100*3600);var m=""+Math.floor(e/(100*60));if(m.length==1)m="0"+m;e=e%(100*60);var s=""+Math.floor(e/(100));if(s.length==1)s="0"+s;e=e%(100);var c=""+Math.floor(e)
if(c.length==1)c="0"+c;return h+m+s+c}
function _HSY(){var d=new Date();var h=""+d.getHours();if(h.length==1)h="0"+h;var m=""+d.getMinutes();if(m.length==1)m="0"+m;var s=""+d.getSeconds();if(s.length==1)s="0"+s;var ms=""+d.getMilliseconds();if(ms.length==1)ms="0"+ms
if(ms.length>=2)ms=ms.substr(0,2);return h+m+s+ms}
function _HVE(h){return(h.substr(0,2)*360000)+(h.substr(2,2)*6000)+(h.substr(4,2)*100)+(h.substr(6,2)*1)}
function _JGP(d){return d.forms[0]}
function _JIFN(f,n){return (f!=null&&f.name.toUpperCase()==n.toUpperCase())}
function _JOW(w,n){var f=_JGP(w.document);if (_JIFN(f,n))return w;for(var i=0;i<w.frames.length;i++){try{var r=_JOW(w.frames[i],n);if(r)return r}catch(e){}}return null}
function _GET_LIBF_MESURE_1(){return _JCIR(_JGE("LIBF_MESURE",document))}
function _SET_LIBF_MESURE_1(){_JGE("LIBF_MESURE",document).innerHTML=clWDEncode.sEncodeInnerHTML((arguments[0])+"",true,false)}
function _FRM_FORMULAIRE_AH_223_LOD(event){{PROCEDURESGLOBALESDEINTRAGESRISKNAVIGATEUR_AFFICAHGE()}}
Pouvez-vous soit m'indiquer une ressource pour le faire, soit si vous en avez la capacité, me faire la traduction? Ce serait très, très gentil!
Merci!
A voir également:
- Javascript vba
- A javascript error occurred in the main process - Forum Matériel & Système
- Telecharger javascript - Télécharger - Langages
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum Programmation
- Excel compter cellule couleur sans vba - Guide
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, je penses qu'il est assez simple de faire une fonction VBA qui fait la même chose.
es-tu certaine, cependant, qu'une fonction te permettra de réaliser ce que tu cherches? plus précisément, la fonction serait appelée quand l'utilisateur a fini de remplir le champ, pas au fur et à mesure que l'utilisateur tape des caractères dans le champ : est-ce ce que tu attends?
es-tu certaine, cependant, qu'une fonction te permettra de réaliser ce que tu cherches? plus précisément, la fonction serait appelée quand l'utilisateur a fini de remplir le champ, pas au fur et à mesure que l'utilisateur tape des caractères dans le champ : est-ce ce que tu attends?
Comme je le dis, je ne m'y connais pas en Javascript, je croyais que c'était cette partie de code (extraite du code source de la page web où se trouve la BDD que j'utilise) qui permettait l'opération souhaitée.
J'imagine certainement que ça se fait en VBA, seulement je ne sais pas comment.
Je continue de chercher... si c'est simple pour vous, ça ne l'est pas pour moi, malheureusement!!! ;)
J'ai vu que vous m'avez aussi répondu sur l'autre « Question ». J'espère que je vais trouver... sinon je réfléchirai à l'idée des deux champs, mais je ne crois pas que ce soit la meilleure option...
(Crédit : https://www.excel-downloads.com/threads/saisie-des-heures-en-vba.79572/ sauf pour la partie en gras, qui est de moi...)
C'était pour Excel VBA.
Me reste à continuer à réfléchir pour les autres options (9:00, p. ex.) et transférer le tout sous Access!!!!
À suivre...
Ce qui se résume en une seule ligne :
Maintenant, je place ce code où? Je n'ai jamais utilisé les « Fonctions » encore dans Access.
J'ai essayé directement sur le form, pas fonctionné (valeur non conforme...).
J'ai enlevé mon masque de saisie sur le contrôle. Pas fonctionné.
J'ai essayé de faire un appel à la fonction sur réception focus du contrôle... marche pas non plus! Bogue dès que je saisis un chiffre!
Soupirs! Un jour... Un jour, je serai grande, pour l'instant, je suis très, très petite en développement VBA!!!
Merci!!!