Registriert seit: 30.01.2015
Version(en): 2013
Hi Langa
niemand hat sich aufgeregt, gab ja gar keinen Grund!
mit ALT-F11 den VBA Editor aufrufen. Im Menu Einfügen/Modul. Dort kommt mein Code rein.
Für Günters Code Ansicht/Projektexplorer. Sein Code kommt in DieseArbeitsmappe
Registriert seit: 01.12.2014
Version(en): 2010
Hallo Winny
Danke für deine Antwort. Es funktioniert gut.
Gibt es noch eine Möglichkeit um diesen Code automatisch zu starten?
Gruss
langa68
Registriert seit: 01.12.2014
Version(en): 2010
Danke an alle Helfer.
Winny's Code habe ich soweit verstanden. Es währe aber schön wenn WillWissen mir seinen Code ein bisschen erläutern möchte.
Vielen Dank
langa68
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
(21.05.2015, 15:38)langa68 schrieb: Danke an alle Helfer.
Winny's Code habe ich soweit verstanden. Es währe aber schön wenn WillWissen mir seinen Code ein bisschen erläutern möchte.
Vielen Dank
langa68
Hi,
ich hatte ja geschrieben, dass das Makro nicht von mir ist, sondern von Peter gepostet wurde. Auch stecke ich VBA-mäßig in absoluten Baby-Schühchen. Ich versuche mal, den Code zu kommentieren, damit du nachvollziehen kannst, was dieser bewirkt. Aber wie gesagt, selbst VBA-Neuling. Daher sind Interpretationsfehler sind nicht ausgeschlossen - da hoffe ich auf Nachbesserung durch unsere Spezialisten.
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Mit diesem Ereignis (Sheet_Change) wird das Makro bei jedem Blattwechsel und bei jeder Blattbearbeitung angestoßen.
'Quelle: Message-ID:
If Target.Address(0, 0) = "A1" And Target.Value <> "" Then
'Wenn die Zieladresse A1 und der Wert darin ungleich leer ist, dann
If Not SheetExists(Target.Value) Then
'wenn ein Blatt mit diesem Wert nicht existiert, dann
Sh.Name = Target.Value
'ist der Blattname gleich dem Wert des Ziels (Eintrag in A1)
Else
Application.Undo
'sonst mach’s wieder rückgängig
End If
End If
End Sub
Public Function SheetExists(strName As String) As Boolean
'Existenz des Blattes als Boolesche Funktion (gibt nur wahr oder falsch)
On Error Resume Next
'bei Fehler weitergehen[/color]
SheetExists = Not Sheets(strName) Is Nothing
'Kurz für: trag den Namen ein, wenn das Blatt nicht existiert, sonst nicht
End Function
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 01.12.2014
Version(en): 2010
(21.05.2015, 22:55)WillWissen schrieb: (21.05.2015, 15:38)langa68 schrieb: Danke an alle Helfer.
Winny's Code habe ich soweit verstanden. Es währe aber schön wenn WillWissen mir seinen Code ein bisschen erläutern möchte.
Vielen Dank
langa68
Hi,
ich hatte ja geschrieben, dass das Makro nicht von mir ist, sondern von Peter gepostet wurde. Auch stecke ich VBA-mäßig in absoluten Baby-Schühchen. Ich versuche mal, den Code zu kommentieren, damit du nachvollziehen kannst, was dieser bewirkt. Aber wie gesagt, selbst VBA-Neuling. Daher sind Interpretationsfehler sind nicht ausgeschlossen - da hoffe ich auf Nachbesserung durch unsere Spezialisten.
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Mit diesem Ereignis (Sheet_Change) wird das Makro bei jedem Blattwechsel und bei jeder Blattbearbeitung angestoßen.
'Quelle: Message-ID:
If Target.Address(0, 0) = "A1" And Target.Value <> "" Then
'Wenn die Zieladresse A1 und der Wert darin ungleich leer ist, dann
If Not SheetExists(Target.Value) Then
'wenn ein Blatt mit diesem Wert nicht existiert, dann
Sh.Name = Target.Value
'ist der Blattname gleich dem Wert des Ziels (Eintrag in A1)
Else
Application.Undo
'sonst mach’s wieder rückgängig
End If
End If
End Sub
Public Function SheetExists(strName As String) As Boolean
'Existenz des Blattes als Boolesche Funktion (gibt nur wahr oder falsch)
On Error Resume Next
'bei Fehler weitergehen[/color]
SheetExists = Not Sheets(strName) Is Nothing
'Kurz für: trag den Namen ein, wenn das Blatt nicht existiert, sonst nicht
End Function
Vielen Dank für die Muhe und Geduld die du für mich hattest.
Gruss
langa68