Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Arbeitsblatt mit Makro fortlaufend

Forumthread: Arbeitsblatt mit Makro fortlaufend

Arbeitsblatt mit Makro fortlaufend
19.11.2021 11:58:56
Sydney
Hallo zusammen,
ich versuche mich gerade in VBA einzuarbeiten und erste Gehversuche zu unternehmen.
Bei der Umsetzung folgender Funktion habe ich Probleme und finde nicht den richtigen Ansatz zur Lösung.
Vielleicht könnt ihr mir weiterhelfen?
Mit der Aufzeichnen Funktion habe ich folgendes Makro erstellt und dann die um die Funktion ActiveSheet.Name ergänzt.

Sub Makro3()
' Makro3 Makro
Sheets("100100061").Select
Sheets("100100061").Copy After:=Sheets(21)
Range("B2:J21").Select
Selection.ClearContents
Range("G28:J28").Select
Selection.ClearContents
Range("G28").Select
ActiveCell.FormulaR1C1 = "='100100061'!RC[2]"
Range("I28").Select
ActiveCell.FormulaR1C1 = "=RC[-2]+1"
Range("I28    ").Select
ActiveSheet.Name = Range("G28")
End Sub
Ich möchte realisieren, das immer aus dem neu generierten Arbeitsblatt ein neues mit fortlaufender Nummer benanntes Arbeitsblatt erzeugt wird.
Hierzu habe ich in G28 die Laufende Nummer + 1 gezählt und werte sie in dem neuen Arbeitsblatt als Namen aus.
Leider funktioniert dies genau 1x danach kommt der Fehler 1004 wegen dem doppelten Namen.
Eigentlich möchte ich das Makro unabhängig von den Namen der Arbeitsblätter halten und nur auf Grund der gezählten Werte Namen vergeben.
Also das 100100061 sollte nicht sichtbar sein.
Danke für eure Hilfe :)
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitsblatt mit Makro fortlaufend
19.11.2021 12:25:58
UweD
Hallo
auf Select kann in 99% verzichtet werden.
Hier mal 2 Lösungen.

Sub gfgf()
Dim TB As Worksheet
Set TB = ActiveSheet
TB.Copy After:=Sheets(Sheets.Count)
With ActiveSheet ' Ist jetzt das neu Erstellte
.Range("B2:J21").ClearContents
.Range("G28:J28").ClearContents
.Range("G28").FormulaR1C1 = "='" & TB.Name & "'!RC[2]"
.Range("I28").FormulaR1C1 = "=RC[-2]+1"
.Name = .Range("G28")
End With
End Sub

Sub ewrff()
Dim TB As Variant
TB = ActiveSheet.Name
Sheets(TB).Copy After:=Sheets(Sheets.Count)
If IsNumeric(TB) Then ActiveSheet.Name = TB + 1
End Sub
LG UweD
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige