Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
748to752
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
748to752
748to752
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Infos aus Dateien automatisch zusammenfassen im Ex

Infos aus Dateien automatisch zusammenfassen im Ex
27.03.2006 13:44:14
Hans
Wie kann ich aus mehreren Text-Dokumente denn Werte ab einen bestimmten Punkt ins Excel automatisch importieren lasen.
Ausgangslage:
Habe von jedem PC ein Log- respektive TXT- File mit diversen Informationen.
PC-NB-01.txt
PC-NB-02.txt
PC-NB-03.txt
Jetzt will ich die Installierte Software in ein Excel-Blatt zusammen führen.
Ziel ist es eine Auflistung zu erstellen siehe Beispiel :
Userbild
Der Punkt im Logfile wo ausgelesen werden soll beginnt immer mit: [Installed Software] und endet bei [Running Tasks].
Die Informationen zwischen diesen zwei Schlüsselwörter sollte automatisch ausgelesen und in die Tabellen eingetragen werden.
[Installed Software]
Windows XP Hotfix - KB873339
Microsoft .NET Framework 1.1
Microsoft Office XP
WinZip 8.1
u.s.w.....
[Running Tasks]

33
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Infos aus Dateien automatisch zusammenfassen im Ex
27.03.2006 13:57:54
ede
hallo,
hier mal ein ungetestetetes makro für eine File
das kannst du dann beliebig oft für mehrere files laufen lassen!

Private Sub Text_Import()
Dim i As Integer
Dim startflag As Boolean
Dim endeflag  As Boolean
'StartVerzeichnis - bitte anpassen
ChDrive "c:\"
ChDir "\temp"
startflag = False
endeflag = False
'Dialogfenster Öffnen
sFile = Application.GetOpenFilename _
("txt-Dateien (*.txt), *.txt")
If sFile <> False Then
Close
Open sFile For Input As #1
Cells(1, 1).Value = sFile
i = 2
Do While Not EOF(1)
Line Input #1, strtxt
If startflag And Not endeflag Then
Cells(i, 1).Value = strtxt
i = i + 1
End If
If Left(strtxt, 20) = "[Installed Software]" Then startflag = True
If Left(strtxt, 15) = "[Running Tasks]" Then endeflag = True
Loop
Close
End If
End Sub

rückmeldung wäre super
gruss
Anzeige
AW: Infos aus Dateien automatisch zusammenfassen im Ex
27.03.2006 14:40:33
Hans
Hallo
Danke für die Schnelle Antwort, es funktioniert.
Die Daten werden in die Zeilen geschrieben (von Oben nach unten),das ist aber verkehrt.
Das Skript sollte die Daten in die Spalten schreiben nicht in die Zeilen.
Von links nach rechts damit man dann einen Filter setzen kann.
Eine Zeile = ein Computer Log.File
Kann man dem Skript auch mitteilen das er das nächste File im c:\temp nimmt und in die nächste Zeile abfüllt u.s.w bis keine Log.Files mehr vorhanden sind.
Er kann die Log.Files die er Eingetragen hat auch löschen, und so lange diesen Task durchführen bis keine Log.Files mehr da sind.
Gruss Hans
Anzeige
AW: Infos aus Dateien automatisch zusammenfassen im Ex
27.03.2006 14:55:40
ede
hallo nochmal,
natürlich geht das auch. es sollte ja nur ein denkanstoss für eine datei sein damit
du es für mehrere ableiten kannst!
wenn du diese zele ersetzt
Cells(i, 1).Value = strtxt
durch diese
Cells(1,i).Value = strtxt
dann hast dus in der zeile je file!
es setze mal wieder auf offen, da ich heute keine zeit mehr habe!
gruss
AW: Infos aus Dateien automatisch zusammenfassen im Ex
27.03.2006 15:13:41
ede
ganz auf die schnelle nochmal (ungetestet!!!!)
Sub test()
Dim fn As String
Dim pfadfile As String
Dim tmp As String
MsgBox fn
fn = Dir()
End Sub

Private Sub Text_Import_alle()
Dim i As Integer
Dim zeile As Integer
Dim startflag As Boolean
Dim endeflag  As Boolean
Dim pfadfile As String
Dim fileart As String
'StartVerzeichnis - bitte anpassen
ChDrive "c:\"
ChDir "\temp"
startflag = False
endeflag = False
pfadfile = "c:\temp\"
fileart = "*.txt"
'Start der Verarbeitung
zeile = 1
fn = Dir(pfadfile & fileart)
Do While fn <> ""
Open fn For Input As #1
Cells(zeile, 1).Value = fn
i = 2
Do While Not EOF(1)
Line Input #1, strtxt
If startflag And Not endeflag Then
Cells(zeile, i).Value = strtxt
i = i + 1
End If
If Left(strtxt, 20) = "[Installed Software]" Then startflag = True
If Left(strtxt, 15) = "[Running Tasks]" Then endeflag = True
Loop
Close
zeile = zeile + 1
Loop
End Sub

rückmeldung wäre super
gruss
Anzeige
Korrektur
27.03.2006 15:14:48
ede
so:
Sub test()
Dim fn As String
Dim pfadfile As String
Dim tmp As String
MsgBox fn
fn = Dir()
End Sub

Private Sub Text_Import_alle()
Dim i As Integer
Dim zeile As Integer
Dim startflag As Boolean
Dim endeflag  As Boolean
Dim pfadfile As String
Dim fileart As String
'StartVerzeichnis - bitte anpassen
ChDrive "c:\"
ChDir "\temp"
pfadfile = "c:\temp\"
fileart = "*.txt"
'Start der Verarbeitung
zeile = 1
fn = Dir(pfadfile & fileart)
Do While fn <> ""
startflag = False
endeflag = False
Open fn For Input As #1
Cells(zeile, 1).Value = fn
i = 2
Do While Not EOF(1)
Line Input #1, strtxt
If startflag And Not endeflag Then
Cells(zeile, i).Value = strtxt
i = i + 1
End If
If Left(strtxt, 20) = "[Installed Software]" Then startflag = True
If Left(strtxt, 15) = "[Running Tasks]" Then endeflag = True
Loop
Close
zeile = zeile + 1
Loop
End Sub

gruss
Anzeige
AW: Korrektur
27.03.2006 15:17:35
ede
bin heute zu ... zum kopieren!!, das kommt davon wenns schnell gehen soll!
hier nochmal der richtige code:

Private Sub Text_Import_alle()
Dim i As Integer
Dim zeile As Integer
Dim startflag As Boolean
Dim endeflag  As Boolean
Dim pfadfile As String
Dim fileart As String
'StartVerzeichnis - bitte anpassen
ChDrive "c:\"
ChDir "\temp"
pfadfile = "c:\temp\"
fileart = "*.txt"
'Start der Verarbeitung
zeile = 1
fn = Dir(pfadfile & fileart)
Do While fn <> ""
startflag = False
endeflag = False
Open fn For Input As #1
Cells(zeile, 1).Value = fn
i = 2
Do While Not EOF(1)
Line Input #1, strtxt
If startflag And Not endeflag Then
Cells(zeile, i).Value = strtxt
i = i + 1
End If
If Left(strtxt, 20) = "[Installed Software]" Then startflag = True
If Left(strtxt, 15) = "[Running Tasks]" Then endeflag = True
Loop
Close
zeile = zeile + 1
fn = Dir()
Loop
End Sub

Anzeige
AW: Korrektur
27.03.2006 16:22:21
Hans
Hallo ede
Funktioniert Perfekt.
Nur ein kleines Übersichtsproblem habe ich noch, die Daten zu Filtern ist nicht möglich.
Wenn ich z.B. Acrobat 5.0 nehme Existiert diese Eintrag in Spalte A und B und C oder sonstirgendwo. Ist eine Sortierung möglich? Der Datenbestand ist nicht bei jedem Log-File gleich und auch nicht nach ABC Sortiert?
Geht das im VBS das man alle Werte untereinader schreibt damit man eine Matrix erhält wo man mit dem Filter sagen kann Acrobat 5.0 ist 20mal installiert auf Pc-XY?
Gruss Hsns
neue Version in arbeit
28.03.2006 08:37:36
ede
guten morgen,
bin dabei es anzupassen!
gruss
neue Version
28.03.2006 08:46:58
ede
so, nun nochmal eine neue version!
habe sie nicht getestet, da ich mir keine txt-files anlegen wollte!
sollten mehr als 100 softwareeintrage vorhanden sein, dann den code anpassen!
rückmeldung wäre super, obs jetzt so o.k. ist.
gruss

Sub Text_Import_alle()
Dim zeile As Integer
Dim startflag As Boolean
Dim endeflag  As Boolean
Dim pfadfile As String
Dim fileart As String
Dim myarray(100) As String
Dim y As Integer
Dim done As Boolean
'StartVerzeichnis - bitte anpassen
ChDrive "c:\"
ChDir "\temp"
pfadfile = "c:\temp\"
fileart = "*.txt"
'Start der Verarbeitung
zeile = 1
fn = Dir(pfadfile & fileart)
Do While fn <> ""
startflag = False
endeflag = False
Open fn For Input As #1
Cells(zeile, 1).Value = fn
Do While Not EOF(1)
Line Input #1, strtxt
If Left(strtxt, 15) = "[Running Tasks]" Then endeflag = True
If startflag And Not endeflag Then
' spalte ermitteln über temp. array
done = False
For y = 0 To 99
If myarray(y) = "" Or IsNull(myarray(y)) Then Exit For
If myarray(y) = strtxt Then
done = True
Exit For
End If
Next y
If Not done Then myarray(y) = strtxt    'in array eintragen
Cells(zeile, y + 2).Value = strtxt      ' in sheet eintragen
End If
If Left(strtxt, 20) = "[Installed Software]" Then startflag = True
Loop
Close
zeile = zeile + 1
fn = Dir()
Loop
End Sub

Anzeige
AW: neue Version
28.03.2006 15:39:36
Hans
Genial es funktioniert, er macht mir eine Matrix mit Sortierung
Etwas kleines habe ich noch.
Ich habe ein paar Datenbestände in der Execl Tabelle mit dem Logfile verglichen.
Dabei ist mir aufgefallen das nicht alle Daten abgefüllt wurden.
Die vorherige Version hatte alle Daten Importiert, aber eben nicht als Matrix.
Diese Version macht die Matrix, aber es fehlen Einträge , Beispiel: Logfile 107 Einträge Excel 63 Einträge Differenz 44 Einträge fehlen.
Habe denn [Dim myarray(100) As StringCode] auf 200 und 300 gestellt aber es blieb bei der Differenz
Gruss Hans
AW: neue Version
28.03.2006 16:02:10
ede
hallo hans,
wenn du das makro mehrmals laufen lassen möchtes, mach bitte immer vorher die tabellen leer (leeres Arbeitsblatt)!
die anzahl von myarray(100) ist nur für die sortierung, diesse must du anpassen, wenn
mehr als 100 spalte gebraucht werden. die anzahl der log-fils ist hierbei unwichtig,
da siese in den zeilen dargestellt werden.
stell mal eine exceltabelle hier ab, wenn du das makro laufengelassen hast!
gruss
Anzeige
AW: neue Version
28.03.2006 16:36:31
Hans
Hallo ede
Ich hatte eine leere Tabelle den Wert auf 200 gesetzt und das Script einmal ausgeführt.
Dann habe ich die Spalteneinträge gezählt und verglichen mit der Quelle.
Ich habe bei jedem Eintrag eine Differenz.
Qelle 120 Excel 66 = Differenz 54
Qelle 34 Excel 28 = Dif 6
Qelle 37 Excel 11 = Dif 11 usw.
Bei der Version wo keine Sortierung erstellt wird stimmt die Menge
Gruss Hans
AW: neue Version
28.03.2006 16:41:46
ede
das kann eigentlich nicht sein!
hier nochmal eine version mit überprüfung auf gross/kleinschreibung!

Sub Text_Import_alle()
Dim zeile As Integer
Dim startflag As Boolean
Dim endeflag  As Boolean
Dim pfadfile As String
Dim fileart As String
Dim myarray(100) As String
Dim y As Integer
Dim done As Boolean
'StartVerzeichnis - bitte anpassen
ChDrive "c:\"
ChDir "\temp"
pfadfile = "c:\temp\"
fileart = "*.txt"
'Start der Verarbeitung
zeile = 1
fn = Dir(pfadfile & fileart)
Do While fn <> ""
startflag = False
endeflag = False
Open fn For Input As #1
Cells(zeile, 1).Value = fn
Do While Not EOF(1)
Line Input #1, strtxt
If Left(strtxt, 15) = "[Running Tasks]" Then endeflag = True
If startflag And Not endeflag Then
' spalte ermitteln über temp. array
done = False
For y = 0 To 99
If myarray(y) = "" Or IsNull(myarray(y)) Then Exit For
If myarray(y) = UCase(strtxt) Then
done = True
Exit For
End If
Next y
If Not done Then myarray(y) = UCase(strtxt)    'in array eintragen
Cells(zeile, y + 2).Value = strtxt      ' in sheet eintragen
End If
If Left(strtxt, 20) = "[Installed Software]" Then startflag = True
Loop
Close
zeile = zeile + 1
fn = Dir()
Loop
'SummenZeile bilden
Dim anz As Integer
Dim i As Integer
Cells(zeile, 1).Value = "Anzahl"
For y = 2 To 101
anz = 0
For i = 1 To zeile - 1
If Cells(i, y) <> "" Then anz = anz + 1
Next i
If anz > 0 Then Cells(zeile, y).Value = anz
Next y
End Sub

bin noch 10 min. online! ansonsten morgen wieder
Anzeige
AW: neue Version
28.03.2006 17:01:38
Hans
Hallo ede
Ich glaube Du hast was verwechselt. Das Total in der Spalte im Excel ist Richtig z.B. WinZip ist 80 mal auf den PC's installiert. Das Problem ist, wenn ich im LogFile die Installierte Softwareintäge zwischen [Installed Software] und [Running Tasks] zusammenzähle bekomme ich ein Total der Installierten Software.
Wenn ich dann im Excel nachschaue fehlt dann der Eintrag Visio. Visio fehlt dann auch bei weiteren PC's wo Visio laut LogFile installiert sein sollte. Der Eintrag wurde nicht ins Excel übernommen. Das meinte ich mit der Differenz.
Schöner Abend
Gruss Hans
Anzeige
AW: neue Version
29.03.2006 07:33:04
ede
guten morgen hans,
ich hab dich schon richtig verstanden, aber mein problem ist, das ich den inhalt
und die anzahl der verschiedenen vorkommenden softwareeinträge nicht ermitteln kann!
bedenke bitte, das excel nur 256 spalten kann.
ich habe jetzt das makro nochmal dahingehend geändert, das es auf alle verfügbaren spalten geht und wenn mehr als 254 softwareversionen gefunden werden, dann werden diese in der letzten spalte als zeichenkette verbunden!
ansonsten kann ich ohne beispiele nicht nach fehlern suchen!
bitte auf alle fälle um rückmeldung, obs jetzt funktioniert!
gruss

Sub Text_Import_alle()
Dim zeile As Integer
Dim spalte As Integer
Dim startflag As Boolean
Dim endeflag  As Boolean
Dim pfadfile As String
Dim fileart As String
Dim myarray() As String
Dim y As Integer
Dim done As Boolean
'StartVerzeichnis - bitte anpassen
ChDrive "c:\"
ChDir "\temp"
pfadfile = "c:\temp\"
fileart = "*.txt"
'Start der Verarbeitung
zeile = 1
spalte = 254 'Anzahl Spalten 0..254 (mehr kann Excel NICHT!)
ReDim myarray(spalte)
fn = Dir(pfadfile & fileart)
Do While fn <> ""
startflag = False
endeflag = False
Open fn For Input As #1
Cells(zeile, 1).Value = fn
Do While Not EOF(1)
Line Input #1, strtxt
If Left(strtxt, 15) = "[Running Tasks]" Then endeflag = True
If startflag And Not endeflag Then
' spalte ermitteln über temp. array
done = False
For y = 0 To spalte - 1
If myarray(y) = "" Or IsNull(myarray(y)) Then Exit For
If myarray(y) = UCase(strtxt) Then
done = True
Exit For
End If
Next y
If Not done And y >= spalte Then
MsgBox "Zu wenig Excel-Spalten! "
Cells(zeile, y + 2).Value = Cells(zeile, y + 2).Value & "/" & _
strtxt      ' in sheet eintragen
End If
If Not done And y < spalte Then
myarray(y) = UCase(strtxt)    'in array eintragen
Cells(zeile, y + 2).Value = strtxt      ' in sheet eintragen
End If
End If
If Left(strtxt, 20) = "[Installed Software]" Then startflag = True
Loop
Close
zeile = zeile + 1
fn = Dir()
Loop
'SummenZeile bilden
Dim anz As Integer
Dim i As Integer
Cells(zeile, 1).Value = "Anzahl"
For y = 2 To spalte + 1
anz = 0
For i = 1 To zeile - 1
If Cells(i, y) <> "" Then anz = anz + 1
Next i
If anz > 0 Then Cells(zeile, y).Value = anz
Next y
End Sub

AW: neue Version
29.03.2006 10:27:53
Hans
Hallo ede
So habe diverse Tests gemacht. Das Script von heuet gibt mir den Fehler (Zu Wenig Excel Spalten) zurück. Wie Du es gesagt hast mehr wie 256.
Ich habe dann mit ein zwei Datensätze und dem Script von gestern experimentiert und habe den Fehler gefunden warum diese Differenz entsteht.
1. Es hatte mehrere gleiche Einträge. Da das Script nur einen Eintrag pro Computer setzt, entstand hier mal eine Differenz was so auch richtig ist. Die Ursache der doppelten Einträge kommt aus der Registry wo ausgelesen wird für das Loglife.
2. Bei genau dem 100dersten Eintrag wurden keine weiteren Werte mehr eingetragen.
Ich habe an der falschen Stelle versucht den Wert zu Korrigieren [Dim myarray(200)].
Habe dann die Stelle gefunden und auf 180 erhöht:
' spalte ermitteln über temp. array
done = False
For y = 0 To 180
Da waren dann auch die Fehlende Einträge.
Diese Script von gestern währe die Lösung, wenn er jetzt die Einträge in die Zeilen schreibt schreiben würde, statt wie bisher in die Spalten. Dann hätte man auch nicht mehr das Problem von den max. 256 Spalten.
Noch eine Frage: Habe gesehen das beim dem letzten Script der Wer hier von 200 nicht mehr vorhanden ist [Dim myarray(200) As String]. Was hatte dieser Wert für eine Bedeutung?
Gruss Hans

Sub Text_Import_alle()
Dim zeile As Integer
Dim startflag As Boolean
Dim endeflag  As Boolean
Dim pfadfile As String
Dim fileart As String
Dim myarray(200) As String
Dim y As Integer
Dim done As Boolean
'StartVerzeichnis - bitte anpassen
ChDrive "c:\"
ChDir "\temp"
pfadfile = "c:\temp\"
fileart = "*.txt"
'Start der Verarbeitung
zeile = 1
fn = Dir(pfadfile & fileart)
Do While fn <> ""
startflag = False
endeflag = False
Open fn For Input As #1
Cells(zeile, 1).Value = fn
Do While Not EOF(1)
Line Input #1, strtxt
If Left(strtxt, 15) = "[Running Tasks]" Then endeflag = True
If startflag And Not endeflag Then
' spalte ermitteln über temp. array
done = False
For y = 0 To 180
If myarray(y) = "" Or IsNull(myarray(y)) Then Exit For
If myarray(y) = strtxt Then
done = True
Exit For
End If
Next y
If Not done Then myarray(y) = strtxt    'in array eintragen
Cells(zeile, y + 2).Value = strtxt      ' in sheet eintragen
End If
If Left(strtxt, 20) = "[Installed Software]" Then startflag = True
Loop
Close
zeile = zeile + 1
fn = Dir()
Loop
End Sub

AW: neue Version
29.03.2006 10:40:39
ede
das ist eine array-varible mit 200 moeglichen einträgen!
myarray(0)="WinXP"
myarray(1)="Win2000"
damit merke ich mir, in welche spalte ich beim nächsten logfile die software eintragen muss!
gruss
Anzahl logFiles?
29.03.2006 10:45:02
ede
wieviele logfils musst du einlesen?
wenn es weniger als 255 sind, dann sollten wir das script auf zeilen umstellen!
gruss
AW: Anzahl logFiles?
29.03.2006 11:13:38
Hans
Es sind ca. 350 Computer Log.Files, Aufteilen ist kein Problem, ich kann ein oder zwei Gruppen machen und erstelled dann mehrere Tabellen. Da habe ich auch alle Log.Files in einem Dokument.
Umstellen auf Zeile ist nötig, da es zum Teil mehr wie 256 verschiedene Software Einträge über alles gesehen gibt. Jedes Computer-Model hat noch unterschiedliche Treiber Software die noch dazukommen, an das habe ich nicht gedacht, als ich sage Spaltenabfüllung währe gut. Bei den Zeilen habe ich nicht die max. Grenze.
Ja Bitte umstellen auf Zeilenabfüllung.
Gruss
ZeilenVersion
29.03.2006 11:20:04
ede
na dann auf ein neues, teste mal diesen code.
da sind jetzt zwar die variablennamen nicht ganz richtig, sollte aber funktionieren!
erstmal 1000 zeilen möglich, wenns nicht reicht einfach diese zeile
spalte = 999 'hier Anzahl anpassen
anpassen.
bitte nicht mehr als 255 logfiles in einem LAUF!!!!
rückmeldung wäre super!

Sub Text_Import_alle2Zeilen()
Dim zeile As Integer
Dim spalte As Integer
Dim startflag As Boolean
Dim endeflag  As Boolean
Dim pfadfile As String
Dim fileart As String
Dim myarray() As String
Dim y As Integer
Dim done As Boolean
'StartVerzeichnis - bitte anpassen
ChDrive "c:\"
ChDir "\temp"
pfadfile = "c:\temp\"
fileart = "*.txt"
'Start der Verarbeitung
zeile = 1
spalte = 999 'hier Anzahl anpassen
ReDim myarray(spalte)
fn = Dir(pfadfile & fileart)
Do While fn <> ""
startflag = False
endeflag = False
Open fn For Input As #1
Cells(1, zeile).Value = fn
Do While Not EOF(1)
Line Input #1, strtxt
If Left(strtxt, 15) = "[Running Tasks]" Then endeflag = True
If startflag And Not endeflag Then
' spalte ermitteln über temp. array
done = False
For y = 0 To spalte - 1
If myarray(y) = "" Or IsNull(myarray(y)) Then Exit For
If myarray(y) = UCase(strtxt) Then
done = True
Exit For
End If
Next y
If Not done And y = spalte Then
MsgBox "Die Variable Spalte im Script erhöhen und nochmal laufen lassen! ABBRUCH"
Exit Sub
End If
If Not done Then
myarray(y) = UCase(strtxt)    'in array eintragen
End If
Cells(y + 2, zeile).Value = strtxt      ' in sheet eintragen
End If
If Left(strtxt, 20) = "[Installed Software]" Then startflag = True
Loop
Close
zeile = zeile + 1
fn = Dir()
Loop
End Sub

AW: ZeilenVersion
29.03.2006 11:38:04
Hans
ok nicht mehr wie 255 Log.Files mach ich.
Das Ergebniss sieht sehr gut aus.
Mache jetzt noch ein paar Stichproben ob die Daten auch stimmen.
Rückmeldung wird dann noch folgen, aber erst nach dem Mittagessen.
Gruss
AW: ZeilenVersion
29.03.2006 15:46:32
Hans
Hallo ede
Super es ist genau so wie es sein sollte, es Funktioniert genial.
Die Spaltenzahl musste ich noch erhöhen von 999 auf 1999.
Es ist eine Meldung erschienen wo stand das der Wert erhöt werden soll, genial.
Nochmals Vielen Dank für die Hilfe.
PS.Darf ich nochmals Deine Hilfe in Anspruch nehmen für ein anderes Skript Problem?
Ich habe ein kleines vbs Skript das Funktioniert hat, wollte es wieder Einsetzen.
Leider geht der Skript nicht mehr, eine Fehlermeldung bekomme ich auch nicht.
Meine VBS Kenntnisse halten sich in Grenzen um den Fehler zu erkennen.
AW: ZeilenVersion
29.03.2006 15:56:42
ede
das freut mich, das es jetzt läuft.
zu deinem neuen problem mach am besten ein neuen beitrag auf.
ander können dir bestimmt auch helfen.
bis morgen
gruss
AW: ZeilenVersion
29.03.2006 16:15:07
Hans
Ok kein Problem ich manch einen neuen Beitrag.
Zu dem jetzigen Skript habe ich noch etwas was ich noch vergessen habe.
Kann man auf einem neuen Register eine Zusammenfassung aller vorhandenen Softwareeinträge erstellen. Ich meine das was jetzt für jeden Computer erstellt wurde zusammenfassen auf ein Register. Jeder Datenwert der zwischen [Installed Software] und [Running Tasks] vorkommt nur einmal in die Tabelle eintragen (Zusammenfassung aller vorhandenen Software)
Gruss
AW: ZeilenVersion
30.03.2006 08:31:57
ede
guten morgen,
anbei diesmal eine excel-tabelle, welches das makro enthält!
jetzt wird eine neue excel-mappe erstellt, im ersten tabellenblatt
der import, im zweiten tabellenblatt die zusammenfassung!
https://www.herber.de/bbs/user/32413.xls
rückmeldung wäre super
gruss
AW: ZeilenVersion
30.03.2006 09:01:07
Hans
Hallo ede
Genial der Skript ist absolut Spitze.
Nochmals Vielen Dank für deine Hilfe.
Gruss
Hans
kann es auch anders verwenden
30.03.2006 09:03:52
ede
du kannst es jetzt auch zum auslesen von anderen blöcken verwenden.
solltest du aber jetzt selber hinbekommen!
gruss
AW: kann es auch anders verwenden
30.03.2006 09:15:10
Hans
Ja das ist eine Super Grundlage, auf dem man bauen kann.
Durch ein paar Änderungen lässt sich das Skript weiter verwenden.
Es gibt immer wieder ähnliche Situationen wo man genau so ein Skript benötigt. :-)
Gruss
AW: kann es auch anders verwenden
30.03.2006 11:54:02
Hans
Hallo ede
Ich versuchte dein Skript zu teilen das ich nur die Zusammenfassung über alle Log.Files ( ca. 350) erstellen kann. Habe dann festgestellt das Du zuerst alle PC's einliest und dann von dem Import die Zusammenstellung machst, sehe ich das richtig? Ich bin bei dem Versuch gescheitert nur die Zusammenstellung zu erstellen. Kann man den zweiten Teil im Skript seperatieren?
Gruss
AW: kann es auch anders verwenden
30.03.2006 13:58:24
ede
hallo nochmal,
habe gerade noch mal reingeschaut. natürlich geht das auch, bedeutet aber ein grössere anpassung!
gib mir mal deine mail-adresse, dann mach ich das noch und mail dir die neue version zu!
gruss
AW: kann es auch anders verwenden
30.03.2006 14:23:29
Hans
ewe.help@gmx.ch
AW: neue Version
28.03.2006 16:38:23
ede
hallo nochmal,
also aus meiner sicht sollte es funktionieren.
bin heute nicht mehr online, schaue morgen früh noch mal nach.
bitte nochmal rückantwort ob noch fragen sind!
gruss
neue Version 2
29.03.2006 11:03:56
ede
habe noch einen möglichen fehler bereinigt!
rückmeldung wäre supppppper!

Sub Text_Import_alle()
Dim zeile As Integer
Dim spalte As Integer
Dim startflag As Boolean
Dim endeflag  As Boolean
Dim pfadfile As String
Dim fileart As String
Dim myarray() As String
Dim y As Integer
Dim done As Boolean
'StartVerzeichnis - bitte anpassen
ChDrive "c:\"
ChDir "\temp"
pfadfile = "c:\temp\"
fileart = "*.txt"
'Start der Verarbeitung
zeile = 1
spalte = 254 'Anzahl Spalten 0..254 (mehr kann Excel NICHT!)
ReDim myarray(spalte)
fn = Dir(pfadfile & fileart)
Do While fn <> ""
startflag = False
endeflag = False
Open fn For Input As #1
Cells(zeile, 1).Value = fn
Do While Not EOF(1)
Line Input #1, strtxt
If Left(strtxt, 15) = "[Running Tasks]" Then endeflag = True
If startflag And Not endeflag Then
' spalte ermitteln über temp. array
done = False
For y = 0 To spalte - 1
If myarray(y) = "" Or IsNull(myarray(y)) Then Exit For
If myarray(y) = UCase(strtxt) Then
done = True
Exit For
End If
Next y
If Not done And y >= spalte Then
'MsgBox "Zu wenig Excel-Spalten! "
Cells(zeile, y + 2).Value = Cells(zeile, y + 2).Value & "/" & _
strtxt      ' in sheet eintragen
End If
If Not done And y < spalte Then
myarray(y) = UCase(strtxt)              'in array eintragen
Cells(zeile, y + 2).Value = strtxt      ' in sheet eintragen
End If
If done Then Cells(zeile, y + 2).Value = strtxt      ' in sheet eintragen
End If
If Left(strtxt, 20) = "[Installed Software]" Then startflag = True
Loop
Close
zeile = zeile + 1
fn = Dir()
Loop
'SummenZeile bilden
Dim anz As Integer
Dim i As Integer
Cells(zeile, 1).Value = "Anzahl"
For y = 2 To spalte + 1
anz = 0
For i = 1 To zeile - 1
If Cells(i, y) <> "" Then anz = anz + 1
Next i
If anz > 0 Then Cells(zeile, y).Value = anz
Next y
End Sub

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige