OVH Cloud OVH Cloud

EXCEL : insérer une valeur en VBS

1 réponse
Avatar
o.0
Bonjour à tous,

Je cherche, par l'intermédiaire d'un script vbs (tournant en local sur les
machines, pas d'IIS) à ouvrir un fichier xls et à insérer des valeurs dans
des cellules.
Par ailleurs comment insérer ou rajouter une colonne derrière la dernière ?

Merci beaucoup pour vos réponses,

Nicolas

1 réponse

Avatar
Jean-Claude BELLAMY
Dans le message news:% ,
o.0 s'est ainsi exprimé:

Bonjour à tous,

Je cherche, par l'intermédiaire d'un script vbs (tournant en local
sur les machines, pas d'IIS) à ouvrir un fichier xls et à insérer des
valeurs dans des cellules.
Par ailleurs comment insérer ou rajouter une colonne derrière la
dernière ?


Inspire toi de mes scripts VBS qui font appel à EXCEL , en remplissant les
cellules automatiquement.
P.ex. :

http://www.bellamyjc.org/fr/vbsdownload.html#accountlist
http://www.bellamyjc.org/fr/vbsdownload.html#listserv
http://www.bellamyjc.org/fr/vbsdownload.html#processus
http://www.bellamyjc.org/fr/vbsdownload.html#showadm


En général, tout script de ce style commence par :

Set oXL = WScript.CreateObject("EXCEL.application")
oXL.Visible = True
oXL.Workbooks.Add

La variable objet "oXL" (nom totalement arbitraire) est celle qui va
permettre de faire tout ce qu'on veut dans EXCEL

Le principe de programmation est très simple, d'ailleurs.
Il suffit, dans Excel, de déclencher l'enregistrement d'une macro, qui
contiendra toutes les manips que l'on souhaite.
Une fois que c'est fait, on passe sous Visual Basic Editor et il suffit
d'effectuer un copier-coller du code obtenu vers l'éditeur du VBScript.
La seule modif à effectuer ensuite est de faire précéder toutes les
commandes par "oXL." (la variable que l'on a créée au début).

Par exemple, pour insérer une colonne :

VBE donne ceci :
-----------------------
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 02/06/2005 par BELLAMY
'

Selection.Insert Shift:=xlToRight
End Sub
-----------------------

Le VBScript aura alors cette allure :
(testé en vraie grandeur !)

---------- couper ici ----------
Const xlToRight = &HFFFFEFBF

Set oXL = WScript.CreateObject("EXCEL.application")
oXL.Visible = True
oXL.Workbooks.Add
NCmin=1
NCmax=9
For NC = NCmin To NCmax
Cellule 1,NC ,"TEST " & NC
Next
NC=InputBox("N° colonne à décaler à droite (" & NCmin & " à " & NCmax & "
?", _
"Test EXCEL", 2)
If not isnumeric(NC) Then wscript.quit
NC=cint(NC)
If NC<NCmin or NC>NCmax Then wscript.quit

oXL.cells(1,NC).select
Shift=xlToRight
oXL.Selection.Insert Shift
Cellule 1,NC,"Nouvelle colonne"
oXL.Selection.Columns.AutoFit
'--------------------------------------------------------------------
Sub Cellule(NL,NC,chaine)
oXL.Cells(NL,NC).Value = Chaine
End Sub
---------- couper ici ----------

NB: il faut penser à déclarer en tête du VBS toutes les constantes utilisées
par Excel, car elles sont inconnues de VBS
P.ex. ici "xlToRight" qui vaut -4161 (ou &HFFFFEFBF en hexadécimal)

Pour connaitre la valeur numérique d'une constante, il suffit de faire un
clic droit sur la dite variable dans VBE et sélectionner l'item "Info
expresse". une infobulle donne alros la valeur numérique, en décimal et en
hexa.


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*