Rechnen mit variablen Spalten?

Hallo,

zurzeit bastele ich an einem (intelligenten) Makro für Excel, das mir Messdaten

a) importieren und
b) Berechnungen damit anstellen soll.

Das Importieren der Messdaten bereitet mir keinerlei Schwierigkeiten, da ich die kompletten Messdaten einfach als Tabellenblatt einfüge. Das Problem ist jetzt, dass die Anzahl der Messdaten variiert und ich irgendwie wissen muss, wie ich die Länge des Datensatzes als Variable abspeichern kann.

Ich möchte gerne mein Problem anhand eines einfachen Beispiels veranschaulichen:

Messdaten 1
---------------
Spannung Strom
1 V 2 A
2 V 4 A
4 V 8 A

Diese Messdaten importiere ich und berechne beispielsweise den Widerstand für jede einzelne Messdatenreihe:

Spannung Strom Widerstand
1 V 2 A 0,5 Ohm
2 V 4 A 0,5 Ohm
4 V 8 A 0,5 Ohm

Die nächste Messdatendatei könnte aber nun mehr (oder weniger) Werte enthalten:

Messdaten 2

Spannung Strom 
1 V 2 A
2 V 4 A
4 V 8 A
2 V 4 A
5 V 10 A

….
….
….

Ich muss also meine Spaltenanzahl variabel gestalten. Und Excel soll mir je nach Spaltenanzahl mehr oder weniger Werte ausgeben. Hat jemand eine Idee?

Gruß,

Pere

Hi!

Was ich immer mache (geht sicher auch „intelligenter“)

 Zeile = 1
 Do
 Zeile = Zeile + 1
 Loop Until (Cells(Zeile, "A").Value = "") Or (Zeile \> 1000)
 letzteZeile = Zeile - 1

Geht schnell und einfach!

Grüße
Gerald

Hallo,

kann es sein, dass Sie nicht Spalten sondern eine variable Zeilenanzahl meinen?
Die lässt sich z.B. so ermitteln und nutzen:

’ Nummer der letzten Zeile
lzeile=Cells.SpecialCells(xlLastCell).Row

’ Zyklus Berechnung
for i=1 to lzeile
'Berechnung Widerstand für Zeile

next

Ich würde aber ganz pragmatisch eine andere Verfahrensweise vorschlagen.
Fügen Sie doch einfach in der Spalte Widerstand Formeln „auf Vorrat“ ein -
z.B. 100 und blenden Sie die Nullwerte aus, wenn diese stören.

MfG Kawgan

Hi Pere,

for n=3 to worksheets(„Tabelle1“).range(„A65536“).end(xlup).row
cells(n,3)=cells(n,1)/cells(n,2)
next n

Gruß
Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]