OVH Cloud OVH Cloud

scripting VBA

3 réponses
Avatar
MB
J'essaie de faire des scripts VBA. Certaines instructions=20
donnent des erreurs. Par example:
Dim toto=20
fonctionne, mais
Dim toto As Integer
donne "Fin d'instruction attendue" au niveau de As.
De m=EAme WithEvents ne passe pas.
Que se passe-t-il? Merci de m'aider.
La version de mon CScript est 5.6.

3 réponses

Avatar
François Picalausa
Hello,

VBA est Visual Basic For Applications (le VB d'Excel, de Word, ...).
VBScript est pour le script.
Vu l'erreur, il me semble que tu utilise VBScript. En effet, en VBScript,
les variables ne PEUVENT pas être typées, elles sont toujours en variant:

<quote
src="http://msdn.microsoft.com/library/en-us/script56/html/vbsDataType.asp">
VBScript has only one data type called a Variant. A Variant is a special
kind of data type that can contain different kinds of information, depending
on how it is used. Because Variant is the only data type in VBScript, it is
also the data type returned by all functions in VBScript.
At its simplest, a Variant can contain either numeric or string information.
A Variant behaves as a number when you use it in a numeric context and as a
string when you use it in a string context. That is, if you are working with
data that looks like numbers, VBScript assumes that it is numbers and does
what is most appropriate for numbers. Similarly, if you're working with data
that can only be string data, VBScript treats it as string data. You can
always make numbers behave as strings by enclosing them in quotation marks
(" ").
</quote>

Withevents ne semble pas faire partie du vocabulaire de VBScript.
Tu devras sans doutes employer un contrôle activeX ou encapsuler l'appel à
la dll dans un contrôle activeX généré dans VB (VB5CCE est l'édition
gratuite de VB permettant ceci:
http://msdn.microsoft.com/vbasic/downloads/tools/cce/default.aspx )

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"MB" a écrit dans le message de
news:091701c47afb$2b8a2430$
Dim toto
fonctionne, mais
Dim toto As Integer
donne "Fin d'instruction attendue" au niveau de As.
De même WithEvents ne passe pas.
Que se passe-t-il?


Avatar
Guy DETIENNE
Salut ;O)

VBScript n'est pas VB6...

Toutes les variables sont de type Variant, donc on ne sait pas les déclarer
avec As.
WithEvents ne fonctionne pas non plus.

La syntaxe du VBScript est similaire au VB6 mais avec des différences
notables.
Le but des deux langages est très différent.

Jette un oeil ici:

http://www.w3schools.com/vbscript/default.asp

Guy


"MB" a écrit dans le message de
news:091701c47afb$2b8a2430$
J'essaie de faire des scripts VBA. Certaines instructions
donnent des erreurs. Par example:
Dim toto
fonctionne, mais
Dim toto As Integer
donne "Fin d'instruction attendue" au niveau de As.
De même WithEvents ne passe pas.
Que se passe-t-il? Merci de m'aider.
La version de mon CScript est 5.6.
Avatar
ng
Salut,

A ce que j'ai compris tu parles de script VBS ici et non de VBA, ce n'est
pas la même chose !

Dim toto As Integer


Cela provoque une erreur en VBS et c'est normal, en effet les variables dans
ce langage ne sont pas typées (Variant).

De même WithEvents ne passe pas.


Idem, pas de WithEvents en VBS (car le withevents requiet du early-binding
(sauf en vb/vba, où on peut le faire en late-binding avec du
VBControlExtender...))

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/



MB a écrit :

J'essaie de faire des scripts VBA. Certaines instructions
donnent des erreurs. Par example:
Dim toto
fonctionne, mais
Dim toto As Integer
donne "Fin d'instruction attendue" au niveau de As.
De même WithEvents ne passe pas.
Que se passe-t-il? Merci de m'aider.
La version de mon CScript est 5.6.