316 Aufrufe
Gefragt in Tabellenkalkulation von robbi58 Mitglied (966 Punkte)

Einen angenehmen Abend an die Runde!

Ich verwende oft Tabellenblätter, in denen Zufallszahlen (hier im Beispiel grün eingefärbt) erzeugt werden.

Im nächsten Schritt lese ich die generierten Daten aus  (das geschieht mittels Zellbezügen in den Spalten O:AC).

Logischerweise werden bei der nächsten Neuberechnungen nicht nur die Zahlen neu berechnet, sondern die dazugehörigen Zellbezüge verändern sich dementsprechend.

Meine Frage lautet: gibt es eine Möglichkeit, dass bei der nächsten Neuberechnung das Auslesen in den Zeilen 3 und 4 erfolgt, dann in Zeile 5 und 6 usw.? (immer um zwei Zeilen weiterspringt). Damit könnte ich mit geringem Aufwand, bzw. mit wenigen Klicks viele Daten generieren und in weiterer Folge auslesen!

Ich bedanke mich im Voraus für mögliche Lösungsvorschläge!

Noch einen angenehmen Abend wünscht Robert

7 Antworten

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Robert,

kopiere den Bereich O1 bis AC2 und füge diesen in Zelle O4 ein. Die Bezüge sollten dann automatisch an den neuen Bereich angepasst werden (soweit keine absoluten Bezüge verwendet werden).

Dann kannst du den eingefügten Bereich (der noch markiert sein sollte) einfach mit der Maus um ein Zeile nach oben ziehen.

Wenn dir das zu viele Klicks sind, kann man so etwas natürlich auch mit einem Makro lösen.

Gruß

M.O.
0 Punkte
Beantwortet von robbi58 Mitglied (966 Punkte)
Guten Morgen allerseits!

Zunächst recht herzlichen Dank an M.O. für deine Rückmeldung.

Ich habe bisher auf ähnliche Art und Weise gearbeitet.

Mein Ziel ist es, sogenannte „Datenbanken“ anzulegen mit jeweils ca. 100 Beispielen.

Bei in etwa 100 Tabellen dieser Art kann man sich ausrechnen, wie viele Klicks notwendig sind.

Deswegen meine Frage, um dieses Prozedere zu vereinfachen.

Ich probiere jetzt mal die verwendeten Formeln nebeneinander zu kopieren und die Zellbezüge herzustellen.

Um das Ganze dann nach unten zu kopieren.

LG Robert
+1 Punkt
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Robert,

bei 100 Tabellen ist das natürlich etwas Arbeit.

Aber schau mal, ob dir dieser Link hier weiterhilft: Liste lückenlos

Gruß

M.O.

0 Punkte
Beantwortet von robbi58 Mitglied (966 Punkte)
Hallo M.O.!

Ich habe die Matrixformel eingegeben und diese funktioniert einwandfrei, wenngleich ich die Daten im Anschluss nochmals weiterbearbeiten muss.
Aber es erspart doch einiges an Arbeit.

Recht herzlichen Dank für deine Hilfe!

LG Robert
0 Punkte
Beantwortet von robbi58 Mitglied (966 Punkte)
Bearbeitet von robbi58

Hallo allerseits!

Ich habe lange nach einer Lösung meines Problems gesucht und bin jetzt in diesem Forum fündig geworden (das Makro stammt von beverly).

Ich stelle zu meinen Daten (Zufallszahlen), die ich auslesen möchte, Zellbezüge her.

Diese (in diesem Beispiel die Zeile 1) werden dann per Makro auf das gewünschte Arbeitsblatt (hier Arbeitsblatt2) in die erste freie Zeile kopiert. Und zwar so kopiert, dass nur die Werte, nicht aber die Bezüge, übertragen werden.

Sub kopieren()
With Worksheets("Tabelle2")
Worksheets("Tabelle1").Rows("1:1").Copy
.Cells(IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1, 1).PasteSpecial Paste:=xlValues
End With
Application.CutCopyMode = False
End Sub

Wer das Makro mehrmals hintereinander ausführen möchte, kann die bestehende Formel um die Anzahl der Wiederholungen ergänzen:

Sub kopieren()

Dim x As Long 'Veriablendeklaration

For x = 1 To 50 '50 maliger Durchlauf

With Worksheets("Tabelle2")

Worksheets("dezimal verschieden").Rows("5:24").Copy

.Cells(IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1, 1).PasteSpecial Paste:=xlValues

End With

Application.CutCopyMode = False

Next x

End Sub

LG Robert

 

0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hast du mal versucht den Bereich O1 bis AC3 (Achtung nicht 2) zu markieren und dann nach "unten zu ziehen? Oder: du die Zeilen 3 und 4 zunächst wieder manuell herstellst und dann O1 bis AC4 markierst und dann nach "unten" ziehst? Vielleicht habe ich dein Problem aber auch falsch verstanden.
0 Punkte
Beantwortet von robbi58 Mitglied (966 Punkte)
Bearbeitet von robbi58
Hallo Rahi!

Nachdem ich nur einzelne Zellen im Bereich von sagen wir A1:G10 auslesen will, komme ich um Behelfszellen, in denen ich die Bezüge zu den von mir ausgewählten Zellen herstelle (meist werden in diesen Zufallszahlen erzeugt), nicht herum.

Mit dem zuletzt angezeigten Makro kann ich dann die Behelfszellen auslesen (dabei werden nur die Werte, nicht aber die Bezüge übernommen) und z. B. in die erste leere Zeile in das Arbeitsblatt 2 kopiert. Zusätzlich kann ich aber durch Eingabe eines Zahlenwertes für x die Anzahl der Wiederholungen einstellen.  Somit erhalte ich beim einmaligen Ausführen des Makros so viele kopierte Zeilen (meine Datenbank), wie ich in das Makro unter der Anzahl der Wiederholungen (x-Wert) eingegeben habe.

Aber danke für deine Anregung!

LG Robert
...