Zellinhalt automatisch als Blattname verwenden
#1
Hallo,

ich möchte per Makro den Zellinhalt automatisch als Blattname verwenden.
Einen Teil der Lösung habe ich bereits per google herausgefunden, ich habe jedoch noch ein Problem (siehe in roter Schrift unten):

Mit dem folgenden Makro wird der Inhalt der Zelle A5 automatisch als Blattname verwendet und
das Tabellenblatt entsprechend umbenannt. Dieses Makro muss in das Tabellenblatt eingefügt werde in dem der Code verwendet werden soll. Das Makro also bitte in kein Modul 'normales' Modul einfügen.

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("A5:A5")) Is Nothing Then
    On Error Goto fehlermeldung
    If Target = "" Then Exit Sub
    ActiveSheet.Name = Range("A5").Value
End If
Exit Sub

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

Das Makro prüft, ob der Blattname unerlaubte Zeichen enthält und beendet das Makro, wenn unerlaubte Zeichen verwendet wurden.

Ich möchte mich mich aber auf eine Zelle in einem anderen Tabellenblatt (Tabellenname "Übersicht" / Zelle A5) beziehen.
Wie muss das Makro dafür umgeschrieben werden? Kenne mich in diesem Gebiet kaum aus :20:

Danke für die Antworten.
Top
#2
Moin!
Also so wäre dein Code angepasst, wenn du den Namen aus dem Blatt Übersicht nimmst. 
Code:
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("A5:A5")) Is Nothing Then
   On Error GoTo fehlermeldung
   If Target = "" Then Exit Sub
   ActiveSheet.Name = Worksheets("Übersicht").Range("A5").Value
End If
Exit Sub

fehlermeldung:
MsgBox "Es wurden ungültige Zeichen erfasst!"
End Sub
Du müsstest in dem Blatt wieder in Zelle A5 was ändern und dann ändert sich auch der Blattname. Eine Prüfung, ob es denn Namen schon gibt, fehlt (Code ist halt nur angepasst). Das wird wie bei deinem Code über die Fehlermeldung "abgefangen". Falls der Code anders arbeiten sollte, einfach nochmal melden.
VG
Top
#3
Hallo 1Matthias,

danke für die Antwort.

Leider funktioniert der Code nicht :/
Habe deinen Code in das Tabellenblatt in dem der Blattname automatisch geändert werden soll eingefügt (wie ich es mit dem vorherigen Code gemacht habe).
Dann bin ich in das Tabellenblatt "Übersicht" und habe Zelle A5 geändert, leider ändert sich der Blattname des anderen Tabellenblattes nicht geändert.

Muss ich deinen Code irgendwo anders einfügen?

Der vorherige Code funktioniert,  jedoch kann ich nur auf Zellen im gleichen Tabellenblatt verweisen.

Danke für die Hilfe
Top
#4
Hallo,



' **************************************************************
'  Modul:  Tabelle1  Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************


Option Explicit

'Code im VBA-Modul des Tabellenblattes "Übersicht"
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 Target.Address = "$A$5" Then
     If Target <> "" Then
       On Error Resume Next
       Tabelle2.Name = Target.Value  'Tabelle2 ist der Codename, nicht der zu ändernde Name
       If Err.Number > 0 Then
         MsgBox Err.Description
         On Error GoTo 0
       End If
     End If
   End If
End Sub

Code eingefügt mit: Excel Code Jeanie

Gruß Uwe
Top
#5
perfekt, es funktioniert.

Vielen Dank.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste