Top-Themen

Aktuelle Themen (A bis Z)

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

Excel In mehreren Exceldateien Texte auslesen u in neue Spalte mit Zahlenformat einfügen

Mitglied: newbie89

newbie89 (Level 1) - Jetzt verbinden

21.07.2008, aktualisiert 16:55 Uhr, 5526 Aufrufe, 4 Kommentare

Hallo.

Bin neu hier und habe aber sogleich eine wichtige Frage (für mich jedenfalls). Kenne micht mit VBA usw. leider nicht so gut aus, aber sollte jetzt dennoch etwas zustande bekommen. Folgendes Problem:

In einem Ordner X sind mehrere Excel-Dateien (immer selber Formatierung) und in einer Spalte Y steht ein gewisser Wert (00,00 l) in jeder Zeile. So das 1. Problem ist, das ich nur die Zahlen brauche ohne das l (=Liter) und diese Werte müssen dann eine Spalte weiter rechts (ist frei) kopiert werden! So und nun sollen alle Werte über 40 fett und rot markiert werden!!

Und diese Prozedur sollte in allen Excel-Tabellen in diesem Ordner statt finden. Am besten wäre wenn dies dann per .vbs oder .bat (weiß ja nicht welche es sein muss) ausführbar sein. Geht das?

Ich bedanke mich jetzt schon für eine rasche Antwort. Bei evt. Rückfragen stehe ich gerne zur Verfügung.


Danke.


lg
Mitglied: bastla
21.07.2008 um 16:18 Uhr
Hallo newbie89 und willkommen im Forum!

Als VBScript etwa so:
01.
Ordner = "D:\X" 
02.
AbZeile = 3 'Einträge ab dieser Zeile suchen 
03.
Spalte = "Y" 
04.
Wert = 40 'Grenzwert für Formatierung 
05.
 
06.
Set fso = CreateObject("Scripting.FileSystemObject") 
07.
 
08.
Set oXL = CreateObject("Excel.Application") 
09.
Const xlCellValue = 1 
10.
Const xlGreater = 5 
11.
 
12.
'Alle Dateien des angegebenen Ordners ... 
13.
For Each oExcelDatei In fso.GetFolder(Ordner).Files 
14.
    '... erfassen, und, falls der Typ "xls" ist, bearbeiten 
15.
    If LCase(fso.GetExtensionName(oExcelDatei.Name)) = "xls" Then 
16.
        'Datei öffnen 
17.
        oXL.Workbooks.Open oExcelDatei.Path 
18.
        Zeile = AbZeile 
19.
        'Solange die vorgegebene Spalte Einträge enthält 
20.
        Do While oXL.Cells(Zeile, Spalte).Value <> "" 
21.
            'Rechte Nachbarzelle ... 
22.
            With oXL.Cells(Zeile, Spalte).Offset(0, 1) 
23.
                '... mit Zahlenwert ohne " l" füllen ... 
24.
                .Value = CDbl(Replace(oXL.Cells(Zeile, Spalte).Value, " l", "")) 
25.
                '... und Bedingte Formatierung erstellen 
26.
                .FormatConditions.Add xlCellValue, xlGreater, Wert 
27.
                With .FormatConditions(1).Font 
28.
                    .Bold = True 
29.
                    .ColorIndex = 3 'Rot 
30.
                End With 
31.
            End With 
32.
            Zeile = Zeile + 1 
33.
        Loop 
34.
        'Datei schließen und speichern 
35.
        oXL.ActiveWorkbook.Close True 
36.
    End If 
37.
Next 
38.
	 
39.
oXL.Application.Quit
Du solltest vielleicht einmal nur mit 2 Dateien (Kopien) in einem Ordner testen ...

Noch eine Anmerkung: Es wird die beim Öffnen der jeweiligen Exceldatei aktuelle Tabelle bearbeitet.

Grüße
bastla
Bitte warten ..
Mitglied: newbie89
21.07.2008 um 16:39 Uhr
hallo

Das hat prima funktioniert! Komischerweise hat das Skript aber bis zu 2x eine Zahl unter 40 auch formatiert. Sonst hat es bis jetzt einwandfrei funktioniert. Herzlichen Dank!!

Aber gibt es eine Möglichkeit diesen Fehler auszubessern oder wieso ist das passiert?

lg u danke


zusätzlich:
Also beim 1. Mal ausführen hat alles geklappt . Wurde wunderbar formatiert. und nun bekomme ich folgende Meldung immer wieder:

http://c.imagehost.org/view/0362/fehler.jpg


Aber den Code habe ich genauso belassen:

Ordner = "C:\Dokumente und Einstellungen\AndreaHoedl\Eigene Dateien\Timur"
AbZeile = 2 'Einträge ab dieser Zeile suchen
Spalte = "B"
Wert = 40 'Grenzwert für Formatierung

Set fso = CreateObject("Scripting.FileSystemObject")

Set oXL = CreateObject("Excel.Application")
Const xlCellValue = 1
Const xlGreater = 5

'Alle Dateien des angegebenen Ordners ...
For Each oExcelDatei In fso.GetFolder(Ordner).Files
'... erfassen, und, falls der Typ "xls" ist, bearbeiten
If LCase(fso.GetExtensionName(oExcelDatei.Name)) = "xls" Then
'Datei öffnen
oXL.Workbooks.Open oExcelDatei.Path
Zeile = AbZeile
'Solange die vorgegebene Spalte Einträge enthält
Do While oXL.Cells(Zeile, Spalte).Value <> ""
'Rechte Nachbarzelle ...
With oXL.Cells(Zeile, Spalte).Offset(0, 1)
'... mit Zahlenwert ohne " l" füllen ...
.Value = CDbl(Replace(oXL.Cells(Zeile, Spalte).Value, " l", ""))
'... und Bedingte Formatierung erstellen
.FormatConditions.Add xlCellValue, xlGreater, Wert
With .FormatConditions(1).Font
.Bold = True
.ColorIndex = 3 'Rot
End With
End With
Zeile = Zeile + 1
Loop
'Datei schließen und speichern
oXL.ActiveWorkbook.Close True
End If
Next

oXL.Application.Quit
Bitte warten ..
Mitglied: bastla
21.07.2008 um 16:47 Uhr
Hallo newbie89!

Aber gibt es eine Möglichkeit diesen Fehler auszubessern oder wieso ist das passiert?
Wahrscheinlich; keine Ahnung.

Es wird eine "Bedingte Formatierung" verwendet - schau doch einmal für die betreffenden Zellen nach ("Format / Bedingte Formatierung..."), ob Dir etwas auffällt.

Grüße
bastla
Bitte warten ..
Mitglied: newbie89
21.07.2008 um 16:55 Uhr
hab das mit der bedingten formatierung mal gecheckt. also ab und zu geht es ganz normal und dann wiederum kommt der fehler. es ist ganz verschieden. aber irgnd. ist da kein system hinter den fehlern ;) ... weil ab und zu ist eine bedingte formatierung vorhanden und es geht nicht. und ab und zu nicht. und wenn ich das skript das 2. mal starte ist es auch 1x nicht gegangen...

und jetzt geht es wieder ;P ... wenn ich herausfinde an was es liegt melde ich mich. vielen dank für die hilfe.

lg
Bitte warten ..
Ähnliche Inhalte
Microsoft Office

Excel - Zellen aus anderen Exceldateien auslesen

gelöst Frage von Cubic83Microsoft Office10 Kommentare

Hallo, ich stecke mal wieder bei einem Excel Problem fest und hoffe ihr könnt mir helfen. Ich habe in ...

Microsoft Office

Excel mehrere Spalten durchsuchen und in einer neuen Spalte ordnen

gelöst Frage von Wolf6660Microsoft Office2 Kommentare

Hi, ich habe folgendes Problem: ich habe eine Liste mit mehreren Spalten in denen der Name eines Benutzers aufgelistet ...

VB for Applications

Bestimmte Daten aus mehreren Txt-Dateien auslesen und in excel sortiert in spalten einfügen

gelöst Frage von VBANeuling2015VB for Applications14 Kommentare

Hallo zusammen, leider habe ich keine Ahnung von VBA. Habe dennoch schon einige Foren durchsucht und leider keinen Erfolg ...

Microsoft Office

Exceldatei: Erstellungsdatum auslesen und in Spalte integrieren per VBA

gelöst Frage von abuelitoMicrosoft Office2 Kommentare

Hallo an Alle, ich wieder mal mit einem Problem. In einem Ordner habe ich ca 500 xls Dateien mit ...

Neue Wissensbeiträge
Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 5 StundenSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 11 StundenWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 15 StundeniOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 1 TagWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Heiß diskutierte Inhalte
Batch & Shell
Powershell: Im AD nach Rechnern mit bestimmten IP-Adressen suchen
gelöst Frage von Raven42Batch & Shell36 Kommentare

Hallo zusammen, ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt. ...

C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++34 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless25 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

Windows Server
Alten DC entfernen
Frage von smartinoWindows Server24 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...