Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
116to120
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
116to120
116to120
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

An MRR, oder wer mir noch helfen kann!!!

An MRR, oder wer mir noch helfen kann!!!
25.04.2002 11:59:34
Sabrina
Hi!
Du hast mir bei folgendem PRoblem geholfen (MRR):

So sieht ein kleiner Teil meines Programmes aus:
'Const File = "\\mvxz9s01\Sysvol\wwz0sm.rootdom.net\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Microsoft\Windows NT\SecEdit\*.inf"
'Application.ScreenUpdating = False
'Set Paper = Sheet4
'On Error Resume Next
'Workbooks.OpenText File, Other:=True, OtherChar:="="
''Cells.Copy Paper.Range("A1")
'ActiveWorkbook.Close SaveChanges:=False
'Application.ScreenUpdating = True
Dieser Teil soll aus einem Verzeichnis eine *.inf-Datei heraussuchen und in das Excel-Sheet schreiben, so funktioniert es auch, jetzt möchte ich aber das die Suche nach der *.inf Datei ab dem Verzeichnis Policies beginnt, da dann in verschiedenen Unterverzeichnissen *.inf-Dateien enthalten sind!
Wer kann mir helfen!
Nur bitte keine neuen Methoden, ich muss die oben gezeigte Methode benutzen!
Bei weiteren Fragen sende ich auch gerne mein ganzen Skript zu!

Du gabst mir folgende Lösung die auch funktioniert hat:

Hi Sabrina,
versuch's mal wie folgt:

Sub Alle_Auf()
Dim Datei As FileSearch
Dim i As Integer
Const File = "\\mvxz9s01\Sysvol\wwz0sm.rootdom.net\Policies"
Application.ScreenUpdating = False
Set Paper = Sheet4
On Error Resume Next
Set Datei = Application.FileSearch
With Datei
.FileName = "*.inf"
.LookIn = File
.SearchSubFolders = True
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
Workbooks.OpenText .FoundFiles(i), Other:=True, OtherChar:="="
Cells.Copy Paper.Range("A1")
ActiveWorkbook.Close SaveChanges:=False
Next
End If
End With
Application.ScreenUpdating = True
End Sub

So jetzt habe ich nur noch das Problem, das er die 6 Dateien findet und den Inhalt in das Excel-Sheet schreibt, jedoch überschreibt er die Daten und hat am Schluss nur noch den Inhalt der letzten Datei im Excel-Sheet drinnen!
Wie kann ich das lösen, fande gestern einfach keine Lösung!!

Ich hoffe du kannst mir helfen oder der dies auch noch liest!!!

Gruß Sabrina

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Versuch's so:
25.04.2002 20:42:08
Michael Heering
Hallo Sabrina! In Cells.Copy Paper.Range("A1") steht ja das Ziel: nämlich A1. Versuche statt Range("A1") mal Cells(i,1). Dann müßten die Ergebisse untereinander stehen. Gruß Michael Heering
Re: Versuch's so:
26.04.2002 06:30:20
MRR
Oder auch Cells.Copy Paper.Range("A1").End(xlDown).Offset(1, 0) Matthias
Leider nicht MRR
26.04.2002 07:43:04
Sabrina
Bei dieser Variante gibt er gar nichts aus: Const File = "\\mvxz9s01\Sysvol\wwz0sm.rootdom.net\Policies" Application.ScreenUpdating = False Set Paper = Sheet4 'On Error Resume Next Set Datei = Application.FileSearch With Datei .Filename = "GptTmpl.inf" .LookIn = File .SearchSubFolders = True l = 0 If .Execute > 0 Then For i = 1 To .FoundFiles.Count Workbooks.OpenText .FoundFiles(i), Other:=True, OtherChar:="=" Do l = l + 1 s = Cells(l, "A") If Len(s) = 0 Then Cells(l, "A").Activate Exit Do End If Loop While l < 65535 Cells.Copy Paper.Range("A1").End(xlDown).Offset(1, 0) ActiveWorkbook.Close SaveChanges:=False Next End If End With Application.ScreenUpdating = True Und bei dieser: Const File = "\\mvxz9s01\Sysvol\wwz0sm.rootdom.net\Policies" Application.ScreenUpdating = False Set Paper = Sheet4 'On Error Resume Next Set Datei = Application.FileSearch With Datei .Filename = "GptTmpl.inf" .LookIn = File .SearchSubFolders = True l = 0 If .Execute > 0 Then For i = 1 To .FoundFiles.Count Workbooks.OpenText .FoundFiles(i), Other:=True, OtherChar:="=" Do l = l + 1 s = Cells(l, "A") If Len(s) = 0 Then Cells(l, "A").Activate Exit Do End If Loop While l < 65535 Cells.Copy Paper.Cells(i, 1) ActiveWorkbook.Close SaveChanges:=False Next End If End With Application.ScreenUpdating = True Gibt er mir nur die Daten der ersten Datei aus!!!
Anzeige
Nachfrage
26.04.2002 08:54:19
Martin Beck
Hallo Sabrina, durch die ganzen Verschachtelungen, IF-Bedingungen und Schleifen ist es etwas schwierig nachzuvollziehen, was das MAkro genau leisten soll. Kannst Du das nochmal beschreiben? Außerdem fällt mir auf, daß gegenüber dem ursprünglichen Makro von MRR die Zeile .FileName = "*.inf" in .Filename = "GptTmpl.inf" Es werden also nicht alle, sondern nur eine bestimmte INF-Datei gesucht. Wenn die nur einmal vorkommt, kann das Makro auch nur einen Eintrag generieren. Gruß Martin Beck
Re: Nachfrage
26.04.2002 09:03:20
Sabrina
Also, diese Datei gibt es mehrmals in dem Verzeichnis: "\\mvxz9s01\Sysvol\wwz0sm.rootdom.net\Policies" Und ich möchte nun das er mir alle Daten in den Dateien ausliest in das Excel Sheet, wie gesagt es besteht einfach das Problem das er mir entweder alles überschreibt, die Daten der ersten oder die letzten Datei anzeigt!Ich will doch einfach nur den Inhalt der Dateien GptTmpl.inf in meinem Excel Sheet sehen!!! So hier ist jetzt nochmal das ganze Teilprogramm! Const File = "\\mvxz9s01\Sysvol\wwz0sm.rootdom.net\Policies" Application.ScreenUpdating = False Set Paper = Sheet4 'On Error Resume Next Set Datei = Application.FileSearch With Datei .Filename = "GptTmpl.inf" .LookIn = File .SearchSubFolders = True l = 0 If .Execute > 0 Then For i = 1 To .FoundFiles.Count Workbooks.OpenText .FoundFiles(i), Other:=True, OtherChar:="=" Do l = l + 1 s = Cells(l, "A") If Len(s) = 0 Then Cells(l, "A").Activate Exit Do End If Loop While l < 65535 Cells.Copy Paper.Cells(i, 1) ActiveWorkbook.Close SaveChanges:=False Next End If End With Application.ScreenUpdating = True Jetzt erläutere ich dir nochmal die einzelnen schleifen und was sie machen: If .Execute > 0 Then For i = 1 To .FoundFiles.Count Workbooks.OpenText .FoundFiles(i), Other:=True, OtherChar:="=" Der Teil gibt die Anzahl der gefundenen Dateien aus, i ist hier jeweils die Datei 1-x! Do l = l + 1 s = Cells(l, "A") If Len(s) = 0 Then Cells(l, "A").Activate Exit Do End If Loop While l < 65535 Und der Teil schaut nach, wenn er die ersten Daten der ersten Datei eingefügt hat, wann die erste leere Zeile wieder erscheint, da funktioniert auch alles, denn im ersten Fall ist l=34 und jetzt soll er dann in ZEile 35 die Daten der DAtei 2 schreiben und war irgendwie mit dieser ZEile: Cells.Copy Paper.Cells(i, 1) Aber das funktioniert einfach nicht, da hänge ich jetzt schon seit Mittwoch dran!!!!
Anzeige
Lösungsvorschlag
26.04.2002 10:03:31
Martin Beck
Hallo Sabrina, da gibt's gleich mehrere Probleme. Du verwendest die Variable I, um die erste freie Zelle zu ermitteln. In der Copy-Anweisung setzt Du dann allerdings die Variable i ein, das kann nicht funktionieren. Außerdem bin ich mir nicht sicher, ob Du die Workbooks korrekt referenzierst. Wenn der Copy-Befehl ausgeführt wird, sind ja 2 Workbooks offen und Du mußt aufpassen, wohin Du kopierst. Cells.Copy Paper.Cells(i, 1) versucht m.E. im aktiven Workbook in das Blatt paper zu speichern. Das aktive Workbook ist aber wohl die INF-Datei. Außerdem ist die Art und Weise, wie Du die nächste freie Zelle bestimmst, unnötig kompliziert. Lange Rede kurzer Sinn, versuch's mal so: Application.ScreenUpdating = False paper = "Sheet4" 'On Error Resume Next Set Datei = Application.FileSearch With Datei .FileName = "GptTmpl.inf" .LookIn = File .SearchSubFolders = True x = 1 If .Execute > 0 Then MsgBox .FoundFiles.Count For i = 1 To .FoundFiles.Count Workbooks.OpenText .FoundFiles(i), Other:=True, OtherChar:="=" ActiveSheet.UsedRange.Copy ThisWorkbook.Worksheets(paper).Cells(x, 1) x = ThisWorkbook.Worksheets(paper).Cells(x, 1).End(xlDown).Row + 1 ActiveWorkbook.Close SaveChanges:=False Next i End If End With Application.ScreenUpdating = True Gruß Martin Beck
Anzeige
Re: Lösungsvorschlag
26.04.2002 10:12:01
Sabrina
Da hast du recht, ist mir gar nicht so genau aufgefallen! Aber dein Programm läuft auch nicht, also es läuft schon, aber es gibt gar keine Daten aus! Das Excel Sheet ist leer! Aber er zählt die richtige Anzahl an Dateien!! Na, noch eine Idee????
Re: Lösungsvorschlag
26.04.2002 10:53:51
Martin Beck
Hallo Sabrina, hast Du in Deiner Datei ein Tabellenblatt, das "Sheet4" heißt? Wenn nicht, lege es mal an, dorthin sollen die Daten nämlich kopiert werden. Gruß Martin Beck
Re: Lösungsvorschlag
26.04.2002 11:00:11
Sabrina
*ups* das war es!!!!! Ich hatte ein Sheet4, nur hätte ich anstatt Sheet4, Machine Configuration sagen müssen!!!! *g* *halbärger*

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige