Copie de certaines cellule excel dans un fichier texte VBS
ScotchRV
Messages postés1Date d'inscriptionmercredi 30 décembre 2015StatutMembreDernière intervention30 décembre 2015
-
30 déc. 2015 à 16:44
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
30 déc. 2015 à 19:22
Bonjour à tous,
Je me tourne vers vous afin d'essayer de régler un problème que je traîne depuis 2 semaines.
Donc j'ai un dossier avec 200 fichiers Excel et j'aimerais que pour chaque fichier, le script copie certaines cellules pour les copier dans un fichier texte.
Tout d'abord cela est-il possible ?
Enfaîte le but est de gagner du temps à éviter d'ouvrir chaque fichier juste pour 6 cellules à copier. C'est pour cela que j'essaye de le créer en VBS et non en VBA.
J'ai déjà le début du script qui permet d'ouvrir l'excel :
Set objExcel = CreateObject("Excel.Application")
Dim fichier
fichier = InputBox("Entrez le nom du fichier")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.open("\\serveur\dossier\"& fichier &".xls",0,True)
Set objWorksheet = objWorkbook.Worksheets(1)
Ce que j'aimerais savoir c'est comment sélectionner ces cellules et comment les copier a la suite dans un fichier texte ?
Merci de m'avoir lu
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 30 déc. 2015 à 19:22
Bonjour le Forum,
Bonjour ScotchRV,
Ci-dessous un exemple pour extraire le contenu de cellules Excel.
Pour gain de temps, j'utilise ADODB et non Excel.Application.
Option Explicit
Const RootPath = "C:\Users\jeanmarc\Documents\SCRIPTS\Test\"
Const FileLog = "C:\Users\jeanmarc\Documents\SCRIPTS\LogExcel.txt"
Dim objFso, objRootFolder, objFileLog
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objRootFolder = objFso.GetFolder(RootPath)
Set objFileLog = objFso.CreateTextFile(FileLog)
Call SearchFiles(objRootFolder)
objFileLog.Close
Set objFileLog = Nothing
Set objRootFolder = Nothing
Set objFso = Nothing
WScript.Quit
Sub SearchFiles(ArgFolder)
Dim file
For Each file In ArgFolder.Files
If objFso.GetExtensionName(file.Path) = "xls" Then
Call ReadFileExcel(file.path)
End if
Next
End Sub
Sub ReadFileExcel(ArgFile)
Dim objConn, objRs
Set objConn = CreateObject("ADODB.Connection")
objConn.Open ("Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=" & ArgFile &_
";Extended Properties=""Excel 8.0;IMEX=1;HDR=NO""")
Set objRs = objConn.Execute("SELECT * FROM [Feuil1$A1:A1]")
objFileLog.WriteLine Mid(ArgFile, InStrRev(ArgFile,"\")+1, Len(ArgFile)) & vbTab & objRs.Fields(0).Value
Set objRs = objConn.Execute("SELECT * FROM [Feuil1$B3:B3]")
objFileLog.WriteLine Mid(ArgFile, InStrRev(ArgFile,"\")+1, Len(ArgFile)) & vbTab & objRs.Fields(0).Value
objRs.Close
objConn.Close
Set objRs = Nothing
Set objConn = Nothing
End Sub