Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Makro mit Zellenverknüpfung auf anderem Blatt automatisieren

Forumthread: Makro mit Zellenverknüpfung auf anderem Blatt automatisieren

Makro mit Zellenverknüpfung auf anderem Blatt automatisieren
03.06.2025 11:51:11
Benny
Servus Forumsmitglieder,

für folgende Situation bräuchte ich bitte eure Hilfe.

Ich habe in der Tabelle1 2 Spalten mit Namen und Nummern, diese habe ich in den weiteren Tabelle jeweils mit den Zellen verknüpft.
Damit ich nur in Tabelle 1 die Daten ändern muss und es dann in den anderen automatisch passiert.
Um nun aber in den Tabellennamen auch die Nummern zu sehen, habe ich folgendes Makro gefunden.

Private Sub Worksheet_Change(ByVal Target As Range)
'Der Text, der in Zelle A5 eingegeben wird, wird automatisch als
'Tabellenblattname verwendet und das Tabellenblatt entsprechende benannt
'Fehleingaben werden abgefangen

If Not Application.Intersect(Target, Range("G4:G4")) Is Nothing Then
On Error GoTo fehlermeldung
If Target = "" Then Exit Sub
ActiveSheet.Name = Range("G4").Value
End If
Exit Sub

fehlermeldung:
MsgBox "Es wurden ungültige Zeichen erfasst!"
End Sub

Nun habe ich das Problem, das durch die Zellenverknüpfung sich der Tabellenname erst ändert wenn ich die entsprechende Zelle z.B. umbennen will.
In der Datei habe ich die betroffenen Punkt mit Rot bzw. Blau zur Nachverfolgung hinterlegt.

https://www.herber.de/bbs/user/177651.xlsm

Nun die Frage, wie bekomme ich es hin, das das Makro die Anpassung auch ohne mein Eingreifen durchführt.

Vielen Dank schonmal für euer Bemühen.
MFG Benny
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro mit Zellenverknüpfung auf anderem Blatt automatisieren
03.06.2025 12:19:52
daniel
Hi
der Name des Blattes soll ja dem Wert in der Zelle G4 entsprechen.
Das Change-Event springt nur an, wenn entweder ein konstanter Zellwert geändert wird oder die Zelle eine andere Formel bekommt (Änderung am Formeltext)
Das Change-Event springt nicht an, wenn sich ein Formelergebnis aufgrund einer Neuberechnung ändert.
Wenn eine Formel neu berechnet wird, dann springt das Caclulate-Event an.
du benötigst also in den einzelnen Tabellenblättern das Calculate-Event.


Private Sub Worksheet_Calculate()

If Me.Name > Range("G4").Value Then Me.Name = Range("G4").Value
End Sub


Me ist hier der Objektbegriff für das Tabellenblatt, in dessen Modul der Code liegt.

das Makro muss so aber in jedem der Azubi-Tabellenblätter stehen.
dh du solltest es in die Vorlage einfügen, dann wird es beim Kopieren der Vorlage mit kopiert.

eine andere Alternative wäre das Change-Event im Modul des Tabellenblatts "Auszubildende", denn hier hat du die Werte als Konstante stehen und änderst sie direkt.


Private Sub Worksheet_Change(ByVal Target As Range)

Dim sh As Worksheet
If Not Intersect(Target, Columns(1)) Is Nothing Then
For Each sh In ThisWorkbook.Worksheets
If sh.Range("G4").Formula Like "=Auszubildende!A*" Then
If sh.Name > sh.Range("G4").Value Then sh.Name = sh.Range("G4").Value
End If
Next
End If
End Sub


Gruß Daniel

Anzeige
AW: Makro mit Zellenverknüpfung auf anderem Blatt automatisieren
03.06.2025 12:47:58
GerdL
Moin Benny!
'Ins Modul DieseArbeitsmappe

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)

Dim Blatt As Worksheet

For Each Blatt In ThisWorkbook.Worksheets
With Blatt
If .Name > "Auszubildende" And .Name > "Vorlage" Then
If .Range("G4") > "" And .Range("G4") > .Name Then
If InStr(.Range("G4").Formula, "=Auszubildende!A") Then .Name = .Range("G4")
End If
End If
End With

Next

End Sub

Gruß Gerd
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige