Hallo!
Bei folgendem Problem komme ich nicht weiter:
Ich habe in Excel eine Arbeitsblatt EINGABE und ein Arbeitsblatt DATEN.
In EINGABE habe ich übersichtlich alle Eingabefelder angeordnet und die Zellen auch benannt (z.B "Firma", "Straße", "PLZ", ...)
In DATEN habe ich eine Tabelle mit den dazupassenden Tabellenüberschriften (z.B "Firma", "Straße", "PLZ", ...)
Per Klick soll eine VBA Routine alle Einträge vom EINGABE Arbeitsblatt in das DATEN Arbeitsblatt in die obester Reihe nach der Überschrift - als in Reihe 2 - eintragen und die Eingebefelder im Arbeitsblatt EINGABE für die nächte Eingebe wieder löschen.
Per MacroAufzeichnung habe ich das Grundsätzlich schon gelöst - das Problem ist einerseits die Übersichtlichkeit des Ergebnisses und die Wartung ... wenn z.B. ein Datenfeld dazu kommt.
Range("Firma").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("DATEN").Select
Range("F2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("EINGABE").Select
Ziel ist es also, das Ganze übersichtlicher zu gestalten. Dazu dachte ich zum Einen an eine Funktion, welche das Kopieren von A nach B übernimmt wie:
Function ZelleKopieren(strZelleA, strZelleB)
Zum Anderen dachte ich an eine Liste mit Ausgangsort und Zielort, welche in einer Schleife abgearbeitet wird:
z.B ("Firma"; F2; "Straße"; G2; "PLZ"; H2; ....)
(Dass in im Datenarbeitsblatt auch mit Zellennamen arbeite ist wohl nicht möglich, da ich die Zeile vor der ganzen Routine erst erst einfüge. Dass ich "intelligent" die Überschrift der Spalte heranziehe (wo ja "Firma" steht), halte ich dann für wahrscheinlich überhaupt kompliziert. Mir wäre aber mit der Listenversion schon sehr, sehr geholfen.)
Mir bin für jeden Tipp dankbar. Ich stehe ich einfach an.
Vielen Dank und liebe Grüße,
Wolfgang
|