max
2005-01-08 14:17:03 UTC
hallo
iich möchte in meiner exceldatei die tabellenblätter automatisch den
namem eines zellinhalts benennen. gibt es eine möglichkeit die
folgenden tabellenblätter umzubenennen.
meine mappe besteht aus 5 blättern, die blattnamen sind die
jahreszahlen in folge. bei ersten blatt wird die jahreszahl
eingegeben und die jahreszahl für die folgenden jahre wird dann
automatisch auf die folgenden blätter in zelle a1 durch formel
übertragen. jetzt soll die jahreszahl auch als blattname übernommen
werden. und wenn beim ersten blatt die jahreszahl sich ändert sollen
die namen auch entsprechend der neuen jahreszahl als blattname
übernommen werden.
alle versuche sind bei mir aber bis jetzt gescheitert. es
funktioniert immer nur auf dem ersten blatt dank deinere hilfe.
vieleicht weiß jemand eine möglichkeit für mein problem.
ich habe auf den tabellenblättern bisher folgenden code
1. tabellenblatt
Private Sub worksheet_change(ByVal Target As Excel.Range)
Const snamecell As String = "a1"
Const serror As String = "invalid worksheet name in cell "
Dim ssheetname As String
With Target
If Not Intersect(.Cells, Range(snamecell)) Is Nothing Then
ssheetname = Range(snamecell).Value
If Not ssheetname = "" Then
On Error Resume Next
Me.name = ssheetname
On Error GoTo 0
If Not ssheetname = Me.name Then _
ssheetname = "a"
Me.name = ssheetname
Worksheets(2).Activate
End If
End If
End With
2. Tabellenblatt
Sub Worksheet_Activate()
Range("c1").Select
Worksheet
Worksheets(3).Activate
End Sub
Private Sub Worksheet()
Range("A1:B1").Select
Range("a1").Activate
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const snamecell As String = "a1"
Const serror As String = "invalid worksheet name in cell "
Dim ssheetname As String
With Target
If Not Intersect(.Cells, Range(snamecell)) Is Nothing Then
ssheetname = Range(snamecell).Value
If Not ssheetname = "" Then
On Error Resume Next
Me.name = ssheetname
On Error GoTo 0
If Not ssheetname = Me.name Then _
Wssheetname = "b"
Me.name = ssheetname
End If
End If
End With
End Sub
die umbenennung auf den einzelnen blättern funktioniert aber nicht alle
nacheinander, probleme gibt es auch wenn ein tabellenblatt schon den gleichen
namen hat
vielen dank für deine hilfe
iich möchte in meiner exceldatei die tabellenblätter automatisch den
namem eines zellinhalts benennen. gibt es eine möglichkeit die
folgenden tabellenblätter umzubenennen.
meine mappe besteht aus 5 blättern, die blattnamen sind die
jahreszahlen in folge. bei ersten blatt wird die jahreszahl
eingegeben und die jahreszahl für die folgenden jahre wird dann
automatisch auf die folgenden blätter in zelle a1 durch formel
übertragen. jetzt soll die jahreszahl auch als blattname übernommen
werden. und wenn beim ersten blatt die jahreszahl sich ändert sollen
die namen auch entsprechend der neuen jahreszahl als blattname
übernommen werden.
alle versuche sind bei mir aber bis jetzt gescheitert. es
funktioniert immer nur auf dem ersten blatt dank deinere hilfe.
vieleicht weiß jemand eine möglichkeit für mein problem.
ich habe auf den tabellenblättern bisher folgenden code
1. tabellenblatt
Private Sub worksheet_change(ByVal Target As Excel.Range)
Const snamecell As String = "a1"
Const serror As String = "invalid worksheet name in cell "
Dim ssheetname As String
With Target
If Not Intersect(.Cells, Range(snamecell)) Is Nothing Then
ssheetname = Range(snamecell).Value
If Not ssheetname = "" Then
On Error Resume Next
Me.name = ssheetname
On Error GoTo 0
If Not ssheetname = Me.name Then _
ssheetname = "a"
Me.name = ssheetname
Worksheets(2).Activate
End If
End If
End With
2. Tabellenblatt
Sub Worksheet_Activate()
Range("c1").Select
Worksheet
Worksheets(3).Activate
End Sub
Private Sub Worksheet()
Range("A1:B1").Select
Range("a1").Activate
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const snamecell As String = "a1"
Const serror As String = "invalid worksheet name in cell "
Dim ssheetname As String
With Target
If Not Intersect(.Cells, Range(snamecell)) Is Nothing Then
ssheetname = Range(snamecell).Value
If Not ssheetname = "" Then
On Error Resume Next
Me.name = ssheetname
On Error GoTo 0
If Not ssheetname = Me.name Then _
Wssheetname = "b"
Me.name = ssheetname
End If
End If
End With
End Sub
die umbenennung auf den einzelnen blättern funktioniert aber nicht alle
nacheinander, probleme gibt es auch wenn ein tabellenblatt schon den gleichen
namen hat
vielen dank für deine hilfe