Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1764to1768
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
Inhaltsverzeichnis

VBA Verbindungen

VBA Verbindungen
12.06.2020 07:01:54
Tobias
Moin Leute,
ich würde gerne Dynamisch die Verbindungen einer Excel-Datei ändern sobald ich einen Wert innerhalb der Exceldatei ändere.
Beispiel: Im Ordner C: Dokumente/Kalenderwoche befinden sich meine Excel Dateien "KW19" bis "KW21".
Aus der Datei "KW21" erstelle ich eine neue Datei "KW22" die die Verbindungen zu "KW20" und "KW19" hat.
Die alte Verbindung "KW20" soll durch die neue "KW21" ersetzt werden und die alte Verbindung "KW19" soll durch die neue Verbindung "KW20" ersetzt werden. Das ganze soll dynamisch ablaufen und anhand eines Wertes zb. der Änderung eines Wertes in der Excel-Datei von statten gehen.
Falls jemand Lösungen oder Tipps hat welche funktionen man sich dort mal anschauen könnte, demjenigen wäre ich sehr dankbar.

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Verbindungen
12.06.2020 07:51:36
ede
Hallo Tobias,
prinzipiell solltest Du es mir der Funktion indirekt() realisieren können, zur weiteren Unterstützung ist ein Beispiel angebracht.
gruss
ede
AW: VBA Verbindungen
12.06.2020 08:24:07
ralf_b
D5 ist die Zelle in der vorherigen datei
)+2;2)-1; mach aus -1 eine +1 und du gehst eine KW weiter
die dateiendung müßtest du noch anpassen
es ist ungetestet, hab es aus einem alten projekt abgekupfert und angepasst.
INDIREKT(VERKETTEN("'[KW";TEIL(ZELLE("dateiname");FINDEN("KW";ZELLE("dateiname"))+2;2)-1;".xlsm]";"'!D5"))
AW: VBA Verbindungen
12.06.2020 08:37:37
ralf_b
ok, du hast in einer zelle die KW bereits,dann
INDIREKT(VERKETTEN("'[KW";B2-1;".xlsx]";"'!B2"))
Anzeige
AW: VBA Verbindungen
12.06.2020 08:44:32
ede
mit führender NULL bei einstelliger KW
INDIREKT(VERKETTEN("'[KW";Text(B2-1;"00");".xlsx]";"'!B2"))
gruss
ede
teufelskerl :) owT
12.06.2020 08:47:05
ralf_b
AW: teufelskerl :) owT
12.06.2020 12:17:50
Tobias
Erst mal euch beiden vielen dank für den Code.
Leider verstehe ich nicht komplett wie ich den Code zu lesen und zu nutzen habe.
Ich habe anbei meine Interpretation vom Code verlinkt.
Hierbei ist meine Idee, dass in B1 - C3 die Namensgebung erstellt wird um die Dateinamen in F2 - G2 zu generieren.
A6 - B8 sind nur Testwerte um später zu schauen ob die Verlinkungen funktionieren.
Als nächstes müsste ich die Datei in .xlsm ändern und ein Makro finden, welches die Namen in F2 - G3 nutzt um die Verbindungen zu ändern?
https://www.herber.de/bbs/user/138233.xlsx
PS: Datei wurde von KW23 zu 138233 umgeändert
Anzeige
AW: teufelskerl :) owT
12.06.2020 13:12:30
Tobias
Ich konnte einen Code für den Verbindungswechsel der Dateien finden: Leider funktioniert der Code nicht, weiß einer woran das liegen könnte?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$J$1" And Target  "" Then
Makro1
End If
End Sub
Private Sub Makro1()
ActiveWorkbook.ChangeLink "C:\Users\tobias\Desktop\Temp\"Range("G2"), _ "C:\Users\tobias\ _
Desktop\Temp\"Range("F2"), xlExcelLinks
ActiveWorkbook.ChangeLink "C:\Users\tobias\Desktop\Temp\"Range("G3"), _ "C:\Users\tobias\ _
Desktop\Temp\"Range("F3"), xlExcelLinks
End Sub

Anzeige
AW: linkfehler
12.06.2020 14:42:44
ralf_b
da fehlt der name der exceldatei
AW: linkfehler
12.06.2020 15:08:33
Tobias
Hey Ralf,
du meinst bei:
ActiveWorkbook.ChangeLink "C:\Users\tobias\Desktop\Temp\"Range("G2")
für "G2" ?
Ich habe den Code noch einmal geändert in:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$J$1" And Target  "" Then
Ändern
End If
End Sub

Private Sub Ändern()
ActiveWorkbook.ChangeLink Name:=Worksheets("Tabelle1").Range("G2").Value = i _
, NewName:=Worksheets("Tabelle1").Range("F2").Value = i, Type:=xlExcelLinks
ActiveWorkbook.ChangeLink Name:=Worksheets("Tabelle1").Range("G3").Value = i _
, NewName:=Worksheets("Tabelle1").Range("F3").Value = i, Type:=xlExcelLinks
End Sub
Für G2 ist der Wert z.B.:
C:\Users\tobias\Desktop\Temp\KW23.xlsm
Für F2:
C:\Users\tobias\Desktop\Temp\KW24.xlsm
leider funktioniert es immer noch nicht.
Anzeige
AW: linkfehler owT
12.06.2020 15:30:45
ralf_b
lies mal etwas über pfadangaben nach. mir scheint das könnte was mit den eckigen Klammern zu tun haben
AW: linkfehler owT
12.06.2020 15:40:54
Tobias
Hallo Ralf,
danke für die Bemühungen aber ich denke ich gebe auf, weiß leider nicht mehr weiter, trotzdem vielen Dank.
AW: ich bin hier raus owT
12.06.2020 17:43:59
ralf_b
woher kommt denn das = i?
und du hast den befehl nicht verstanden. in so einem Fall sollte man das googlen und nicht irgendwas hierein stellen und hoffen das jemand was draus macht.
der befehl ersetzt den ersten link durch den zweiten im ganzen blatt wo er auftritt. so lese ich zumindest die hilfe bei microsoft zu finden unter https://docs.microsoft.com
ich bin dann mal raus, du warst nicht gewillt den ersten tip umzusetzen und für den zweiten reicht es nicht ansatzweise. sorry, aber so nicht.
Anzeige
AW: VBA Verbindungen
12.06.2020 08:26:43
Tobias
Moin ede,
hab dank für die schnelle Antwort. Ich versuche mal das Beispiel noch weiter auszuführen.
Ich habe in einem Ordner alle meine wichtigen Excel-Dateien mit dem Namen "KWXX" (KW für Kalenderwoche). Für jede KW erstelle ich eine Datei die Daten aus den vorherigen Wochen nutzt. Habe ich die Datei KW23, soll sich diese Daten aus der KW22 und der KW21 ziehen. Da ich zum anlegen der KW23 die Datei der Vorwoche (KW22) nutze, muss ich die alten Verbindungen KW21 zu KW22 und KW20 zu KW21 aktualisieren.
Da dies derzeit händisch passiert würde ich das gerne automatisieren. In den Dateien steht in Zelle [B2] in der Mappe "Übersicht" die Kalenderwoche. Würde ich jetzt Zelle [B2] von 22 auf 23 ändern, soll Excel automatisch durch Enter oder einem Hotkey die Verbindungen ändern.
In der darauffolgenden Woche müsste dann entsprechend die Verbindungen für die Datei KW24 von KW22 zu KW23 und KW21zu KW22 geändert werden.
Anzeige
AW: VBA Verbindungen
12.06.2020 08:31:11
ede
Hallo nochmal,
das hab ich schon verstanden was du machen willst, einen Ansatz hat die 'ralf_b' im Vorbeitrag schon gegeben, Beispieldatei wäre angebracht.
Gruss
ede

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige