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.

Mit Makro Registerkarten anlegen & benennen
#1
Question 
Moin liebe Excel-User,

hoffe ich kann hier Hilfe bei einem Problem finden. Sollte sich, glaub ich auch recht schnell lösen lassen ;): Ich versuche ein Makro zu bauen, welches mir in einer Excel Datei "Reiter" anlegt und diese auch gleich umbenennt. Problematisch wird es dabei an 2 Stellen.

  1. Die Benennung der Reiter erfolgt nach einer Namensliste, in der manche Namen mehrfach direkt nacheinander auftauchen. Z.B.
  • Peter
  • Marion
  • Marion
  • Marion
  • Klaus
  • ....
  1. Bei der 2. Marion stoppt mein Makro, da es natürlich keinen weiteren Reiter mit gleichem Namen anlegen kann. Wie kann ich dem Makro sagen, dass diese übersprungen werden sollen? Und nein ich will die Liste nicht vorher filtern müssen, da ich mit der gleichen Liste noch weiter arbeiten muss ;)
    2. Irgendwann ist die Spalte mit den Name zu Ende. Wie gebe ich den Bereich so an, dass das Makro stoppt und keinen Reiter ohne Namen anlegt?

Viele grüße & frohe Weihnachten
Antworten Top
#2
Hallo,

über wie viele Namen reden wir da?
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Hallo,

Beispielsweise so:
Code:
Public Sub Blatt_anlegen()
Dim loLetzte As Long, raBereich As Range, raZelle As Range

Application.ScreenUpdating = False

With Worksheets("Tabelle1")
   loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
   Set raBereich = .Range(.Cells(1, 1), .Cells(loLetzte, 1))
   For Each raZelle In raBereich
       On Error Resume Next
       Worksheets(raZelle.Value).Calculate
       If Err.Number = 9 Then
           Worksheets.Add , after:=Worksheets(Sheets.Count)
           ActiveSheet.Name = raZelle.Value
           On Error GoTo 0
       End If
   Next
   .Activate
End With

Set raBereich = Nothing
Application.ScreenUpdating = True
End Sub



Ich bin beim Code davon ausgegangen, dass deine Namensliste sich im Tabellenblatt "Tabelle1" befindet und dort in Spalte A von A1 bis A?
Das mußt du ggf. anpassen.
[-] Folgende(r) 1 Nutzer sagt Danke an Werner.M für diesen Beitrag:
  • snake-84
Antworten Top
#4
Smile 
Sehr sehr geil & vielen vielen Dank! Funktioniert genauso wie es soll  :19:
Antworten Top


Gehe zu:


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