Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

keine Änderung Tabellenname

Betrifft: keine Änderung Tabellenname von: Erich M.
Geschrieben am: 14.09.2004 18:34:07

Hallo EXCEL-Freunde,

ist es möglich, dass die Änderung des Tabellennamens verhindert wird?
Derzeit habe ich im Tabellenmodul stehen:
ActiveSheet.EnableSelection = xlNoSelection
ActiveSheet.Protect
Aber der Name der Tabelle kann trotzdem geändert werden.

Besten Dank für eine Hilfe!

mfg
Erich

  


Betrifft: AW: keine Änderung Tabellenname von: Olaf
Geschrieben am: 14.09.2004 18:35:04

Das geht nur über Arbeitsmappenschutz.

Olaf


  


Betrifft: AW: keine Änderung Tabellenname von: Erich M.
Geschrieben am: 14.09.2004 19:47:21

Hallo Olaf,

zunächst danke.
Ich gebe noch nicht auf; könnte nicht ein Code im Tabellenmodul:
Private Sub Worksheet_Deactivate()
If ActiveSheet.Name <> "Start" Then
'Sheets.Name = "Start"
End If
End Sub

weiterhelfen?
Ist es möglich, dass "auf das letzte sheet" zurückgegriffen wird;
bei Zellen habe ich schon manchen Code gesehen, bei dem sich das System
die letzte benutzte Zelle merkt und bei einer bestimmten Aktivität
zurückspringt; sowas wäre die Lösung für die Tabelle.
Alternativ wäre die Frage, ob es möglich ist, auf den Tabellennamen
zurückzugreifen, der im Projekt mit Tabelle1, Tabelle2 usw. steht
(also ohne Änderung des Namens)?

Besten Dank!

mfg
Erich


  


Betrifft: Fortsetzung von: Erich M.
Geschrieben am: 14.09.2004 20:01:35

Hallo Olaf,

habe folgende Zwischenlösung:
Private Sub Worksheet_Deactivate()
If ActiveSheet.Name <> "Start" Then
Sheets(1).Select
MsgBox "Der Tabellenname muss Start lauten"
End If
End Sub


Jetzt bräuchte ich noch einen Code, der es nicht zulässt,
dass das Sheet "Start" verschoben werden kann.

mfg
Erich


  


Betrifft: AW: keine Änderung Tabellenname von: Olaf
Geschrieben am: 14.09.2004 20:06:21

zu 2: Du meinst den Codenamen einer Tabelle. Das ist natürlich ein sicherer Weg, weil der Code dann unabhängig von dem Namen wird, den der user eingeben kann.
Statt: Sheets("Tabelle1").[a1]= 123 kannst du dann schreiben.
Tabelle1.[a1]= 123

Olaf


  


Betrifft: AW: keine Änderung Tabellenname von: Erich M.
Geschrieben am: 14.09.2004 22:49:45

Hallo Olaf,

besten Dank!
Habe mich jetzt für folgende Lösung entschieden, da ich in die Zelle A1 keinen Eintrag möchte:
Private Sub Worksheet_Deactivate()
If Sheets(1).Name <> "Start" Then
Sheets(1).Activate
MsgBox "Sie haben den Tabellennamen  - Start - versehentlich geändert; " & _
"dieser wird jetzt automatisch wieder angepasst!!"
ActiveSheet.Name = "Start"
End If
End Sub


Jetzt bräuchte ich nur noch eine Lösung, wie Sheets(1) immer Sheets(1) bleibt;
mit meiner Kennzeichnung
ActiveSheet.EnableSelection = xlNoSelection
ActiveSheet.Protect
kann zwar dieses Sheet nicht verschoben werden, ein anderes Sheet kann jedoch
vorgezogen werden - das müsste dann ebenfalls wieder korrigiert werden;
darauf bin ich noch nicht gekommen.

Besten Dank, falls Du noch eine Idee hast!

mfg
Erich


  


Betrifft: habs jetzt so gelöst...... von: Erich M.
Geschrieben am: 15.09.2004 09:08:07

Private Sub Worksheet_Deactivate()
If Tabelle1.Name <> "Start" Then
Tabelle1.Activate
MsgBox "Sie haben den Tabellennamen  - Start - versehentlich geändert; " & _
"dieser wird jetzt automatisch wieder angepasst!!"
ActiveSheet.Name = "Start"
End If
End Sub


mfg
Erich


  


Betrifft: AW: keine Änderung Tabellenname von: Nepumuk
Geschrieben am: 14.09.2004 20:08:13

Hallo Erich,
du kannst den "CodeName" der Tabellen so benutzen:


Public Sub test()
    Tabelle1.Cells(1, 1) = "test ok"
End Sub


Gruß
Nepumuk


  


Betrifft: Danke Nepumuk; siehe meine Antwort an Olaf; o.T.!! von: Erich M.
Geschrieben am: 14.09.2004 22:50:43

.