Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
616to620
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
616to620
616to620
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Summe bilden

Summe bilden
02.06.2005 07:08:06
Gregor
Guten Morgen
Ich will per VBA eine Summe aus Zahlen in nichtaneinanderfolgenden Zellen bilden und diese in einer Variablen einlesen.
Ich verschte es wie folgt, aber das geht natürlich nicht.
Wie muss der Befehl lauten (ohne eine Formel in die Zelle zu schreiben)?
Summe = Cells(Target.Row, 23) + Cells(Target.Row, 25) + Cells(Target.Row, 27) + _
Cells(Target.Row, 29) + Cells(Target.Row, 31)
Besten Dank
Gregor

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summe bilden
02.06.2005 07:27:35
IngGi
Hallo Gregor,
natürlich geht es so. Oder meinst du mit "geht natürlicht nicht", dass es zu umständlich ist, weil es zu viele Zellen sind? Dann versuch mal folgendes, vorausgesetzt du willst jede 2. Spalte summieren:
Summe = 0
For i = 23 To 255 Step 2
Summe = Summe + Cells(Target.Row, i)
Next i
Gruss Ingolf
AW: Summe bilden
02.06.2005 08:12:58
Gregor
Hallo Ingolf
Gestern hatte ich zB folgende Ergebnisse:
100, 34 = 10034 statt 134
Ich hab's jetzt nochmals geprüft, und siehe da mit richtigen Ergebnissen.
Dein Vorschlag ist jedoch besser!
Vielen Dank
Gregor
AW: Summe bilden
02.06.2005 09:52:01
Galenzo
Dim Summe as Long
Dim rngColumns As Range
Set rngColumn = Range("W:W,Y:Y,AA:AA,AC:AC,AE:AE")
Summe = WorksheetFunction.Sum(Intersect(Target.EntireRow, rngColumn))
Viel Erfolg!
Anzeige
AW: Summe bilden
02.06.2005 11:12:37
Gregor
Hallo Galenzo
Das ist aber eine elegante Variante.
Bei der Ausführung erhalte ich jedoch die Meldung für Target
Variable nicht definiert. "Target.EntireRow" ist ja aber ein Schlüsselwort, oder?
Wo liegt der Fehler?
Gruss Gregor
AW: Summe bilden
02.06.2005 12:31:41
Galenzo
richti.
da ich in deiner Frage "Target" gelesen habe bin ich davon ausgegangen, daß du diese Summierung innerhalb eines Worksheet_Change oder Worksheet_SelektionChange-Ereignisses ausführen möchtest. In diesen beiden Ereignisprozeduren ist Target der übergebene Bereich.
Ansonsten mußt du "Target" ersetzen durch eine Zelle der zu summierenden Spalte.
Summe = WorksheetFunction.Sum(Intersect(Cells(1, 1).EntireRow, rngColumn))
Hintergrund: Intersect bildet die Schnittmenge zweier Bereiche. Das sind hier zum einen deine komplette Zeile und die definierten Spalten. Dieser verbleibende Bereich wird summiert.
Viel Erfolg!
Anzeige
AW: Summe bilden
02.06.2005 12:42:44
Gregor
Galenzo
Sorry, deine Vermutung stimmt natürlich. Nur habe ich die Formel zuerst mit einer neuen Datei getestet, über den normalen Aufruf einer Sub.
Beide Möglichkeiten funktionieren jetzt bestens und ich bin wieder ein wenig schlauer.
Herzlichen Dank
Gregor
Anschlussfrage
02.06.2005 12:52:29
Gregor
Galenzo
Kannst du mir noch sagen, wie ich den Befehl ändern muss um verschiedene Zellen in einer Spalte zu addirern. ZB. C3, C5, C7 und C9
Gregor
AW: Anschlussfrage
02.06.2005 13:12:21
Galenzo
Dim Summe As Long
Dim rngRows As Range
Set rngRows = Range("1:1,3:3,5:5,7:7,9:9")
Summe = WorksheetFunction.Sum(Intersect(Target.EntireColumn, rngRows))
[b1] = Summe
Anzeige
Danke
02.06.2005 13:27:40
Gregor
Hallo Galenzo
Nochmals vielen Dank
Grgor

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige