Copie de certaines cellule excel dans un fichier texte VBS

Messages postés
1
Date d'inscription
mercredi 30 décembre 2015
Statut
Membre
Dernière intervention
30 décembre 2015
- - Dernière réponse : cs_JMO
Messages postés
1855
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
Afficher la suite 

2 réponses

Messages postés
14485
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
16 juin 2019
131
0
Merci
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 .
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
23
0
Merci
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