Clever-Excel-Forum

Normale Version: Blatt Namen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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
Hallo Winny

Danke für deine Antwort. Es funktioniert gut. 
Gibt es noch eine Möglichkeit um diesen Code automatisch zu starten?
Gruss
langa68
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
(21.05.2015, 14: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
(21.05.2015, 21:55)WillWissen schrieb: [ -> ]
(21.05.2015, 14: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
Seiten: 1 2