Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Visualisieren von Verknüpfungen

Betrifft: Visualisieren von Verknüpfungen von: FrankT
Geschrieben am: 31.07.2014 09:33:44

Hallo,
eine wahrscheinlich abstruse Frage ;-)
In einem Netzwerk befindliche Excel-Datei (in Excel 2010, 64Bit) benötigt sehr lange Zeit bis zum Öffnen - mitunter kommt es zu einem Absturz. Ich habe mir die Datei angeschaut und mir ist sofort aufgefallen, dass diese vollgestopft wurde mit verknüpften Dateien, die wiederum Verknüpfungen aufweisen - teilweise werden Dateien, die mit "Haupt"-Datei verknüpft sind, auch von anderen, ebenfalls verknüpften herangezogen. Die Verknüpfungen liegen verstreut im Netz, d.h. auch außerhalb des Verzeichnisses der "Haupt"-Datei.
Um dieses Wirrwarr aufzuzeigen kam mir die Idee, dass es sehr gut wäre, wenn dies mittels Diagramm visualiert wird. Ich stelle mir da so eine Art Netzdiagramm vor, dass die Hauptdatei mit allen Verknüpfungen zeigt - inkl. der "Unter"-Verknüpfungen.
M.E. ist hier Excel nicht mehr die beste Wahl und ich benötige solch eine Darstellung, um die Notwendigkeit einer Erneuerung der Datei, z.b. mittels ACCESS zu begründen.
Meine Frage nun: Gibt es Tools, die solch eine Darstellung von Verknüpfungen bildlich darstellen können.
Freue mich über jeden Hinweis.

Lieben Gruß
FrankT

  

Betrifft: AW: Visualisieren von Verknüpfungen von: fcs
Geschrieben am: 31.07.2014 16:37:22

Hallo Frank,

grundsätzlich geeignet ist ja jedes Programm, das Grafiken in Form von Flußdiagrammen darstellen kann.

So zum Beispiel auch Microsoft Powerpoint unter Verwendung der in Office integrierten Formen. Allerdings sollte man dann unter "Seite einrichten" ein entsprechend größeres Seitenformat einstellen.

Eine etwas teurere Variante mit mehr Möglichkeiten wäre Visio von Microsoft .

Ein kostenloses Tool zur Erstellung von strukturierten Diagrammen:
https://wiki.gnome.org/action/show/Apps/Dia?action=show&redirect=Dia
Dia sieht sich als kleine Schwester von Visio und erfordert für optimale Ergebnisse etwas Einarbeitungszeit.

Nachfolgend ein Excel-Makro, mit dem du dir die Verknüpfungen von Dateien zu anderen Dateien in einem Tabellenblatt listen kannst.
Eine Auswertung dieser Liste als Pivot-Bericht liefert eine einfache Übersicht darüber, welche Tabelle mit welchen Verknüpft ist.

Gruß
Franz

Sub MakeDiagram()
  Dim zWs As Worksheet, qWs As Worksheet
  Dim LeseZeit, LeseWert, SchreibZeile, Zeile, Startzeile
  Dim rDiagramm1 As Range, Diagramm1 As ChartObject, Werte As Range
  
  
  Set zWs = Worksheets("Ziel")
  Set qWs = Worksheets("Quelle")
  Startzeile = qWs.UsedRange.Row + 1
  
  zWs.Cells(1, 3).Value = "Zeit" ' Hier werden die Spaltentitel übergeben

  zWs.Cells(1, 4).Value = "Fahr_Brems"
  
  'Call Rahmenlinie_zeichnen
  
  zWs.Range("A1:G1").Font.Bold = True
  LeseZeit = 4
  LeseWert = 8
  SchreibZeile = 2
  
  For Zeile = Startzeile To qWs.UsedRange.Rows.Count ' Zählt die benutzten Zellen und kopiert  _
deren Inhalt in das neue Excel File
  zWs.Cells(SchreibZeile, 3).Value = qWs.Cells(Zeile, LeseZeit).Value
  zWs.Cells(SchreibZeile, 4).Value = qWs.Cells(Zeile, LeseWert).Value
  SchreibZeile = SchreibZeile + 1
  Next
  
  
  zWs.Activate
  Set rDiagramm1 = Application.InputBox("Bereich wählen für die Diagrammkurve", "Eingabefenster" _
, Type:=8)
  Set Diagramm1 = zWs.ChartObjects.Add(rDiagramm1.Left, rDiagramm1.Top, rDiagramm1.Width,  _
rDiagramm1.Height)
  Set Werte = Application.InputBox("Daten", "Eingabefenster", Type:=8)
  
  
  With Diagramm1.Chart ' Daten für Diagramm werden per Inputbox übergeben
  .SetSourceData Source:=Werte
  .ChartType = xlLine
  End With
  
  'Werte aus 2. Spalte für 2. Kurve kopieren
  With Werte.Columns(2)
    .Copy Destination:=.Offset(0, 1)
  End With
End Sub

Sub Liste_Verknüpfungen()
  'Listet die externen Excel-Verknüpfungen von Dateien in einem neuen Tabellenblatt
  Dim wksZiel As Worksheet, ZeileZ As Long
  Dim wkbQuelle As Workbook
  Dim varQuelle As Variant
  Dim arrLinks, varLink As Variant
  Dim StatusCalc As Long
NextDatei:
  With Application.FileDialog(msoFileDialogFilePicker)
    .Title = "Bitte Datei(en) auswählen deren Externe Verknüpfungen ermittelt werden sollen"
    .InitialFileName = "*.xls*"
    .AllowMultiSelect = True
    If .Show = -1 Then
      If wksZiel Is Nothing Then
        Application.Workbooks.Add Template:=xlWBATWorksheet
        Set wksZiel = ActiveSheet
        With wksZiel
          ZeileZ = 1
          .Cells(ZeileZ, 1) = "Pfad\Datei"
          .Cells(ZeileZ, 2) = "Verknüpfungen"
          .Cells(ZeileZ, 3) = "Pfad"
          .Cells(ZeileZ, 4) = "Datei"
          Range("A2").Select
          ActiveWindow.FreezePanes = True
        End With
      End If
    Else
      GoTo Beenden
    End If
    
    With Application
      .EnableEvents = False
      .ScreenUpdating = False
      StatusCalc = .Calculation
      .Calculation = xlCalculationManual
    End With
    
    For Each varQuelle In .SelectedItems
      Set wkbQuelle = Application.Workbooks.Open(Filename:=varQuelle, _
            ReadOnly:=True, UpdateLinks:=False)
      arrLinks = wkbQuelle.LinkSources(Type:=xlExcelLinks)
      If Not IsEmpty(arrLinks) Then
        For Each varLink In arrLinks
          ZeileZ = ZeileZ + 1
          wksZiel.Cells(ZeileZ, 1) = wkbQuelle.FullName
          wksZiel.Cells(ZeileZ, 2) = "'" & varLink
          wksZiel.Cells(ZeileZ, 3) = wkbQuelle.Path
          wksZiel.Cells(ZeileZ, 4) = wkbQuelle.Name
        Next
      Else
          ZeileZ = ZeileZ + 1
          wksZiel.Cells(ZeileZ, 1) = wkbQuelle.FullName
          wksZiel.Cells(ZeileZ, 2) = "keine Verknüpfungen"
          wksZiel.Cells(ZeileZ, 3) = wkbQuelle.Path
          wksZiel.Cells(ZeileZ, 4) = wkbQuelle.Name
      End If
      wkbQuelle.Close savechanges:=False
    Next
    
    With Application
      .EnableEvents = True
      .ScreenUpdating = True
      .Calculation = StatusCalc
    End With
    wksZiel.Columns.AutoFit
  End With
    
  If MsgBox("Weitere Datei(en) auswerten?", vbQuestion + vbYesNo, _
          "Liste externe Vernüpfungen") = vbYes _
          Then GoTo NextDatei
Beenden:
End Sub



  

Betrifft: AW: Visualisieren von Verknüpfungen von: FrankT
Geschrieben am: 01.08.2014 13:34:33

Hallo Franz,
vielen lieben Dank.
Mit der durch dein Makro erzeugten Liste kann ich nun schon einiges anfangen.

Lieben Gruß und nochmals Danke!
Frank


 

Beiträge aus den Excel-Beispielen zum Thema "Visualisieren von Verknüpfungen"