Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Grüße,
Winny
Antworten 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
Antworten 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
Antworten Top
#14
(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
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
Antworten Top
#15
(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
Gruss
langa68
Antworten Top


Gehe zu:


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