2.6k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo liebes Forum,

ich habe ein Excel Sheet in das ich abhängig von CommandButtons Artikel mit Einrichtezeiten eintrage. Dadurch kann diese Tabelle ganz unterschiedliche Zeilenlängen besitzen.

Auf diesem Sheet soll in der letzten Spalte eine Rechnung durchgeführt werden, die sich aus den vorher geladenen Einrichtzeiten ergibt. Also beispielsweise: D4= D2*D3 usw.

Ich möchte an dieser Stelle fragen, wie es am cleversten ist diese einfache Rechnung dynamisch in der Spalte D4 durchzuführen.
Sodass bei 20 Artikeln auch nur die Spalte D bis 20 geht. Bei 30 nur 30 etc.

Vielen Dank vorab.

Eric

10 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Eric,

das müsste mit BEREICH.VERSCHIEBEN() gehen.

Vielleicht kannst Du ein Beispiel ins Netz stellen und nach hier verlinken.

Gruß
Rainer
0 Punkte
Beantwortet von
He Rainer,

bisher bin ich bei keiner Upload Seite angemeldet. Kennst du einen Anbieter bei dem es kostenlos und ohne registrierung geht?

Im Endeffekt möchte ich auch wirklich nur das in einer dynamisch wechselnd vollen Tabelle in der letzten Spalte eine Berechnung durchgeführt wird. Ich möchte aber nicht die Formel der letzten Spalte stupide bis D50000 runterziehen, sondern ich möchte das die Spalte nur bis zu der Zeile das Ergebnis anzeigt, bis zu der Zeile in der Artikel stehen.

Ich habe mich ein wenig über Bereich.Verschieben() belesen und glaube das geht in die richtige Richtung. Die Anwendung habe ich aber noch nicht verstanden.

Gruß Eric
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Eric,t

man muss da nicht unbedingt angemeldet sein, mal googeln hätte schon geholfen.-))

Hier eine mögliche Uploadadresse

Gruß
Rainer
0 Punkte
Beantwortet von
He Rainer,

entschuldige meine Faulheit.

Hier der Link:

http://www.file-upload.net/download-4078709/Dynamische-Spaltenberechnung.xlsm.html

VG Eric
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Eric,

da Du keine Formeln kopieren willst, habe ich Dir ein Makro eingebaut.

Nach dem Einfügen neuer Daten in Tabelle2 drückst Du einfach den Button "Berechnen"

Download

Gruß
Rainer
0 Punkte
Beantwortet von
He Rainer,

danke für die schnelle Antwort.

Gibts auch einen Weg ohne Extra nen Button zu betätigen.

Klar macht es nicht viel Aufwand, aber mein Excel Projekt soll später ein Kalkulationstool werden, derzeit arbeite ich schon viel mit Buttons und ich möchte ncht das der Benutzer auf jeder Seite mit Buttons arbeiten muss.

Vg Eric
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Eric,

hab's geändert.
Die Berechnung erfolgt jetzt beim Aktivieren von Tabelle2.

Download

Gruß
Rainer
0 Punkte
Beantwortet von
He Rainer,

danke das ist ne sehr gute Lösung.

Wenn ich mit der Range Variante arbeite gibt er mir kurz nach dem Start einen Laufzeitfehler an : "Typen unverträglich".

Ich lade eine Menge Daten aus mehreren Sheets in die Zieltabelle, dabei wird die Zieltabelle schon häufig aktiviert ohne das Sie komplett gefüllt sind und damit Spalten die ich für meine gewünschte Berechnung benötige leer sind. Kann es sein, das dies der Fehler ist?

Ich habe deine Lösung nun umgeschrieben und arbeite anstatt mit Range mit einem weiteren Zähler:

Private Sub Worksheet_Activate()
Dim i As Long, laR As Long
If Range("A2").Value = "" Then Exit Sub
laR = Cells(Rows.Count, 1).End(xlUp).Row
For i = 3 To laR
Cells(i, 7) = (Cells(i, 3) + Cells(i, 4)) * Cells(i, 5)
Next i

End Sub


Jetzt meckert das Makro "nur" noch wenn in einer der Spalten ein STring steht.

Vg
Eric
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Eric,

ich habe das Macro entsprechend Deines Beispieles erstellt und entsprechend Deines Zusatzwunsches verändert.

Wenn Du nun etwas anderes willst, als das was du anfangs beschrieben hast, kann ich Dir leider nicht helfen, da nur Du siehst, was Du vorliegen hast.
Habe keine Lust etwas nachzubauen, dessen Beschreibung sogar noch unklar ist.

Insofern werde ich keinen 3. Versuch starten.

Gruß
Rainer
0 Punkte
Beantwortet von
He Rainer,

ich kann aus betrieblichen Gründen das Tool nicht hochladen in denen die nachgefragten Funktionen laufen sollen. Tut mir leid das das Beispiel zu ungenau war.
Trotzdem Danke für deine Hilfe und Tipps.

Gruß
Eric
...