Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1468to1472
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

Bei Eingabe neus Sheet mit Vorlage

Bei Eingabe neus Sheet mit Vorlage
22.01.2016 10:35:24
Armin
Hallo Freunde,
Ich habe eine Excel Datei und betshet aus zwei Sheets: 1-Vorlage
2-Steureung
Das Ziel ist wenn ich ein Name im Sheet "Steureung" eingebe, wird ein Neues Sheet mit analoge Vorlage aus dem Sheet "Vorlage" erzeugt!
Der Problem ist wenn ich falls falsche Name eingegeben habe, beim Korregieren wird ein neues Blatt erzeugt und nicht das Sheet mit falschem Name korregiert.
Wie kann ich so machen, wenn ich falls ein Falsche Name eingegeben habe, wird nach der Korrektur den Name geändert ohne ein neus Sheet erzeugt zu werden.
Ist es auch möglich das ein neues Sheet mit Vorlage erzeug wird aber Sheet "Vorlage" versteckt bleibt!
Excel-Datei
https://www.herber.de/bbs/user/102956.xlsm
LG

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bei Eingabe neus Sheet mit Vorlage
22.01.2016 11:14:00
Matthias
Hallo Armin
Warum löscht Du denn dann nicht einfach das letzte Blatt wieder?
Sollte der Name des letzten Blattes mit "Vorlage" beginnen, einfach wieder löschen.
Die LCase-Abfrage:
If LCase(.Worksheets(i).Name) = LCase(wsBez) Then
ist nicht nötig
So reicht das schon
If .Worksheets(i).Name = wsBez Then
Gruß Matthias

AW: Bei Eingabe neus Sheet mit Vorlage
22.01.2016 11:28:27
Armin
Tag Mathias,
ich kann das machen aber ich möchte das wenn ich den Name ändere, das Löchen sparen und der Name des Blatts automatisch geändert wird.

schau bitte den 2.Vorschlag an ... owT
22.01.2016 11:36:30
Matthias

AW: schau bitte den 2.Vorschlag an ... owT
22.01.2016 11:47:49
Armin
Hallo Mathias,
Wie gesagt ist wichtig das ich nicht was löchen muss, sondern ändern und die Änderung soll ohne erzeugung ein neues Blatt genommen werden.

Anzeige
im 2.Vorschlag wird doch nichts gelöscht ... owT
22.01.2016 11:54:28
Matthias

noch ein Vorschlag ...
22.01.2016 11:26:14
Matthias
Hallo Armin
oder einfach so:

Select Case Len(wsBez)
Case Is > 31
wsBez = Left(wsBez, 31)
Case Is = 0
If MsgBox("Zelle ist leer - Standardname für neues Blatt vergeben?", vbYesNo) = vbYes Then
Weiter = True
Else
Exit Sub
End If
Case Else
wsBez = wsBez
End Select
Gruß Matthias

AW: noch ein Vorschlag ...
22.01.2016 14:09:55
Armin
irgend welche idee jung?

hier, jung ...
22.01.2016 15:07:53
Matthias
Hallo
Option Explicit
Sub VorlageKopieren(wsBez As String)
Dim i As Integer, Check
Dim Weiter As Boolean
nochmal:
Application.ScreenUpdating = False
Weiter = False
wsBez = Replace(wsBez, ":", "")
wsBez = Replace(wsBez, "\", "")
wsBez = Replace(wsBez, "/", "")
wsBez = Replace(wsBez, "?", "")
wsBez = Replace(wsBez, "*", "")
wsBez = Replace(wsBez, "[", "")
wsBez = Replace(wsBez, "]", "")
With ThisWorkbook
For i = 1 To .Sheets.Count
'If LCase(.Worksheets(i).Name) = LCase(wsBez) Then
If .Worksheets(i).Name = wsBez Then
Check = MsgBox("Dieses Blatt existiert bereits!" & vbLf & "Soll es umbenannt  _
werden?", vbYesNo)
On Error GoTo nochmal
'MsgBox Check 'hier Auswerten und entscheiden
If Check = 6 Then Worksheets(wsBez).Name = InputBox("Bitte jetzt umbenennen", ,  _
wsBez): Exit Sub
If Check = 7 Then Exit Sub 'Nein
End If
Next
Select Case Len(wsBez)
Case Is > 31
wsBez = Left(wsBez, 31)
Case Is = 0
If MsgBox("Zelle ist leer - Standardname für neues Blatt vergeben?", vbYesNo) = vbYes  _
Then
Weiter = True
Else
Exit Sub
End If
Case Else
wsBez = wsBez
End Select
.Worksheets("Vorlage").Copy After:=Sheets(.Sheets.Count)
If Weiter Then
.ActiveSheet.Name = "Blatt " & .Sheets.Count + 1
Else: If Check  6 Then .ActiveSheet.Name = wsBez
End If
End With
Worksheets("Steuerung").Activate
Application.ScreenUpdating = True
End Sub
Gruß Matthias

Anzeige
AW: hier, jung ...
25.01.2016 10:30:11
Armin
Hi Matthias,
eine Frage noch in dieser Code "On Error GoTo nochmal"..wo haste dieses Nochmal definiert? Ich denke es fehlt!
Danke

das ist eine Sprungmarke
25.01.2016 15:50:46
Matthias
Hallo
Schau hier:
Option Explicit
Sub VorlageKopieren(wsBez As String)
Dim i As Integer, Check
Dim Weiter As Boolean
nochmal:'
Tritt also ein Fehler auf springt das Programm zu dieser Zeile(Sprungmarke) zurück.
Sorge bitte auch dafür, das beim Umbenennen des Blattes die Inputbox
mit einem gültigen Namen gefüllt ist. Wenn Du die Inputbox leerst und Abbrechen drückst
kommt auch ein Fehler, den man evtl noch abfangen müsste.
Verstehen kann ich diesen Aufwand mit Code allerdings nicht.
Ein Doppelklck auf den RegisterblattNamen und schon kannst Du es umbenennen
Aber das sei egal und ist ja Deine Sache ;-)
Gruß Matthias

Anzeige
AW: das ist eine Sprungmarke
26.01.2016 08:57:15
Armin
Hi Mathias und vielen Dank,
aber mein Problem ist leider immer noch. Wenn ich die Name ein parat erzeugtes Blatt ändern möchte, passiert es leider nicht..
Z.B wenn ich das Blatt XXX schon habe, aber entscheide ich mich dessen Name zu ändern, wird ein neues Blatt erzeug und das alte Blatt wird nicht umbenannt!

Das kann ich nicht bestätigen ...
26.01.2016 15:17:29
Matthias
Hallo Armin
Wie Du siehst existiert das Blatt "XXX" schon
Beim erneuten Versuch diesen Blattnamen zu vergeben
bekommst Du eine Meldung mit der Möglichkaeit den Namen zu ändern


Userbild


Userbild


Userbild


Userbild


Gruß Matthias
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige