Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

ActiveSheet.Name = .... FUNKTIONIERT NICHT
#1
Ich habe ein Problem mit Office 2013
Ich habe in einem Formular eine Textbox (AnlagenAnlage) in der ich einen Namen eintragen kann. Das soll der Name des neuen Tabellenblattes werden.
Ein verstecktes Tabellenblatt („Vorlage“) wird kopiert und mit dem Namen des Textfeldes angelegt.
Das Tabellenblatt („Vorlage“) wird wieder versteckt und das neue Tabellenblatt sollte aktiviert werden. Leider wird es nicht aktiviert. Wenn ich in die Zellen etwas schreiben will, wird es komischerweise in die Tabelle geschrieben, von der aus ich das Formular gestartet habe.
Warum nur ? Bis zur OfficeVersion 2010 ging alles ohne Probleme.
 
Exceltabelle anbei
 
Code:
Private Sub CommandButton1_Click()
Dim Eingabe As String
Dim variable As String

Eingabe = AnlagenName.Value

Sheets("Vorlage").Visible = xlSheetVisible 'Das Tabellenblatt "Vorlage" wird wieder angezeigt
   Sheets("Vorlage").copy Before:=Sheets(1)
Sheets("Vorlage").Visible = xlVeryHidden 'Das Tabellenblatt "Vorlage" wird wieder ausgeblendet

ActiveSheet.Name = (Eingabe) 'Das neue Tabellenblatt wird benannt nach der Variblen (Eingabe)

Modul1.StopMaske 'Formular angehalten

Sheets(Eingabe).Select
Range("A6").Select 'der Curser wird in Zelle A6 plaziert
ActiveCell.Activate

End Sub



Vielen Dank


Angehängte Dateien
.xlsm   Problem.xlsm (Größe: 23,42 KB / Downloads: 5)
Antworten Top
#2
Moin,

das kann ich nicht bestätigen.
Der einzige Fehler, den ich "auf die Schnelle" gefunden habe: Wenn in die Textbox nichts oder kein gültiger Name eingegeben wird, dann meckert Excel (zu Recht).

Aber vielleicht habe ich das auch falsch verstanden. DENN:
Zitat:Wenn ich in die Zellen etwas schreiben will, wird es komischerweise in die Tabelle geschrieben, von der aus ich das Formular gestartet habe.
Und das sollte stets das Blatt Start mit dem Button sein. Ein Klick darauf bringt dann ja die UserForm auf den Schirm. Und ja, ich verwende Excel 2013.
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Antworten Top
#3
Hallo Matthias,

so ganz klar ist mir Deine Beschreibung auch nicht. Aber hier mal eine komplette Routine mit Fehlerbehandlung:

Private Sub CommandButton1_Click()
 Dim lngSheet As Long
 If Len(AnlagenName) Then
   For lngSheet = 1 To Sheets.Count
     If Sheets(lngSheet).Name = CStr(AnlagenName) Then
       MsgBox "Es gibt schon ein Blatt namens " & AnlagenName & "!", vbInformation
       AnlagenName = ""
       AnlagenName.SetFocus
       Exit For
     End If
   Next lngSheet
 End If
 If Len(AnlagenName) Then
   Application.ScreenUpdating = False
   With Sheets("Vorlage")
     .Visible = xlSheetVisible 'Das Tabellenblatt "Vorlage" wird wieder angezeigt
     .copy Before:=Sheets(1)
     .Visible = xlVeryHidden 'Das Tabellenblatt "Vorlage" wird wieder ausgeblendet
   End With
   With Sheets(1)
     .Name = CStr(AnlagenName) 'Das neue Tabellenblatt wird benannt nach der TextBox AnlagenName
     .Select
     .Range("A6").Select 'der Curser wird in Zelle A6 plaziert
   End With
   Application.ScreenUpdating = True
   StopMaske 'Formular angehalten
 End If
End Sub

Gruß Uwe
Antworten Top
#4
Hola Uwe,

das mit der Prüfung ob das Tabellenblatt vorhanden ist, bzw die Fehlermeldung zu verhindern, wenn kein
Name eingetragen ist ist super. Vielen Dank. Das macht die Sache runder.
Das Problem was ich hatte lag am Aufruf der Userform durch den Button.

Code:
Sub Anlegen()

Eingabe.Show

End Sub

Es funktioniert bei mir mit:

Code:
Sub Anlegen()

Eingabe.Show False

End Sub


Vielen Dank 
Matthias
Antworten Top


Gehe zu:


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