Mehrere Excell Datein an genau einer Stelle auslesen und weiterverarbeiten
Hallo zusammen, steh da vor nem kleinen Problemchen:
Das Problem ist folgendes:
In einem Ordner befinden sich ca. 50 xls-Datein. In allen 50 dieser Datein steht in der genau gleichen Zeile eine 1 oder nichts.
Ich würd es gern automatisieren (Im Optimalfall durch eine Batch Datei, oder ähnliches), dass diese Datein eingelesen werden und diese Zelle betrachtet wird.
Sollte eine 1 in der Zelle sein soll nichts weiter passieren, sollte keine 1 dort sein soll der Name der XLS-File in eine Neue Datei geschrieben werden, (alle Namen die sich so ergeben natürlich in eine Datei).
Ich steh jetzt hier wie der Ochs vorm Berg und verzweifel etwas daran, Hilfe wäre super.
Danke im Vorraus Deecay.
Das Problem ist folgendes:
In einem Ordner befinden sich ca. 50 xls-Datein. In allen 50 dieser Datein steht in der genau gleichen Zeile eine 1 oder nichts.
Ich würd es gern automatisieren (Im Optimalfall durch eine Batch Datei, oder ähnliches), dass diese Datein eingelesen werden und diese Zelle betrachtet wird.
Sollte eine 1 in der Zelle sein soll nichts weiter passieren, sollte keine 1 dort sein soll der Name der XLS-File in eine Neue Datei geschrieben werden, (alle Namen die sich so ergeben natürlich in eine Datei).
Ich steh jetzt hier wie der Ochs vorm Berg und verzweifel etwas daran, Hilfe wäre super.
Danke im Vorraus Deecay.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 155673
Url: https://administrator.de/contentid/155673
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
8 Kommentare
Neuester Kommentar
Hi,
mit der Windows PowerShell kannst du es so machen:
Gruß Miyamoto
mit der Windows PowerShell kannst du es so machen:
cls
#Variablen
$pfad="E:\temp2"
$dateien=Get-ChildItem -Path $pfad -Name -Include *.xls
$ausgabedatei="E:\log.txt"
#hier musst du angeben in welcher Spalte und in welcher Zeile sich dein Wert befindet
$zeile=2
$spalte=1
# Excel starten
$excel = New-Object -comobject Excel.Application
# für die Fehlersuche sollte man Excel vielleicht anzeigen!
$excel.Visible = $FALSE
foreach($i in $dateien){
# ExcelDatei laden
$arbeitsmappe = $excel.Workbooks.Open($pfad+"\"+$i)
# Erstes Worksheet öffnen
$seite = $arbeitsmappe.Worksheets.Item(1)
if ($seite.Cells.item($zeile,$spalte).value() -ne 1){
echo $i
$i | out-file -filepath $ausgabedatei -Append
}
}
# Excel verlassen
$excel.quit()
Gruß Miyamoto
Hallo Deecay!
Dann versuchs mal mit nem VB-Script (*.vbs):
Gruß Dieter
Dann versuchs mal mit nem VB-Script (*.vbs):
Const QuellPfad = "D:\Test"
Const LogDatei = "D:\Test\Test.Log"
Dim Fso, File, Wkb, Log
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Log = Fso.CreateTextFile(LogDatei)
For Each File In Fso.GetFolder(QuellPfad).Files
If LCase(Right(File.Name, 4)) = ".xls" Then
Set Wkb = GetObject(File.Path)
If Wkb.Sheets(1).Range("A1").Value <> 1 Then
Log.WriteLine Fso.GetBaseName(File.Name)
End If
Wkb.Close False
End If
Next
Log.Close
MsgBox "Fertig."
Gruß Dieter
Hallo Deecay!
So könnte das eher funktionieren (ist aber ungetestet):
Grüße
bastla
[Edit] Hat sich dann ja inzwischen erledigt ... [/Edit]
So könnte das eher funktionieren (ist aber ungetestet):
Sub Auswerten()
sQuellpfad = "D:\Test"
Set wbGes = ActiveWorkbook
Set fso = CreateObject("Scripting.FileSystemObject")
iZeile = 2
For Each oFile In fso.GetFolder(sQuellpfad).Files
If LCase(Right(oFile.Name, 4)) = ".xls" Then
Application.Workbooks.Open oFile.Path
If Worksheets(1).Range("A1").Value = "1" Then
sFileName = fso.GetBaseName(oFile.Name)
ActiveWorkbook.Close False
wbGes.Cells(iZeile, "A").Value = sFileName
iZeile = iZeile + 1
End If
End If
Next
wbGes.Worksheets(1).Activate
wbGes.Save
MsgBox "Fertig."
End Sub
bastla
[Edit] Hat sich dann ja inzwischen erledigt ... [/Edit]