Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mehrere Excell Datein an genau einer Stelle auslesen und weiterverarbeiten

Frage Microsoft Microsoft Office

Mitglied: Deecay

Deecay (Level 1) - Jetzt verbinden

24.11.2010, aktualisiert 18.10.2012, 2912 Aufrufe, 8 Kommentare

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.
Mitglied: bastla
24.11.2010, aktualisiert 18.10.2012
Hallo Deecay und wilkommen im Forum!

Schau mal hier vorbei ...

Grüße
bastla
Bitte warten ..
Mitglied: Deecay
24.11.2010 um 09:45 Uhr
Danke schonmal für die schnelle Hilfe. war zeimlich Informativ der Link, ich hab das Script angepasst: aus den For Schleifen eine IF Anweisung, da ja nur eine Sache geprüft werden muss.
Bei nem Test hab ich jedoch die Fehlermeldung 400 bekommen. Ich hab den Verdacht, dass meine IF-Anweisung nich sauber läuft hier nochmal der Quellcode:

Sub Auswerten()
sQuellpfad = "D:\Test"


Set wbGes = ActiveWorkbook
Set fso = CreateObject("Scripting.FileSystemObject")

For Each oFile In fso.GetFolder(sQuellpfad).Files
If LCase(Right(oFile.Name, 4)) = ".xls" Then
Application.Workbooks.Open oFile.Path
If wbGes.Worksheets(1).Cells(A1).Value = "1" Then
sFileName = fso.GetBaseName(oFile.Name)
ActiveWorkbook.Close False
End If
End If
Next

wbGes.Worksheets(1).Activate
wbGes.Save
MsgBox "Fertig."
End Sub


Ordner: D:\Test
Zelle A1 gefüllt mit 1 oder 0
Zu Testzwecken malö mit 4 Datein ausprobiert
Bitte warten ..
Mitglied: Miyamoto
24.11.2010 um 09:55 Uhr
Hi,
mit der Windows PowerShell kannst du es so machen:
01.
cls 
02.
 
03.
#Variablen 
04.
$pfad="E:\temp2" 
05.
$dateien=Get-ChildItem -Path $pfad -Name -Include *.xls 
06.
$ausgabedatei="E:\log.txt" 
07.
 
08.
#hier musst du angeben in welcher Spalte und in welcher Zeile sich dein Wert befindet 
09.
$zeile=2 
10.
$spalte=1 
11.
 
12.
# Excel starten  
13.
$excel = New-Object -comobject Excel.Application 
14.
 
15.
# für die Fehlersuche sollte man Excel vielleicht anzeigen! 
16.
$excel.Visible = $FALSE 
17.
 
18.
foreach($i in $dateien){ 
19.
 
20.
    # ExcelDatei laden 
21.
    $arbeitsmappe = $excel.Workbooks.Open($pfad+"\"+$i) 
22.
 
23.
    # Erstes Worksheet öffnen 
24.
    $seite = $arbeitsmappe.Worksheets.Item(1) 
25.
    if ($seite.Cells.item($zeile,$spalte).value() -ne 1){ 
26.
        echo $i 
27.
        $i | out-file -filepath $ausgabedatei -Append 
28.
29.
30.
# Excel verlassen 
31.
$excel.quit()
Gruß Miyamoto
Bitte warten ..
Mitglied: Deecay
24.11.2010 um 10:15 Uhr
HI Miyamoto mit Powershell kenn ich mich leider garnich aus.

wenn ich das Script ausführe kommt immer eine Fehlermeldung, ich kann die jedoch nich auswerten, weil sich kurz danach das Fenster schließt
Bitte warten ..
Mitglied: 76109
24.11.2010 um 10:24 Uhr
Hallo Deecay!

Dann versuchs mal mit nem VB-Script (*.vbs):
01.
Const QuellPfad = "D:\Test" 
02.
Const LogDatei = "D:\Test\Test.Log" 
03.
 
04.
Dim Fso, File, Wkb, Log 
05.
 
06.
Set Fso = CreateObject("Scripting.FileSystemObject") 
07.
Set Log = Fso.CreateTextFile(LogDatei) 
08.
     
09.
For Each File In Fso.GetFolder(QuellPfad).Files 
10.
    If LCase(Right(File.Name, 4)) = ".xls" Then 
11.
        Set Wkb = GetObject(File.Path) 
12.
        If Wkb.Sheets(1).Range("A1").Value <> 1 Then 
13.
            Log.WriteLine Fso.GetBaseName(File.Name) 
14.
        End If 
15.
        Wkb.Close False 
16.
    End If 
17.
Next 
18.
 
19.
Log.Close 
20.
     
21.
MsgBox "Fertig."
Gruß Dieter
Bitte warten ..
Mitglied: Deecay
24.11.2010 um 10:29 Uhr
HI Dieter,

das Script funktioniert 1a, danke für die Hilfe an dich und an die andern, die sich die Mühe gemacht haben.

Gruß Deekay.
Bitte warten ..
Mitglied: bastla
24.11.2010 um 10:30 Uhr
Hallo Deecay!

So könnte das eher funktionieren (ist aber ungetestet):
01.
Sub Auswerten() 
02.
sQuellpfad = "D:\Test" 
03.
 
04.
 
05.
Set wbGes = ActiveWorkbook 
06.
Set fso = CreateObject("Scripting.FileSystemObject") 
07.
 
08.
iZeile = 2 
09.
For Each oFile In fso.GetFolder(sQuellpfad).Files 
10.
    If LCase(Right(oFile.Name, 4)) = ".xls" Then 
11.
        Application.Workbooks.Open oFile.Path 
12.
        If Worksheets(1).Range("A1").Value = "1" Then 
13.
            sFileName = fso.GetBaseName(oFile.Name) 
14.
            ActiveWorkbook.Close False 
15.
            wbGes.Cells(iZeile, "A").Value = sFileName 
16.
            iZeile = iZeile + 1 
17.
        End If 
18.
    End If 
19.
Next 
20.
 
21.
wbGes.Worksheets(1).Activate 
22.
wbGes.Save 
23.
MsgBox "Fertig." 
24.
End Sub
Grüße
bastla

[Edit] Hat sich dann ja inzwischen erledigt ... [/Edit]
Bitte warten ..
Mitglied: Deecay
24.11.2010 um 10:35 Uhr
Jo trotzdem nochmal Danke Bastler
Bitte warten ..
Heiß diskutierte Inhalte
Windows Installation
Eine etwas (wirklich) speziellere Frage: Windows 10-Installation über (16)

Frage von DerFurrer zum Thema Windows Installation ...

Multimedia & Zubehör
gelöst Iphone 6 prob (10)

Frage von jensgebken zum Thema Multimedia & Zubehör ...

Netzwerkgrundlagen
gelöst Cisco SG500 Series LAG hat sich von selbst umgestellt (10)

Frage von Ex0r2k16 zum Thema Netzwerkgrundlagen ...

Linux
gelöst Boot failed: not a bootable disk (10)

Frage von Fleckmen zum Thema Linux ...