Office Logo  Zurück zur Hauptseite

Externe Bezüge und Verknüpfungen

       Allgemeines über Externe Bezüge und Verknüpfungen

       Verknüpfungen zu anderen Arbeitsmappen

       Externer Bezug auf eine Zelle in einer anderen Arbeitsmappe

       Eingebettete, verknüpfte OLE-Objekte

       Eingebettete Formular-Steuerelemente

 

      Home Zur Hauptseite

To Top

Diese Seite ist in Bearbeitung!

Allgemeines über Externe Bezüge und Verknüpfungen

Auf dieser Seite geht es um das Thema "Externe Bezüge und Verknüpfungen". Lesen Sie hier interessante Hintergrund-Informationen über Bezüge auf Zellen, die sich in anderen Arbeitsmappen befinden sowie über verknüpfte, eingebettete OLE-Objekte.

To Top

 


Verknüpfungen zu anderen Arbeitsmappen

Wenn Sie eine Arbeitsmappe öffnen, in der sich Verknüpfungen zu Informationen in einer anderen Arbeitsmappe befinden, erscheint gewöhnlich die folgende Rückfrage:

Rückfrage "Automatische Verknüpfungen aktualisieren"
Abbildung: Excel-Rückfrage "Automatische Verknüpfungen aktualisieren"

Die obige Meldung erscheint nicht, wenn die Option "Aktualisieren von automatischen Verknüpfungen bestätigen" im Optionen-Dialogfenster von Microsoft Excel deaktiviert ist.

 

Dialogfenster "Verknüpfungen"
Abbildung: Dialogfenster "Verknüpfungen"

 

Probleme bei Verknüpfungen mit CSV-Dateien

Schaltfläche "Quelle öffnen" funktioniert

Schaltfläche "Jetzt aktualisieren" funktioniert nicht -> Fehlermeldung

 

Fehlermeldung "Externe Kopie: hat ein ungültiges Dateiformat"

 

Auswahldialog "Datei nicht gefunden"

 

 

Weitere Informationen

Fehlermeldungen: Externer Zellbezug auf geschlossene CSV-Datei

To Top

 


Externer Bezug auf eine Zelle in einer anderen Arbeitsmappe

Das Wichtigste beim Vergleich mit einem Objekt aus der realen Welt ist, erkennen zu können, wie sich genau der Zugriff auf eine Mappe/Zelle mittels DDE und OLE unterscheidet. Ich benutze hier den Begriff "OLE" einfach mal als Synonym für Links auf Objekte (Mappen, Zellen, UDFs etc.), die sich im Speicher befinden.

DDE (bzw. ein externer Bezug auf eine Mappe/Zelle) ist eine reine Datenverbindung; OLE dagegen kann auch Objekte austauschen. Bei einer extern verknüpften Zelle kann man ausschliesslich ihren Inhalt, quasi das Text-Property (nicht aber das Value-Property!), abfragen. Alle anderen Zelleigenschaften wie FontSize, FontName, NumberFormat, Interior-..., Borders usw. sind nicht zugänglich.

Ein kleiner Exkurs:
Die Unterscheidung zwischen 'Text' und 'Value' ist hier überaus wichtig, weil ein externer Bezug auf eine geschlossene Mappe (z.B. ='D:\ Daten\[Mappe.xls]Tabelle1'!$A$1) maximal 255 Zeichen zurückgeben kann.

Beispiel:

  1. Du musst mal eine irgend eine existierende Mappe öffnen und mehr als 255 Zeichen in eine beliebige Zelle schreiben. Die Mappe geöffnet lassen.
  2. Jetzt legst Du eine neue Mappe an und gibst in einer Zelle einen Bezug auf die in Schritt 1 erwähnte Zelle ein.
  3. Die Zelle mit dem Bezug zeigt wie erwartet den gesamten Zellinhalt, d.h. alle Zeichen (allenfalls Zeilenumbruch einschalten).
  4. Nun die Quellmappe von Schritt 1 schliessen (mit Speichern).
  5. Die Zelle mit dem Bezug müsste immer noch alle Zeichen anzeigen, da noch keine Aktualisierung der Remote-Verknüpfungen stattgefunden hat.
  6. Selektiere die Zelle mit dem Bezug, drücke die Taste F2 und dann ENTER (F9 nützt nichts, da die Zelle keine neuzuberechnende Formel enthält).
  7. Die Zelle zeigt jetzt nur noch die ersten 255 Zeichen der verknüpften Zelle (Nebenbei: Die maximale Anzahl mit DDE übertragbarer Zeichen liegt bei 255).

To Top

 


Eingebettete, verknüpfte OLE-Objekte

 

Excel-Menübefehl "Dokument-Objekt umwandeln"
Abbildung: Menübefehl "Dokument-Objekt umwandeln"

 

Dialogfenster "OLE-Objekt umwandeln"
Abbildung: Dialogfenster "OLE-Objekt umwandeln"

 

Dialogfenster "Quelle wechseln"
Abbildung: Dialogfenster "Quelle wechseln"

 

To Top

 


Eingebettete Formular-Steuerelemente

Public Sub Rechteck1_BeiKlick()
  On Error Resume Next
  ThisWorkbook.Sheets(ThisWorkbook.ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text).Select

End Sub

 

To Top

 


Aufrufen von Makros einer anderen Arbeitsmappe

Es gibt zwei unterschiedliche Vorgehens-Varianten:

1. Aufrufen der Prozedur (Makro) in der anderen Mappe als 'externes' Makro mit "Application.Run <Makroname>". Für <Makroname>' wird der Dateiname und der Name der Sub

Beispiel:

Sub MacheAufruf()
  Application.Run "Personl.xls!MeineSub"
End Sub

   - oder -

2. Einbinden des Programmcodes aus dem Projekt der anderen Mappe mittels Verweis und dann wie üblich aufrufen mit "[Call] <Projektname>.<Modulname>.<Prozedurname>". Diese entspricht dem vor dir in der VBA-Hilfe gefundenen Vorgehen.

Der exakte Aufruf sieht z.B. so aus:


Sub MacheAufruf()
  Application.Run "Personl.xls!MeineSub"
End Sub

Sub MacheAufruf()
  Call XLPersonal.basCommands.ButtonWrapText
End Sub

To Top

Haben Sie Fragen, Anregungen oder Hinweise?
Senden Sie mir ein Mail

Zuletzt aktualisiert am 26.02.2004 / 21:00 Uhr
© 2002-2004 by Philipp von Wartburg, CH-8917 Oberlunkhofen