Clever-Excel-Forum

Normale Version: VBA: Sheet am Ende einfügen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

als relativer VBA-Neuling versuche ich mich gerade an ein paar eigenen Makros.

Als Basis nehme ich ein paar alte Makros da mir die Syntax von VBA eher unbekannt ist. Lesen klappt, abändern ebenfalls, aber selbst schreiben... da lerne ich gerade.

Nun habe ich ein relativ komplexes Makro welches mir zu einem gewissen Punkt Daten in Mappe A (Register "Fixkostenbericht") aktualisiert, dieses Blatt dann in Mappe B als neues Register einfügt, Daten in Mappe A aktualisiert, diese in Mappe B als neues Register einfügt,.... klassisches While.

Nun hänge ich allerdings beim Einfügen eines Registers. Vorweg: Alles funktioniert, nur werden die Register verkehrtherum angelegt. Statt von links nach rechts, werden die Register von rechts nach links eingefügt und ich weiß nicht warum.

Der Abschnitt vom Makro ist auch aus einem alten Makro entnommen und ich frage mich generell was der Aufbau mit "Register_Zähler_Ziel" eigentlich beweckt.

Dim Register_Zähler_Ziel
Register_Zähler_Ziel = 1

    Sheets("Fixkostenbericht").Copy After:=Workbooks(Dateiname & Zielendung).Sheets(Register_Zähler_Ziel)
    ActiveSheet.Name = Kostenstelle

Register_Zähler_Ziel = Register_Zähler_Ziel + 1

Kann mir einer auf die schnelle sagen wo mein Fehler liegt?
Hallo,

Code:
With Workbooks(Dateiname & Zielendung)
  Sheets("Fixkostenbericht").Copy After:=.Sheets(.Sheets.Count)
End With

Gruß, Uwe
Hi,

wo genau soll das neue Blatt auftauchen? Immer ganz rechts? Dann so:
Code:
Sheets("Fixkostenbericht").Copy After:=Sheets(Sheets.Count)
Die Position kannst du natürlich beliebig variieren indem du statt der aktuellen Blattzahl (Sheets.Count) irgendeine andere (kleinere) Zahl oder einen Blattnamen (in Anführungszeichen) eingibst.

Übrigens gibt es außer After:= auch noch Before:=, dann wird das Blatt vor dem angegebenen Blatt eingefügt.

Solche "Kleinigkeiten" bekommt man am schnellsten raus, wenn man F1 drückt während der Cursor auf oder direkt hinter dem Befehl (hier ".Copy") steht.
Oh man... solche Kleinigkeiten.

Alles klar, ich weiß Bescheid. Auch danke für den F1-Tipp