Clever-Excel-Forum

Normale Version: Tabelle an Tabelle ankern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Guten Tag liebe Excelgötter,

ich möchte das erste mal eine etwas kompliziertere Excel-Datei erstellen. Dies klappt auch sehr gut, nur an einer Stelle hänge ich fest.

Ich habe in meinem Druckbereich eine Tabelle über =Filter(Choose(Xlookup()) eingefügt, welche je nach getroffener Auswahl mal länger und mal kürzer ist. Diese funktioniert auch tatsächlich genau so wie Sie soll.
Ich möchte nun direkt unter besagte Tabelle eine weitere Tabelle mit etwa gleicher Formel einfügen.
Gibt es eine Möglichkeit den Abstand zwischen den beiden Tabellen automatisch immer gleich zu halten? z.B. erste Tabelle endet A17--> zweite Tabelle startet A20; erste Tabelle endet A5--> zweite Tabelle startet A8.

Wäre hier für jede Hilfe dankbar, da ich bisher alle mir denkbaren Ansätze einer Lösung nicht umsetzten konnte.
Hallo Aira,

bin jetzt kein Excelgott, aber evtl. kann ich trotzdem helfen.

Dazu poste doch mal eine Beispieldateii und deinen Code.
Das wird auch den wirklichen Göttern dieses Olymps helfen.

Gruß,
Lutz
Moin!
Ich sehe da keine Möglichkeit!
Durch die dynamischen Formeln ist .SpillingToRange logischerweise variabel.
Um einen #ÜBERLAUF! sicher zu verhindern, wirst Du die Formeln nebeneinander schreiben müssen.
(oder eben die Formeln einmalig per VBA in die Tabelle schreiben, dann kann man (VBA) rechnen)
Macht aber nur Sinn, wenn man das Formelergebnis gleich in den Wert umwandelt.

Gruß Ralf

Die Variante mit VBA juckt mich!  19
Ich bastele mal etwas …
Funktioniert natürlich ausschließlich in Excel 365!

Modul Modul1
Option Explicit 
 
Sub Spills() 
Const FormulaText$ = "=RANDARRAY(RANDBETWEEN(2,4))" 
Const Abstand& = 3 
Const Durchlauf& = 4 
Dim i&, Start& 
Start = 1 
 
With Tabelle2 
  For i = 1 To Durchlauf 
    With .Cells(Start, 1) 
      .Formula2 = FormulaText 
      With .SpillingToRange 
        Start = Start + 3 + .Rows.Count 
        .Copy: .PasteSpecial xlPasteValues 
      End With 
    End With 
  Next 
End With 
End Sub 



Ergibt:
Arbeitsblatt mit dem Namen 'Tabelle2'
A
10,68959296
20,27481002
3
4
5
60,31025713
70,84983332
8
9
10
110,65094119
120,62943839
130,00337692
140,85087692
15
16
17
180,76276768
190,70960756
200,75503278
210,84801511
Hi,
bitte entschuldige die späte Antwort.

Anbei eine Beispieldatei.

Lieber RPP63,

leider weiß ich rein gar nichts über VBA, ist es möglich das VBA auf meine Excel Beispieldatei zurecht zu schneidern?

Aber schon einmal vielen Dank.
Moin!
Ich bleibe bei meinen Antworten #3 und #4
Entweder nebeneinander,
oder Neuschreiben per VBA.

Dies kann man zwar ins Worksheet_Calculate() auslagern, könnte aber je nach Größe die Datei ganz schön ausbremsen.
(heißt: bei Neuberechnung Spalte zunächst löschen und die Spill-Arrays neu schreiben)

Eindeutig besser ist aber imo das Nebeneinander.

Gruß Ralf

(29.03.2021, 08:18)Aira schrieb: [ -> ]leider weiß ich rein gar nichts über VBA, ist es möglich das VBA auf meine Excel Beispieldatei zurecht zu schneidern?

Das wäre zwar möglich, würde Dir aber im produktiven Betrieb überhaupt nichts bringen, da Du
  • es nicht auf Deine tatsächlichen Belange anpassen könntest
  • bei Problemen im laufenden Betrieb hilflos wärst
Verstehe mich nicht falsch, aber ein Forum dient nicht dazu, Komplettlösungen für Produktivdateien zu leisten.
Dies alleine schon aus Haftungsgründen.

Schließlich wirst Du kaum Deinem Chef sagen können, wenn die Datei unbrauchbar ist:
"Das hat aber der Ralf im CEF genau so geschrieben!"
Hallo Ralf,
da muss ich mich wohl Entschuldigen.
Du hast definitiv recht, die Lösung war nur auf einmal zu einfach greifbar.

Ich werde mal zusehen das ich an einer Excel-Schulung teilnehmen werde.

Trotzdem Danke und frohe Ostern.
Du brauchst Dich nicht entschuldigen.
Ich wollte "nur" auf die Folgen hinweisen.

Eine Schulung ist immer gut.
Aber ich freue mich jetzt schon auf das Gesicht des Dozenten, wenn Du ihn auf Spill-Formeln ansprichst und wissen willst, was dieser Code-Snippet bedeutet:
If Zelle.HasSpill Then Zelle.SpillParent.SpillingToRange.Delete
Huh

Auch Dir frohe Ostern!
Hallo, 19

man könnte auch einfach die Formeln per VBA schreiben und über einen Ereigniscode darauf reagieren. Dann können die Tabellen mehr oder weniger Zeilen haben - der Abstand bleibt der gleiche. 21
Ich hatte das ja in #4 skizziert.
Seiten: 1 2