Eine ganze Reihe per Knopfdruck kopieren?

bitte um Verständnis, daß ich hier in Dänemark mit der englischen Version arbeite...

In einem Rechenblatt möchte ich mehrere Zellen einer Reihe (oder eine ganze Reihe) gleichzeitig per Knopfdruck in die letzte freie Reihe eines Rechenblattes kopieren.

Im Prinzip funktioniert es ganz gut mit einer Zelle, aber wie können mehrere Zellen einer Reihe (oder eine ganze Reihe) gleichzeitig kopiert werden?

Button('Kopie';SetCell(B2 ... bis ... G2;$B$4:$B$2913;$J$3-3);$J$3-3)) - Selbst das Auffinden der letzten freien Reihe funktioniert perfekt: ;$J$3-3)) Aber hier: (B2 ... bis ... G2; fehlt mir die nötige Inspiration um von B2 bis G2 gleichzeitig zu kopieren...

Kann mir jemand helfen? Vielen Dank im Voraus! Sicherheitshalber meine Mailadresse: peter@glunz.dk - da meine Stammdaten möglicherweise nicht richtig aufaddiert werden?

Re: Eine ganze Reihe per Knopfdruck kopieren?

#10956 On 18 Januar, 2013 16:49 Thomas Kaegi said,

Hallo Peter

Zuerst zum Verständnis der Aufgabe.

1. Du sprichst von "mehrere Zellen einer Reihe (oder eine ganze Reihe)", die du kopieren möchtest. In der Formel schreibst du dann "B2 … bis … G2". Also handelt es sich bei deiner Reihe um eine Zeile. (Im Rechenblatt sprechen wir von Zeilen und Spalten).

2. Du möchtest diese "in die letzte freie Reihe eines Rechenblattes kopieren". Bist du sicher, dass du nicht die erste freie Zeile meinst? Normalerweise hängt man doch einen Eintrag unten an eine Tabelle und füllt die Tabelle nicht von unten her auf. Ich werde die Lösung so aufzeigen. Wenn du tatsächlich die Tabelle von unten füllen willst, dann muss der erste Teil der Formel entsprechend angepasst werden.

3. Du brauchst die Funktion "Knopf" (Button): Warum? Du kannst stattdessen eine Knopf-Komponente in die betreffende Rechenblattzelle setzen (Zelle auswählen und im Rechenblattmenü die Inhaltsart bestimmen). Da hast du wesentlich mehr Möglichkeiten für die Gestaltung oder auch für die Knopfart. Die Knopfkomponente kann natürlich auch irgendwo im Layout liegen und muss nicht unbedingt in eine Rechenblattzelle gelegt werden. Meine Formel ist für diesen Fall gedacht - falls du die Knopf-Funktion benützen willst, so musst du meine Formel noch entsprechend ergänzen:
Knopf('Kopie';[meineFormel])

In meinem folgenden Beispiel sind folgende Annahmen getroffen:
- Die Tabelle befindet sich im Rechenblatt "Tab"
- In allen besetzten Zeilen der Tabelle ist die die Zelle in Spalte B nicht leer.
- Der Inhalt der Zellen B2:G2 soll in die Zellen der ersten freien Zeile der Tabelle kopiert werden
- Im Rechenblatt "H" ist Zelle A1 als Hilfszelle benützt, in welchen der erste Teil der Formel den Index der ersten freien Zeile der Tabelle setzt, der dann im zweiten Teil benützt werden kann.

Hier die Formel:
SetzeZelle(Auswahl(Tab!$B:$B;IstLeer(LfdZelle);1);H!A1)&
HSuchlauf(Tab!B2:G2;1;0;SetzeZelle(LfdZelle;Tab!B1:G16000;H!A1;LfdIndex))

(Der Zeilenumbruch nach dem "&" ist nur wegen der Lesbarkeit eingefügt. In Formeln gibt es ja keine Zeilenumbrüche).

Erläuterung:

Erster Teil der Formel:
Mit der Auswahl-Funktion wird die erste freie Zelle in Spalte B des Rechenblatts Tab gesucht und mit SetzeZelle dieser Wert in die Zelle A1 des Rechenblatts H abgelegt.

Zweiter Teil der Formel:
Mit einem horizontalen Suchlauf werden die Zellen B2:G2 abgesucht und ihr Inhalt mit SetzeZelle in die entsprechende Zelle der ersten freien Zeile der Tabelle kopiert. Die Tabelle geht bis zum Ende des Rechenblatts in Zeile 16000.

Freundlicher Gruss
Thomas, ragtime-consult.ch