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, 5512 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
Vmware
VMware Update für den ESXi 5.5 verfügbar
Information von sabines vor 4 StundenVmware

Nach dem ganzen Hickhack um Update mit Microcode Anpassungen und Rückzug, gibt es nun für den ESXi 5.5 ein ...

CPU, RAM, Mainboards

Meltdown und Spectre: Intel zieht Microcode-Updates für Prozessoren zurück

Information von keine-ahnung vor 8 StundenCPU, RAM, Mainboards4 Kommentare

Moin, extrem lutztig. Nur gut, dass ich noch nicht beim Probanden-Bingo mitgemacht habe :-) LG, Thomas

Router & Routing
PfSense als Addon auf QNAP
Information von magicteddy vor 22 StundenRouter & Routing3 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 1 TagDatenschutz1 Kommentar

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement26 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Server
TEMP-Profile
gelöst Frage von Forseti2003Windows Server21 Kommentare

Guten Morgen, wer kennt sie nicht, die lieben Temporären Benutzerprofile, vorallem immer dann, wenn man sie am wenigsten braucht. ...

Multimedia & Zubehör
Welches Tablet für die Verkäufer?
Frage von Hendrik2586Multimedia & Zubehör15 Kommentare

Guten Morgen meine Lieben, vielleicht könnt ihr mir ja helfen. Es geht um unsere Außendienstmitarbeiter /Verkäufer. Sie sollen demnächst ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...