Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Funktion mit dynamischem Range-Parameter





Frage

Hallo liebes Forum, ich habe folgendes Problem: Ein Makro soll automatisch eine SLOPE Funktion über einen Zellbereich ausführen. Ärgerlicherweise kann sich jedoch die Zeilenzahl des Bereichs ändern. Wie könnte ich den Bereichsbezug variabel gestalten? Ich hätte mir gedacht mit der Funktion Count() die Zahl der "gefüllten" Zeilen in einer Zelle anzeigen zu lassen und diese dann in Form einer Variable einzufügen. Doch daran bin ich bisher gescheitert... Vielleicht kann mir ja wer weiterhelfen bzw. wenn jemand eine idealere Lösung für das Problem kennt wäre ich sehr dankbar! Liebe Grüße, Rudi

Antwort 1 von CaroS

Hallo rudigus!

Zitat:
Wie könnte ich den Bereichsbezug variabel gestalten?

Na mit Variablen.

Die Frage ist nur, woran erkennt man (als Mensch und als Makro), wie groß der Bereich gerade ist?
Zitat:
Ich hätte mir gedacht mit der Funktion Count() die Zahl der "gefüllten" Zeilen in einer Zelle anzeigen zu lassen

In einer Zelle gibt es keine Zeilen.

Wie immer würden auch hier genauere Angaben, ein Beispiel und/oder eine Datei weiterhelfen. Aber wie so oft muss man auch hier wieder dem Fragesteller jede Kleinigkeit mühsam aus der Nase ziehen.

Gruß,
CaroS

Antwort 2 von rudigus

Hallo Caros,
danke für deine rasche Antwort

Ich habe mich bemüht die Fragestellung kurz und einfach zu halten. Geworden ist sie unpräzise und unzureichend. Tut mir leid!

Ich versuchs nochmal:

In 2Spalten stehen eine bestimmte Anzahl an Daten.
(Dabei handelt es sich um XY-Werte einer Messung)
Normalerweise ist der Bereich A1:B16, kann aber auch nur zB. A1:B15, A1:B14 usw. sein.

Nun soll von diesen Daten die Steigung mit der Funktion SLOPE() die Steigung berechnet werden, wobei immer "known_y´s" bzw. "known_x´s" als bereich angegeben werden müssen.
Das Problem ist, dass sich dieser Bereich ja ändert
daher dem Makro gesagt werden muss, wann es wieviele Zeilen für die Funktion anwählen soll.

Da ich eine ziemliche VBA-Null auch die dumme Frage mit der Variable...

Ich hoffe ich habs diesmal etwas verständlicher ausgedrückt.

Lg,
Rudi

Antwort 3 von JoeKe

Moin Rudi,

versuch es mal so:

Option Explicit

Sub Steigung()

Dim loLetzte As Long
loLetzte = Cells(Rows.Count, 2).End(xlUp).Row

ActiveCell = Application.WorksheetFunction.Slope(Range(Cells(1, 2), Cells(loLetzte, 2)), _
Range(Cells(1, 3), Cells(loLetzte, 3)))

End Sub


In dem Beispiel stehen die Werte in den Spalten B und C.
Mit loLetzte wird die letzte belegte Zelle der Spalte B ermittelt.


Gruß

JöKe

Antwort 4 von rudigus

Vielen Dank Jöke!

Es funktioniert!

Liebe Grüße ,

Rudi

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: