Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1180to1184
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

neue registerkarte nach angabe im zelle anlegen

neue registerkarte nach angabe im zelle anlegen
joe
hallo
ich weiss, es gibt einen ähnlichen beitrag im archiv, aber ich bekomm das nicht so umgeschrieben,
wie ich es benötige:
ich möchte das durch eingabe in z.b. ZELLE C5 ein neues registerblatt mit dem inhalt (namen) von "C5"
erstellt werden soll.
in dem beispiel im archiv wird nur spalte A1 angezogen
ich habe schon rumgedocktert, dabei ist mir auch folgender fehler aufgefallen,
den ich in diesem zusammenhang auch gerne vermeiden möchte.
wenn der gleiche name in "C5" steht und man nochmals das makro anstartet kommt ein grober VBA fehler
das diese registerkarte ( gleicher name ) bereits vorhanden ist. geht das auch etwas "dezenter"
das man mit einem kleinen pop up fenster oder einer erneuten eingabe wie z.b. zurückspringen des coursers auf das eingabefeld "C5" erfolgt ?
über ein hilfe diesbezüglich wäre ich dankbar
merci vielmals
joe
AW: neue registerkarte nach angabe im zelle anlegen
17.10.2010 16:48:37
Hajo_Zi
Halo Joe,
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$5" Then
On Error Resume Next
Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Target
If Err  0 Then
MsgBox "schon vorhanden"
Application.DisplayAlerts = False
Worksheets(Worksheets.Count).Delete
Application.DisplayAlerts = False
End If
On Error GoTo 0
End If
End Sub

AW: neue registerkarte nach angabe im zelle anlegen
17.10.2010 18:04:25
Lutz
Hallo Hajo,
habe Deinen Code mal getestet, brachte noch eine Fehlermeldung.
Was hälst Du von der Modifikation?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wks As Worksheet
If Target.Address = "$C$5" Then
For Each wks In ThisWorkbook.Worksheets
'Debug.Print UCase(wks.Name) & " " & UCase(Target.Value)
If UCase(wks.Name) Like UCase(Target.Value) Then
MsgBox "schon vorhanden"
Application.DisplayAlerts = False
Application.DisplayAlerts = False
Exit Sub
End If
Next
Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Target
End If
End Sub
M.f.G.
Lutz
Anzeige
AW: neue registerkarte nach angabe im zelle anlegen
17.10.2010 18:12:35
Hajo_Zi
Hallo Lutz,
Du magst es nicht glauben, ich habe den Code getestet. Wie Dir sicher aufgefallen ist habe ich nicht neben Dir gesessen als Du das getestet hast. Also habe ich keine Ahnung wie Du den Fehler ausgelöst hast.
Gruß Hajo
AW: neue registerkarte nach angabe im zelle anlegen
17.10.2010 18:46:05
Lutz
Hallo Hajo,
habe den Code im eignen Interesse ausprobiert, da mich die Codezeilen mit Target... interessiert haben.
Bei der Eingabe des neuen Blattnamens (auch identisch zum aktiven Blatt) in die Zelle C5 kommt bei mir die Fehlermeldung '1004' kann Blatt mit gleichem Namen nicht einfügen...
(12 - Office 2007)
Wollte mit meinem Vorschlag nur joe die Fehlersuche ersparen. (:-)
M.f.G.
Lutz
Anzeige
AW: neue registerkarte nach angabe im zelle anlegen
17.10.2010 19:13:38
Hajo_Zi
Hallo Lutz,
ich habe es in meiner aktuellen Version (2010) getestet und da kam kein Fehler.
Ich habe es jetzt auch nochmal virtuell in 2007 testet und es kam auch keine Fehlermeldung, nur die Meldung das schon vorhanden.
Gruß Hajo
AW: neue registerkarte nach angabe im zelle anlegen
17.10.2010 19:36:52
Lutz
Hallo Hajo,
tut mir leid, dass Du Deine Zeit geopfert hast, der Fehler lag in meiner VBA Einstellung:
es war bei "Unterbrechen bei Fehlern" - "Bei jedem Fehler" ausgewählt.
M.f.G.
Lutz
AW: neue registerkarte nach angabe im zelle anlegen
17.10.2010 19:39:12
Gerd
Hallo Hajo!
nur die Meldung das schon vorhanden
Richtig, aber auch wenn ein Eintrag in C5 entfernt wird.
@ Joe, Rechtsklick auf den Tabellenblattreiter, Code anzeigen anklicken, den Code in das so geöffnete
Codefenster der Tabelle einfügen (und sonst nirgends).
Gruß Gerd
Anzeige
AW: neue registerkarte nach angabe im zelle anlegen
17.10.2010 19:50:57
Hajo_Zi
Halo Gerd,
da halte ich mich mal an die Frage
ich möchte das durch eingabe in z.b. ZELLE C5 ein neues registerblatt

Leer würde ich nicht als Eingabe interpretieren, das könte man aber leicht ausschließen.
If Target.Address = "$C$5" and Target"" Then
Gruß Hajo
AW: neue registerkarte nach angabe im zelle anlegen
17.10.2010 19:33:20
joe
hallo und danke an euch beide für die rasche lösung bzw. umsetzung
nun schein ich zu blöd zu sein, um das ding zum laufen zu bringen, daher bekomme ich auch keine fehlermeldung ;-)
also ich gehe wie folgt vor: excel auf, neues blatt, alt+F11,einfügen modul, strg+v, abspeichern,
auf das neue excel sheet springen und in zelle C5 etwas reinschrieben >>blabla nix passiert... ;-( , hab auch schon oben in der symbolleiste VB makro starten probiert aber ohne erfolg.
wo bitte steh ich mir selber auf besagter leitung ? bitte holt mich runter
besten dank vorab
joe
Anzeige
AW: neue registerkarte nach angabe im zelle anlegen
17.10.2010 19:36:28
Hajo_Zi
Hallo Joe,
auf das Register gehen, rechte Maustaste, Code anzeigen, Code ins rechte Fenster kopieren.
Gruß Hajo
AW: neue registerkarte nach angabe im zelle anlegen
17.10.2010 19:55:12
joe
hallo hajo
das funzt super, vielen herzlichen dank.
2 dinge machen mich noch nicht ganz glücklich.
a) ein schönheitsfehler ?
es klappt zwar mit TAB und / oder ENTER, aber nur 1 x, d.h. wenn ich nochmal "drücke" passiert gar nix
erst wieder wenn ich etwas reinschreibe...aber wie gesagt ein schönheitsfehler.
b) was ich eigentlich wollte, und da habe ich wohl ein fehler gemacht, dass das neue worksheet mit der gleichen formatierung / design / formular aufgeht. nur eben mit dem unterschied das der name des reiters neu ist ( sprich der von feld "C5")
gibt es da einen COPY befehl für den WORKSHEET ?
dank & gruss
joe
Anzeige
AW: neue registerkarte nach angabe im zelle anlegen
17.10.2010 19:59:07
Hajo_Zi
Hallo Joe,
a) ist kein Schönheitsfehlr Du willst ja nichrt 2 Tabellen mit dem gleichen Nmaen anlegen, wenn Du in C5 was anderes eingibts wird die Tabelle auch angelegt.
Die Tabelle in die Du das schreibst ist also ohne Daten? Und der Wert in C5 soll mit übernommen werden?
Gruß Hajo
AW: neue registerkarte nach angabe im zelle anlegen
17.10.2010 20:07:20
joe
hallo hajo
soll ich das True ersetzen ? was bringt mir das ? merke keinen unterschied ;-/
nun zu deiner antwort, danke, seh ich nun auch so...
zu deiner frage: also worksheet 1 ist mein original ( vorlage )
dort stehen zahlen, werte, datum, zinsen, dauer usw. alles ändert sich mit eingabe des datums bzw.
dem befehl heute()
da es mehrere objekte gibt die es zu berechnen gilt, sollen die jeweiligen objektnamen in "C5" in den neuen worksheets geöffnet werden. allerdings mitsamt einer kopie des worksheets ( inkl. der berechnungen und makros) vom original.
ist das (un)möglich oder drück ich mich nur unvorteilhaft aus?
gruss
joe
Anzeige
AW: neue registerkarte nach angabe im zelle anlegen
17.10.2010 20:09:15
Hajo_Zi
Hallo Joe,
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$5" And Target  "" Then
On Error Resume Next
ActiveSheet.Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Target
If Err  0 Then
MsgBox "schon vorhanden"
Application.DisplayAlerts = False
Worksheets(Worksheets.Count).Delete
Application.DisplayAlerts = True
End If
On Error GoTo 0
End If
End Sub
Gruß Hajo
AW: neue registerkarte nach angabe im zelle anlegen
17.10.2010 20:14:32
joe
hai hajo
du siehst nun einen glücklichen menschen ( dau ) vor dem pc sitzen
vielen herzlichen dank
hut ab
gruss
alex
Anzeige
AW: neue registerkarte nach angabe im zelle anlegen
19.10.2010 16:30:26
joe
hallo nochmals
eine frage zum verständnis: in MS EXCEL habe ich das nun hinbekommen, leider läuft es unter OPENOFFICE EXCEL gar nicht... ;-(
irgend etwas läuft da schief ( gut , die formate habe ich hinbekommen,-manuell )
aber wichtig wäre mir der VBA code
ich bekomme folgenden fehler:
"BAsic Laufzeitfehler - Es ist eine Exception aufgetreten - Type:com.sun.star.uno.RuntimeException - Message: unsatisfied query for interface of type com.sun.star.drawing.XControlShape!"
nun komm ich wieder mal an meine grenzen
wer kann helfen
besten dank
joe
AW: neue registerkarte nach angabe im zelle anlegen
17.10.2010 19:57:04
Gerold
Hallo Joe
Hab da noch einen Tip-Fehler im Code von Hajo entdeckt.
Beim zweiten "Application.DisplayAlerts = False" das False durch True ersetzen.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$5" Then
On Error Resume Next
Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Target
If Err  0 Then
MsgBox "schon vorhanden"
Application.DisplayAlerts = False
Worksheets(Worksheets.Count).Delete
Application.DisplayAlerts = True                        ' Nicht False sondern True
End If
On Error GoTo 0
End If
End Sub

Mfg Gerold
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige