Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
148to152
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
148to152
148to152
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

multiplikation v. spalten

multiplikation v. spalten
23.08.2002 12:36:33
christian
Hi,
ich möchte gerne jede Spalte mit jeder anderen multiplizieren
und die Produkte am besten auf ein neues Tabellnblatt in Spalten ausgeben, da man sonst mit dem colum.count Probleme bekommt ;-(
- mein "steh auf dem schlauch problem" ist aber der, dass
var1 erst soviele Schleifenrunden konstant bleiben soll, wie
Spalten vorhanden sind !
..da muss eine dritte Laufvariable her, oder & wie !?

bsten dank für tips & tricks , grüsse christian

Sub multiplySpecial()
Dim i As Integer
Dim j As Integer
Dim doErgeb As Double
Dim basis As Range
Set basis = Worksheets("Tabelle1").UsedRange
For j = 1 To basis.Columns.Count
For i = 1 To basis.Rows.Count
var1 = basis.Cells(i, j).Value
var2 = basis.Cells(i, j + 1).Value
doErgeb = var1 * var2
'Später auf anderes Tabellenblatt
Cells(i, j + basis.Columns.Count) = doErgeb
Next i
Next j
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: multiplikation v. spalten
23.08.2002 13:25:04
Udo RiHü
Hallo,
Sub test()
Set basis = Sheets(1).UsedRange
For R = 1 To basis.Rows.Count
n = 1
For s = 1 To basis.Columns.Count - 1
var1 = basis.Cells(R, s)
For T = s + 1 To basis.Columns.Count
var2 = basis.Cells(R, T)
DoErg = var1 * var2
Sheets(2).Cells(R, n) = DoErg
n = n + 1
Next T
Next s
Next R
End Sub

multipliziert jede Spalte mit allen anderen und schreibt die Ergebnisse in Blatt2 (1 mit 2...n; 2 mit 3....n; bis n-1*n)

Gruss Udo

Re: multiplikation v. spalten
23.08.2002 14:01:57
Gabor
Hallo Christian,

Wenn ich das richtig sehe, meinst Du, daß nebeneinanderliegende Spalten miteinander multipliziert werden(?).
1. Was passiert mit der letzten Spalte ?
Lt. Deiner Formel ist das letzte Ergebnis immer Null, da ja
var2 denn Wert von der Spalte erhälten, die neben der
letzten belegten Spalte liegt. Und diese wäre ja leer.
2. UsedRange liefert nicht zuverlässig die letzte Benutzte Zeile oder Spalte, da Excel ein "Gedächtnis" besitzt. D.h. wird aus letzten Zelle nur z.B. nur der Inhalt gelöscht, ist sie für Excel nicht leer. Dieser Gedächtnisspeicher wird erst beim Speichern einer Tabelle geleert.(hab ich selbst schon festgestellt ...leider)
Daher besser ...(bezieht sich auf Zeile 1, Spalte 1)

LetzteSpalte = Tabelle1.Cells(1, Columns.Count).End(xltoleft).Column
LetzteZeile = Tabelle1.Cells(Rows.Count,1).End(xlup).Row

Wenn Du nicht weißt, welche die längste Spalte oder Zeile ist, muß die Abfrage natürlich über alle Zeilen und Spalten laufen und dann eine Variable mit dem Neuen Endwert belegt werden, wenn er größer als der vorherige ist.

3. Sollen die Multiplikationsergebnisse aller Zellen addiert werden ????

Wenn Du nur die nebeneinanderliegenden Zellwerte spaltenweise multiplizieren willst, dann dreh einfach die Schleifen.


For i = 1 To basis.Rows.Count
For j = 1 To basis.Columns.Count
var1 = basis.Cells(i, j).Value
var2 = basis.Cells(i, j + 1).Value
doErgeb = var1 * var2
Tabelle2.Cells(i,j).Value = doErgeb
Next j
Next i

Anzeige
Re: multiplikation v. spalten
23.08.2002 14:56:20
Christian
BESTEN DANK !!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige