Office - Word, Excel und Co. 9.730 Themen, 41.299 Beiträge

Ganze Zeilen(n) kopieren + neue erstellen. Wie? Makro?

gerfield / 2 Antworten / Flachansicht Nickles

Hallo,

vor einiger Zeit habe ich angefangen, eine Excel-Arbeitsmappe zu basteln, womit es einfacher sein soll, Angebote fuer Kesselanlagen zu erstellen und alle Betraege wie MwSt, Skonto, etc. zu berechnen.

Soweit funktioniert es ganz gut. Es gibt zwei Tabellen innerhalb der Arbeitsmappe, naemlich die Rechnung an sich ("Angebot") und die "Preisliste."

Bis jetzt hat man immer eine komplette Zeile aus der Angebotsliste kopiert und in Angebot eingefuegt, allerdings so, dass der bereits vorhandene Inhalt nach unten verschoben wurde.

Ich wuerde nun gern es so abaendern, dass dies automatisch geschieht. Es soll am Ende einer Produktzeile in Preisliste eine Art Button sein, der beim Anklicken das benoetigte Produkt in Angebot kopiert und auch hier wieder so, dass der Rest nach unten verschoben wird. (Ansonsten wuerde ja die Rechnung ueberschrieben.)

Wie kann man soetwas realisieren? Durch einfache Befehle (mir wurde SVERWEIS empfohlen, aber das scheint nicht das richtige zu sein) oder durch ein Makro? Wie bekomme ich ein Button bzw. eine Art Link hin, was beim Draufklicken den Befehl ausfuehrt??


Wuerde mich ueber eine Antwort sehr freuen und schonmal ein grosses Danke im Vorraus fuer alle, die sich die Muehe machen, mir zu helfen!

GrußgerfieldIn a world without walls and fenceswho needs Windows and Gates?
bei Antwort benachrichtigen
dirk681 gerfield „Ganze Zeilen(n) kopieren + neue erstellen. Wie? Makro?“
Optionen

Hallo gerfield,

SVERWEIS funktioniert zwar auch ganz gut, aber ich habe auch mal kurz ein Makro erstellt. (Da es logischer ist, eine Tabelle von oben nach unten zu füllen, habe ich das hier mal so vorgesehen).

Vorbereitung:
Im Blatt "Angebot" die letzte Zeile, über der dann alle neuen Zeilen eingefügt werden, mit dem Namen "Ende" versehen.
Im Blatt "Preisliste" den Kopfbereich fixieren und dort eine Schaltfläche plazieren, die dann immer sichtbar bleibt, auch wenn man weit unten in der Preisliste ist.
Dieser Schaltfläche dann folgendes Makro zuordnen:

Sub Makro()
ActiveCell.Rows("1:1").EntireRow.Select '(1)
Selection.Copy
Sheets("Angebot").Select
Range("Ende").Select
ActiveCell.Offset(-1, 0).Range("A1").Select '(2)
Selection.Insert
Application.CutCopyMode = False
Sheets("Preisliste").Select
End Sub

(1) markiert die ganze Zeile, auch wenn der Mauszeiger nur in einer Zelle steht. (2) Verschiebt die Einfügeposition um 1 Zeile über die mit "Ende" bezeichnete Zeile.

Wenn man jetzt mit der Maus in eine beliebige Zeile im Blatt "Preisliste" klickt und anschließend die oben erstellt eigene Schaltfläche betätigt, wird die komplette Zeile in das Blatt "Angebot" übernommen; und zwar immer mit 1 Zeile Abstand zur zuvor mit "Ende" benannten Schlußzeile.

Folgende Nachteile haben Makros aber:
1. kein Rückgängig
2. Wird ein Blatt umbenannt, muß dies im Makro manuell auch gemacht werden.

Viel Spaß beim Umsetzen.

Gruß
Dirk

P.S. Das Erstellen des Makros hat max. 5 min gedauert. Der Text dazu deutlich länger.

bei Antwort benachrichtigen