Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Einfacher Zellbezug greift auf geschlossene Arbeitsmappe zu

Gruppe

Change

Problem

Wie kann ich durch Eingabe eines einfachen Zellbezugs - =F17 - auf eine geschlossene Arbeitsmappe zugreifen, deren Name in der ersten Zeile der Eingabespalte steht?

Lösung
Geben Sie den Ereigniscode in das Klassenmodul des Arbeitsblattes ein.

ClassModule: Tabelle2

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim sPath As String, sFile As String, sFormula As String
   If Target.Row <> 3 Then Exit Sub
   If IsEmpty(Target.Offset(-1, 0)) Or _
      IsEmpty(Target.Offset(-1, 0)) Then Exit Sub
   sPath = Range("B6").Value & "\"
   sFile = Cells(1, Target.Column).Value & ".xls"
   If Dir(sPath & sFile) = "" Then
      Beep
      MsgBox "Datei wurde nicht gefunden!"
      Exit Sub
   End If
   sFormula = "'" & sPath & "[" & sFile & "]"
   sFormula = sFormula & Cells(2, Target.Column).Value & "'!"
   sFormula = sFormula & Cells(3, Target.Column).Value
   With Cells(4, Target.Column)
      .Formula = "=" & sFormula
      .Value = .Value
   End With
End Sub