Blatt Namen
#11
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
Top
#12
Hallo Winny

Danke für deine Antwort. Es funktioniert gut. 
Gibt es noch eine Möglichkeit um diesen Code automatisch zu starten?
Gruss
langa68
Top
#13
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
Top
#14
(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)
[-] Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:
  • langa68
Top
#15
(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
Top


Gehe zu:


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