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

Messages postés
29
Date d'inscription
samedi 30 juin 2007
Dernière intervention
2 janvier 2008
- - Dernière réponse : didieraucun
Messages postés
29
Date d'inscription
samedi 30 juin 2007
Dernière intervention
2 janvier 2008
- 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
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_JMO
Messages postés
29
Date d'inscription
samedi 30 juin 2007
Dernière intervention
2 janvier 2008
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
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
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
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
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
Messages postés
29
Date d'inscription
samedi 30 juin 2007
Dernière intervention
2 janvier 2008
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
Messages postés
29
Date d'inscription
samedi 30 juin 2007
Dernière intervention
2 janvier 2008
0
Merci
Nos réponse se sont croisées
Commenter la réponse de didieraucun
Messages postés
29
Date d'inscription
samedi 30 juin 2007
Dernière intervention
2 janvier 2008
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.