VBS - Récuperer la valeur d'une cellule excel [Résolu]

didieraucun 29 Messages postés samedi 30 juin 2007Date d'inscription 2 janvier 2008 Dernière intervention - 27 déc. 2007 à 23:04 - Dernière réponse : didieraucun 29 Messages postés samedi 30 juin 2007Date d'inscription 2 janvier 2008 Dernière intervention
- 30 déc. 2007 à 21:26
Bonsoir,

J'ai créer un fichier VBS pour remplir automatiquement des champs d'un logiciel

Comment faire pour récupérer la valeur d'une cellule d'un fichier Excel ?

 




set shell = WScript.CreateObject("WScript.Shell" )

shell.AppActivate "Easy Access"

WScript.Sleep(3000)  ' Attendre 3 secondes

shell.SendKeys "ZZ30"

shell.SendKeys "~"

WScript.Sleep(2000)  ' Attendre 2 secondes

shell.SendKeys "{DEL}{DEL}{DEL}"

shell.SendKeys "120"

shell.SendKeys "{DOWN}{DOWN}{DOWN}"

shell.SendKeys "76500"

shell.SendKeys "~"

WScript.Sleep(2000)  ' Attendre 2 secondes

shell.SendKeys "{TAB}"

shell.SendKeys "ACC{TAB}"

shell.SendKeys valeur_cellule_excel 'Valeur de la cellule A1 du fichier Toto.xls
<hr size ="2" width="100%" />
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention - 30 déc. 2007 à 19:11
3
Merci
 Bonsoir,

Si le fichier Toto.xls ne comporte qu'un onglet:

shell.SendKeys "{TAB}"
shell.SendKeys "ACC{TAB}"
shell.SendKeys ShowCellExcel()

Function ShowCellExcel()
Dim objExcel, objClasseur, ExcelFile, strCell
ExcelFile = "C:\Toto.xls"
Set objExcel = CreateObject("Excel.Application")
Set objClasseur = objExcel.WorkBooks.Open(ExcelFile)
objExcel.DisplayAlerts = False
objExcel.Application.Visible = False
strCell = objExcel.Worksheets(1).Cells(1, 1).Value
objExcel.Quit
Set objExcel = Nothing
Set objClasseur = Nothing
ShowCellExcel = strCell
End Function

jean-marc

Merci cs_JMO 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_JMO
didieraucun 29 Messages postés samedi 30 juin 2007Date d'inscription 2 janvier 2008 Dernière intervention - 30 déc. 2007 à 20:20
0
Merci
Merci Jean marc

Et si je souhaite récuperer d'autres valeurs de cellule A1, D4 et F6
je repete 3 fois le sous programme Function ShowCellExcel()
Commenter la réponse de didieraucun
cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention - 30 déc. 2007 à 20:53
0
Merci
Re,

Il suffit de passer la cellule (ligne et colonne) en paramètre.

MsgBox  ShowCellExcel(1,2),,"B1"
MsgBox  ShowCellExcel(5,4),,"D5"
MsgBox  ShowCellExcel(10,6),,"F10"

Function ShowCellExcel(Ligne,Colonne)
Dim objExcel, objClasseur, ExcelFile, strCell
ExcelFile = "C:\Toto.xls"
Set objExcel = CreateObject("Excel.Application")
Set objClasseur = objExcel.WorkBooks.Open(ExcelFile)
objExcel.DisplayAlerts = False
objExcel.Application.Visible = False
strCell = objExcel.Worksheets(1).Cells(Ligne,Colonne).Value
objExcel.Quit
Set objExcel = Nothing
Set objClasseur = Nothing
ShowCellExcel = strCell
End Function

jean-marc
Commenter la réponse de cs_JMO
cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention - 30 déc. 2007 à 21:12
0
Merci
Re,

Evidemment, il est inutile d'appeler trois fois la fonction (ouvrir/fermer le même fichier toto.xls).

shell.SendKeys "{TAB}"
shell.SendKeys "ACC{TAB}"

Dim objExcel, objClasseur, ExcelFile
ExcelFile = "C:\Toto.xls"
Set objExcel = CreateObject("Excel.Application")
Set objClasseur = objExcel.WorkBooks.Open(ExcelFile)
objExcel.DisplayAlerts = False
objExcel.Application.Visible = False

shell.SendKeys objExcel.Worksheets(1).Cells(1,1).Value
shell.SendKeys objExcel.Worksheets(1).Cells(4,4).Value
shell.SendKeys objExcel.Worksheets(1).Cells(6,6).Value

objExcel.Quit
Set objExcel = Nothing
Set objClasseur = Nothing

jean-marc
Commenter la réponse de cs_JMO
didieraucun 29 Messages postés samedi 30 juin 2007Date d'inscription 2 janvier 2008 Dernière intervention - 30 déc. 2007 à 21:21
0
Merci
J'ai modifié comme suit pour ne faire qu'un accès au fichier excel :

set shell = WScript.CreateObject("WScript.Shell")
shell.Run "notepad.exe"

Dim objExcel, objClasseur, ExcelFile, strCell_B1, strCell_D5, strCell_F10
ExcelFile = "C:\Toto.xls"
Set objExcel = CreateObject("Excel.Application")
Set objClasseur = objExcel.WorkBooks.Open(ExcelFile)
objExcel.DisplayAlerts = False
objExcel.Application.Visible = False
strCell_B1 = objExcel.Worksheets(1).Cells(1,2).Value
strCell_D5 = objExcel.Worksheets(1).Cells(5,4).Value
strCell_F10 = objExcel.Worksheets(1).Cells(10,6).Value
objExcel.Quit
Set objExcel = Nothing
Set objClasseur = Nothing

shell.SendKeys strCell_B1
shell.SendKeys "{TAB}"
shell.SendKeys strCell_D5
shell.SendKeys "{TAB}"
shell.SendKeys strCell_F10

Peut etre encore à amélioré
Commenter la réponse de didieraucun
didieraucun 29 Messages postés samedi 30 juin 2007Date d'inscription 2 janvier 2008 Dernière intervention - 30 déc. 2007 à 21:24
0
Merci
Nos réponse se sont croisées
Commenter la réponse de didieraucun
didieraucun 29 Messages postés samedi 30 juin 2007Date d'inscription 2 janvier 2008 Dernière intervention - 30 déc. 2007 à 21:26
0
Merci
Nos réponses se sont croisées
Commenter la réponse de didieraucun

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.