Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1612to1616
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

Schleife externe Verknüpfung

Schleife externe Verknüpfung
13.03.2018 15:00:39
Mario
Hallo liebes Forum,
ich habe ein kleines Problem, das ich mit meinen bescheidenden VBA Kenntnissen leider nicht lösen kann und hoffe hier Hilfe zu finden. Es geht um folgendes, ich habe zwei Arbeitsmappen mit gleich benannten Arbeitsblättern. Immer wenn diese den gleichen Namen haben sollen externe Verknüpfungen, in dem einen (wbDestination) zum anderen (wbSource), erstellt werden. Der Abgleich klappt, nun hätte ich gerne, was ich nicht hinbekomme, das auch die externen Verknüpfungen per Schleife erstellt werden, damit der Code nicht so lang und unübersichtlich wird.
Anbei der verwendete Code
Sub Import()
Dim strPath As String, strDataName As String, strSearch As String, strFind As
String
Dim wbSource As Workbook, wbDestination As Workbook
Dim wsLoB As Worksheet
Dim i As Integer
Dim raCell As Range
Application.AutomationSecurity = msoAutomationSecurityLow
strPath = ThisWorkbook.Worksheets("Menu").Range("C44")
strDataName = ThisWorkbook.Worksheets("Menu").Range("C43")
Set wbSource = Application.Workbooks.Open(strPath & strDataName,
UpdateLinks:=0, ReadOnly:=False)
Set wbDestination = Application.ThisWorkbook
For i = 7 To wbDestination.Sheets.Count
Set wsLoB = Nothing
On Error Resume Next
Set wsLoB = wbSource.Worksheets(wbDestination.Worksheets(i).Name)
On Error GoTo 0
If TypeName(wsLoB)  "Nothing" Then
For Each raCell In wbDestination.Worksheets(i).Range("C55:S55,
C84:S84, C122:S122").Cells
Range("C55").Select
ActiveCell.FormulaR1C1 = "=[strDataName]wsLoB!R46C3"
Range("D55").Select
ActiveCell.FormulaR1C1 = "=[strDataName]wsLoB!R46C4"
bis S55 und für die Zeilen 84 und 122 auch
Next raCell
End If
Next
Application.CutCopyMode = False
wbSource.Close SaveChanges:=False
End Sub
Vielen Dank schon mal für eure Hilfe
LG
Mario

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife externe Verknüpfung
14.03.2018 00:00:31
Steve
wo is das denn bitte lang und unübersichtlich?
AW: Schleife externe Verknüpfung
14.03.2018 09:31:22
Mario
Hallo Steve,
es geht wie gesagt um eine Schleife für externe Verknüpfungen, sprich diesen Bereich:
For Each raCell In wbDestination.Worksheets(i).Range("C55:S55,
C84:S84, C122:S122").Cells
Range("C55").Select
ActiveCell.FormulaR1C1 = "=[strDataName]wsLoB!R46C3"
Range("D55").Select
ActiveCell.FormulaR1C1 = "=[strDataName]wsLoB!R46C4"
usw.
bis S55 und für die Zeilen 84 und 122 auch
Next raCell
Den ich beispielhaft nur einmal mit zwei normalen Formeln gefüllt habe. Würde ich dies für alle benötigten Zellen tun, hätte ich es 45 mal da stehen, was ich gerne vermeiden möchte. Ich hoffe ich konnte Klarheit verschaffen. Vielen Dank für deine nett formulierte Frage mit Gruß und allem drum und dran.
VG
Mario
Anzeige
AW: Schleife externe Verknüpfung
14.03.2018 17:02:20
Robert
Hallo Mario,
dafür brauchst Du die Datei nicht zu öffnen. Folgender Code fügt im Bereich C55:S55, C84:S84 und C122:S122 der Tabellenblätter (ab Tabelle7) der aktiven Arbeitsmappe jeweils eine Verknüpfung zur gleichen Zelle im gleichnamigen Tabellenblatt der Source-Datei ein.
Sub Import()
Dim strPath As String, strDataName As String
Dim i As Integer
strPath = ThisWorkbook.Worksheets("Menu").Range("C44") 'Pfad zur Source-Datei (Daten-Herkunft)
strDataName = ThisWorkbook.Worksheets("Menu").Range("C43") 'Name der Sourcedatei
For i = 7 To Sheets.Count  'ab Tabellenblatt Nr 7 werden Verknüpfungen eingefügt
Range("C55:S55,C84:S84,C122:S122").FormulaLocal = "='" & strPath & "[" & strDataName & "]" & _
Worksheets(i).Name & "'!C55"
Next
End Sub
Gruß
Robert
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige