ich folgende Prozedur erstellt:
Private Sub CommandButton1_Click()
Dim meldung As Variant
Dim originalDatei As String
Dim AnzahlSheets As Long
Dim Datei As Variant
Dim b As Long, s As Long, z As Long
Dim AnzahlVerlinkungen As Variant
Datei = Application.GetOpenFilename("Excel Dateien (*.xls), *.xls", , "Bitte wählen Sie die _
Exceldatei aus!")
If Right(Datei, 4) = ".xls" Then
' Datei öffnen
Workbooks.Open Datei
originalDatei = ActiveWorkbook.Name
ActiveWorkbook.Worksheets(1).Activate
' Anzahl der Tabellenblätter der Datei
AnzahlSheets = Sheets.Count
aLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(aLinks) Then
For i = 1 To UBound(aLinks)
MsgBox "Link " & i & ":" & Chr(13) & aLinks(i)
Next i
End If
AnzahlVerlinkungen = i - 1
If AnzahlVerlinkungen = -1 Then
meldung = MsgBox("Eigenschaften der ausgewählten Datei: " & Chr(13) & Chr(13) & _
_
"Dateiname: " & originalDatei & Chr(13) & _
"Anzahl Tabellenblätter: " & AnzahlSheets & Chr(13) & _
"Anzahl Verknüpfungen: keine", vbInformation, "Ausgabe")
Else
meldung = MsgBox("Eigenschaften der ausgewählten Datei: " & Chr(13) & Chr(13) & _
_
"Dateiname: " & originalDatei & Chr(13) & _
"Anzahl Tabellenblätter: " & AnzahlSheets & Chr(13) & _
"Anzahl Verknüpfungen: " & AnzahlVerlinkungen & Chr(13) & Chr(13) & _
"Auflistung der unterschiedlichen Verknüpfungen: " & Chr(13), _
vbInformation, "Ausgabe")
End If
Workbooks(originalDatei).Close (False)
End If
On Error Resume Next
End
End Sub
Es funktioniert das, was das Programm an und für sich auch tun soll, aber es gibt noch drei Problemstellen:
1. Bei den Dateien, die geöffnet werden, wird nach der Aktualisierung von Verlinkungen gefragt. Diese Abfrage soll generell verneint werden, da die Dateien ja nicht verändert werden sollen, sondern nur analysiert. Wie kann ich diese Abfrage unterbinden?
2. Die ausgelesenen Links werden jetzt nacheinander in jeweils einer separaten MsgBox geschrieben. Ich würde es gern als eine Liste in der MsgBox im Else-Bereich aufgelistet untereinander angezeigt haben ist dies möglich? Wenn ja, wie bekomm ich das hin?
3. Bei den ausgelesenen Links wird als Anfang die Serverbezeichnung und danach die ganzen Ordner,
angezeigt. In den Excelverlinkungen beginnen diese aber mit den Laufwerksbezeichnungen (z. B. H:\...). Ich brauch die Anzeige der Links aber genau nach dem, was in Excel tatsächlich angezeigt wird, denn durch das Programm sollen letztendlich die Stellen gefunden werden, wo Laufwerksabkürzungen am Anfang stehen getrennt von denen, die mit der Serverbezeichnung beginnen. Wieso gibt mir VBA das so aus, obwohl in Excel etwas anderes steht?
Kann mir vielleicht jemand helfen?
Gruss
Andreas