Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
872to876
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
872to876
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Direktfenster oder TXT-Datei? Problem damit.

Direktfenster oder TXT-Datei? Problem damit.
24.05.2007 10:56:00
Andreas
Hallo,
ich habe zwei Prozeduren geschrieben, durch welche ein Ordner mit all seinen Exceldateien durchsucht wird. Dabei werden in das Direktfenster alle vorkommenden Verknüpfungen (siehe auch Bearbeiten -> Verknüpfungen…) geschrieben. Jetzt hab ich aber mitbekommen, dass das Direktfenster nur eine begrenzte Anzahl von Zeilen anzeigt. In den Fällen, wo mehr Verknüpfungen vorkommen, werden dann immer schon die ersten wieder gelöscht.
Kann man das irgendwo einstellen, dass mehr Zeilen angezeigt werden sollen? Wenn nicht, hab ich mir gedacht, das Problem über eine TXT-Datei zu lösen und die Verknüpfungen da hinein zu schreiben. Meine Versuche dazu sind aber alle gescheitert, denn das funktioniert in der rekursiven Prozedur nicht so leicht. Oder ich stell mich einfach zu dumm an!
Kann mir vielleicht jemand weiterhelfen?
Nachfolgend die beiden Prozeduren:
Option Explicit
Dim z As Long
' Rekursive Prozedur

Public Sub xDirFile(xpath As String)
Dim xa As Long
Dim xDir As String
ReDim xt(0) As String
Dim xi As Long
Dim xAc As String
Dim wb As Workbook
Dim aLinks
Dim i As Integer
Dim newlink As String
xDir = Dir(xpath & "\*.*", vbNormal Or vbReadOnly Or vbHidden _
Or vbSystem Or vbVolume Or vbDirectory Or vbArchive)
xa = 0
If Len(xDir) > 0 Then
xt(0) = xDir
End If
Do While Len(xDir) > 0
xDir = Dir
If Len(xDir) > 0 And Not xDir = "." And Not xDir = ".." Then
xa& = xa& + 1
ReDim Preserve xt(xa)
xt(xa) = xDir
End If
Loop
On Error GoTo Schleife
For xi& = 0 To xa&
If Len(xt(xi)) = 0 Then
Exit For
ElseIf Not xt(xi) = "." And Not xt(xi) = ".." Then
If Len(Dir$(xpath$ & "\" & xt$(xi&), vbNormal Or vbReadOnly Or vbHidden _
Or vbSystem Or vbVolume Or vbDirectory Or vbArchive)) > 0 Then
If Not (GetAttr(xpath & "\" & xt(xi)) And vbDirectory) = vbDirectory Then
'wenn Exceldatei
If UCase(Right(xt(xi), 3)) = "XLS" Then
Set wb = Workbooks.Open(xpath & "\" & xt(xi), 0, True)
aLinks = wb.LinkSources(xlExcelLinks)
If Not IsEmpty(aLinks) Then
' Zählvariable -> kann weggelassen werden
z = z + 1
For i = 1 To UBound(aLinks)
' Ausgabe der verwendeten Links im Direktfenster
Debug.Print aLinks(i)
Next i
End If
wb.Close savechanges:=False
Set wb = Nothing
End If
Else
Call xDirFile(xpath & "\" & xt(xi))
End If
End If
End If
Schleife:
Next xi&
On Error GoTo 0
End Sub


' Aufrufprozedur zum Start
Sub test()
Application.ScreenUpdating = False
z = 0
' der hier angegebene Pfad wird mit all seinen Unterpfaden durchgegangen
xDirFile "C:\Test"
Application.ScreenUpdating = True
' Ausgabe der Zählvariable im Direktfenster
Debug.Print z
End Sub


Gruss
Andreas

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Direktfenster oder TXT-Datei? Problem damit.
24.05.2007 11:44:06
Philipp
Hallo Andreas
Das Direktfenster kann max. 200 Zeilen anzeigen. Mehr geht nicht (auch nicht einstellbar).
In eine Textdatei schreiben geht am einfachsten so:
Anstelle der Zeile
Debug.Print aLinks(i)
verwende
Open "C:\Datei.txt" For Append As #1
Print aLinks(i)
Close #1
Wichtig ist das Öffnen mit "For Append". Das ständige Öffnen und Schliessen der Textdatei benötigt zwar ein bisschen Zeit, dafür aber funktioniert es problemlos.
Philipp von Wartburg
www.xlam.ch

AW: Direktfenster oder TXT-Datei? Problem damit.
24.05.2007 11:51:00
Oberschlumpf
Hi Andreas
Versuch mal so:
(habe jetzt nur die For/Next-Schleife aus deinem Code hier eingefügt - du musst deinen Code entsprechend anpassen)

Open ThisWorkbook.Path & "\links.txt" For Append As #1
For i = 1 To UBound(aLinks)
' Ausgabe der verwendeten Links in eine Textdatei
Print #1, aLinks(i)
Next i
Close


Konnte ich helfen?
Ciao
Thorsten

Anzeige
Danke
24.05.2007 12:44:00
Andreas
Danke euch beiden, das hat mir wirklich weitergeholfen.
Gruss
Andreas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige