Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
480to484
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
480to484
480to484
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Verknüpfungen verschiedener Mappen

Verknüpfungen verschiedener Mappen
13.09.2004 08:54:52
Rico
Guten Morgen liebe Experten
ich habe mal so eine Frage die mir übers Wochenende gekommen ist;
Zuerst muss ich aber die Voraussetzungen erklären die meiner Idee zugrunde liegen:
1. Auf dem Server (vom Client aus aufm Laufwerk "G") liegen Excel-Mappen gespeichert die per VBA automatisch den Namen des Auftrages bekommen (sprich Auftrags-Nummern / "032433" zum Beispiel)
2. Diese Auftrags-Mappen beinhalten unter anderem zwei Kalkulationsblätter in denen verschiedene Werte intresant für andere Excel-Mappen sind.
NUN meine Idee:
Ich würde in einer Excel-Mappe ein Worksheet erstellen und dort in Spalte A die Auftrags-Nummer eingeben sodass zum Beispiel in Spalte B dann die Info aus der jeweiligen Arbeitsmappe automatisch "gesogen" und eingefügt wird.
Genauer gesagt: In der Mappe "Übersicht" geb ich in A1 zum Beispiel die Auftrags-Nummer "032433" ein. Nun sollte in B1 der Wert der Zelle G14 aus der Mappe "032433" die aufm Server gespeichert ist (in dieser Mappe hat es etwa 10 Arbeitsblätter... die gewünschte Info stammt aus dem Blatt "Kalkulation")
Wenn ich alles aus einer Mappe entnehmen würde, könnte ich das ja theoretisch mit dem SVERWEIS machen... wie mach ich das aber, wenn die Quelldatei ständig ne andere ist?
Bin für jeden hilfreichen Tip dankbar...
Gruss Rico

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verknüpfungen verschiedener Mappen
WernerB.
Hallo Rico!
1 .Die nachstehende Funktion gehört in ein normales Standard-Modul.
2. Das nachstehende Macro gehört in das Modul des Tabellenblattes, in dem die Auftragsnummer ein- und der gesuchte Wert ausgegeben werden soll.
Noch zwei Anmerkungen zum Makro:
Den Pfad musst Du natürlich anpassen.
Die Syntax "R14C7" (= Row 14, Column 7; das entspricht der Zelladresse "G14") muss so eingehalten werden.
Function xl4Value(strParam As String) As Variant
xl4Value = ExecuteExcel4Macro(strParam)
End Function

Private Sub Worksheet_Change(ByVal Target As Range)
Dim strSource As String
If Target.Column <> 1 Then Exit Sub
Range("B" & Target.Row).ClearContents
If Target.Cells.Count <> 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
strSource = "'G:\TEMP\TRALALA\[" & Target.Text & ".xls]Kalkulation'!R14C7"
Range("B" & Target.Row).Value = xl4Value(strSource)
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Anzeige
Danke mal im Voraus.. Rückmeldung folgt...
13.09.2004 09:36:05
Rico
das ging ja schnell ;-)
danke im Voraus.. ich komm jetzt grad nicht dazu das zu testen... werd ich heute so schnell als möglich machen und Rückmeldung geben obs klappt.
Gruss Rico
....geht nicht... was mach ich falsch?!?
13.09.2004 14:22:58
Rico
Hallo nochmals ;-)
habs jetzt reinkopiert und den Code folgendermassen angepasst:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim strSource As String
If Target.Column <> 1 Then Exit Sub
Range("B" & Target.Row).ClearContents
If Target.Cells.Count <> 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
strSource = "'G:\Spezial\Auftrags-Dossiers\Aufträge\[" & Target.Text & ".xls]Kalkulation'!R5C2"
Range("B" & Target.Row).Value = xl4Value(strSource)
End Sub

den Pfad hab ich aus der Eigenschaft der Datei kopiert und die Zelle ist B2 (die Zelle is verbunden mit C2.. ob das evt. zu Koruptionen führt? >> Fehlermeldung gibts keine).
Die Funktion hab ich in ein Modul beim Blatt wo ich die Eingabe mache reinkopiert und den Code bei beiden Blättern in ein normales Modul... aber es tut sich nix.. gibt aber auch keinen Fehler.
Ich kenn mich da ja nicht aus und weiss auch nicht ob Du die Idee verstanden hast die ich verfolge; die Angaben sind als Beispiel zu verstehen.. ich will diese Funktion in ein Gesamt-Projekt einarbeiten damit ich Excel-Blätter hab die als "Datenbank" dienen und andere die andere Funktionen haben und mit Infos aus den "Datenbanken" gespeist werden sollten mittels "Aufruf mit Auftrags-Nummer"... in der Art eines SVERWEISes...
tut mir leid, wenn ich mich nicht "fach-chinesisch" richtig ausdrücke.. ist halt schwierig als Laie die richtigen Beschreibungen zu finden.
Merci falls noch was kommen sollte an Tips...
Gruss Rico
Anzeige
AW: ....geht nicht... was mach ich falsch?!?
WernerB.
Hallo Rico,
die Funktions-Code gehört in ein normales Standard-Modul;
das Makro ("Private Sub Worksheet_Change(ByVal Target As Range)") gehört in das Tabellenblatt-Modul.
Du hast als Quelladresse "R5C2" geschrieben, dies bedeutet "B5"; in Deiner Anfrage hast Du hierzu eine andere Angabe gemacht.
Verbundene Zellen im Zusammenhang mit Makros können Ärger verursachen; da mir Deine Datei nicht vorliegt, kann ich aber nicht beurteilen, ob das auch in Deinem Fall so ist.
Mit meinem Vorschlag kann man keinen SVERWEIS ersetzen, jedoch einen Wert aus einer geschlossenen Datei auslesen, wenn Pfad, Dateiname, Blattname und Zelladresse der geschlossenen Quelldatei bekannt sind.
Gruß
WernerB.
Anzeige
Erklärung...
13.09.2004 16:43:20
Rico
Hallo Werner
danke fürs Feedback.
Also dass mit dem geänderten Zellbezug war mir schon klar.. drum hab ichs auch geändert.
Frage: Als Pfad geb ich den Ordner an, in welchem die vielen verschiedenen Auftrags-Excel-Blätter gespeichert sind. oder?
merci und Gruss
Rico
AW: Erklärung...
WernerB.
Hallo Rico,
in der nachstehenden Zeile müssen alle Weg-Informationen über die auszulesende Datei enthalten sein:
strSource = "'G:\Spezial\Auftrags-Dossiers\Aufträge\[" & Target.Text & ".xls]Kalkulation'!R5C2"
Pfad: G:\Spezial\Auftrags-Dossiers\Aufträge\
Dateiname: [" & Target.Text & ".xls] ("TargetText " ist die Eingabetext, den Du in einer beliebigen Zelle in der Spalte "A" Deiner Zieldatei machst)
Blattname: Kalkulation
Zelladresse: R5C2 (= "B5")
Mit der nachstehenden Anweisung werden diese Informationen an die Funktion übergeben, die den Wert ausliest; dieser Wert wird dann in die Spalte "B" Deiner Zieldatei in der selben Zeile eingetragen, in der Du in der Spalte "A" den Dateinamen (z.B. "123456" – ohne Anführungszeichen) eingetippt hast.
Range("B" & Target.Row).Value = xl4Value(strSource)
Wenn Funktion und Makro in den richtigen Modulen stehen (ich hoffe, Du kennst den Unterschied zwischen einem "normalen Standard-Modul" und einem "Tabellenblatt-Modul"), läuft der ganze Prozess automatisch los, sobald Du den Dateinamen in der Spalte "A" eingetippt hast.
Gruß
WernerB.
Anzeige
Vielen Dank
14.09.2004 10:35:51
Rico
Hallo Werner
Danke vielmals für die ausführliche Erklärung!! Das ist sehr lehrreich für mich und ich bin froh, dass es so hilfsbereite Menschen wie Dich gibt die einem auch den Code zu entschlüsseln helfen... ist mir sehr viel lieber als blos irgendein Code zu kopieren und nicht zu wissen was damit genau gesteuert wird.
Gruss aus der verregneten Schweiz ;-(
Rico
AW: Vielen Dank
WernerB.
Hallo Rico,
vielen Dank für das Feedback.
Ich hoffe, Du kommst jetzt mit Makro und Funktion zurecht.
Gruß
WernerB.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige