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

Code wird nicht aktualisiert, erst nach Eingabe

Code wird nicht aktualisiert, erst nach Eingabe
03.11.2023 12:49:28
eglmar
Hallo zusammen
Ich habe folgenden Code der auch funktioniert, wenn man Daten direkt eingibt, jedoch besteht der Inhalt der Zelle B7 aus einer Formel (=sverweis), dadurch wird das Tabellenblatt nicht umbenannt. Erst wenn man bei der Bearbeitungsleiste der Zelle B7 klickt und Enter drückt wird der Namen des Tabellenblattes geändert. Wie könnte man das automatisch machen.
Herzlichen Dank


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim wsN$, i%
If Sh.Index > 6 Then GoTo Hell
'Änderungen in B7 beeinflussen nur Blattnamen 1 - 6
With Sh
If Not Intersect(Target, Sh.Range("B7")) Is Nothing Then
If Target.Text = "" Then Sh.Name = Sh.Name: GoTo Hell
'Leere Eingabe in B7 beendet ohne Änderung
With Target
'Blattname max 31 Zeichen
For i = 1 To 31
Select Case Mid(.Text, i, 1)
Case "\", "/", "*", "[", "]", ":", "?"
'unerlaubte Zeichen in Blattnamen "entfernen"
Case Else
wsN = wsN & Mid(.Text, i, 1)
End Select
Next i
End With
Sh.Name = wsN
End If
End With
Hell:
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code wird nicht aktualisiert, erst nach Eingabe
03.11.2023 13:58:32
Max
Wie in deinem Code ersichtlich arbeitest du mit der Workbook_SheetChange Methode, diese reagiert wie der Name schon sagt auf Änderungen, da die entsprechende Zeile jedoch per Formel berechnet wird benötigst du einfach nur die Worksheet_Calculate Methode und dein Code sollte problemlos laufen.
AW: Code wird nicht aktualisiert, erst nach Eingabe
03.11.2023 15:01:54
eglmar
Leider berechnet es nun auch nicht mehr die Formel der Zelle, das Blatt wird auch nicht aktualisiert. Ich habe die Methode geändert....


Private Sub Worsheet_calculate(ByVal Sh As Object, ByVal Target As Range)
Dim wsN$, i%
If Sh.Index 3 Then GoTo Hell
'Änderungen in B7 beeinflussen nur Blattnamen 1 - 6
With Sh
If Not Intersect(Target, Sh.Range("B1")) Is Nothing Then
If Target.Text = "" Then Sh.Name = Sh.Name: GoTo Hell
'Leere Eingabe in B7 beendet ohne Änderung
With Target
'Blattname max 31 Zeichen
For i = 1 To 31
Select Case Mid(.Text, i, 1)
Case "\", "/", "*", "[", "]", ":", "?"
'unerlaubte Zeichen in Blattnamen "entfernen"
Case Else
wsN = wsN & Mid(.Text, i, 1)
End Select
Next i
End With
Sh.Name = wsN
End If
End With
Hell:
End Sub
Anzeige
AW: Code wird nicht aktualisiert, erst nach Eingabe
03.11.2023 15:55:34
Max
Lade doch am besten mal eine Beispieldatei hoch
AW: Code wird nicht aktualisiert, erst nach Eingabe
03.11.2023 16:22:58
eglmar
https://www.herber.de/bbs/user/164016.xlsm

Habe ich gemacht, hier ist sie. Danke fürs Probieren. Auf dem ersten Blatt werden die Namen eingetragen, die sollten dann auf die Blätter per Sverweis übertragen werden (B1) dann sollte der Namen angepasst werden.
AW: Code wird nicht aktualisiert, erst nach Eingabe
03.11.2023 17:09:34
Max
Du hast die automatische Berechnung ausgestellt, deswegen ging auch der SVerweis nicht mehr.
Optionen->Formeln->Berechnungsoptionen->Automatisch

Private Sub Worksheet_Calculate()

Dim NewSheetName As String
NewSheetName = Me.Range("B1").Value

If NewSheetName > "" Then
Me.Name = NewSheetName
End If
End Sub


Das haust du in jedes Blatt rein, ist zwar nicht die Optimallösung aber reicht für deinen Fall.
Wozu willst du die unerlaubten Zeichen haben? Hab noch keinen getroffen der ein ? oder sonstiges in Namen hatte :D
Anzeige
AW: Code wird nicht aktualisiert, erst nach Eingabe
10.11.2023 08:44:36
eglmar
Herzlichen Dank, super, jetzt habe ich alles.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige