Copie de certaines cellule excel dans un fichier texte VBS

ScotchRV Messages postés 1 Date d'inscription mercredi 30 décembre 2015 Statut Membre Dernière intervention 30 décembre 2015 - 30 déc. 2015 à 16:44
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 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

ScotchRV

2 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
30 déc. 2015 à 17:02
Essayes déjà de t'exercer sur VBA, cela te donnera les bases des accès.
Ensuite, regardes la manipulation des éléments Range et Cells .
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
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

jean-marc
0
Rejoignez-nous