Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1608to1612
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
Inhaltsverzeichnis

Dem Objekt einen Wert zuweisen

Dem Objekt einen Wert zuweisen
13.02.2018 12:38:54
Hans-Jürgen
Hallo Wissende,
ich habe in meiner Anwendung mehrere Ranges definiert und brauche in einigen Fällen die horizontale und die vertikale Summe der Spalten bzw. Zeilen. Später kommt noch etwas mehr dazu, aber ich scheitere schon an der grundlegenden Funktion. Ich habe geschrieben
Function BereichHorizontalSummieren(aktBereich As Object) As Object
Dim lngSpalte As Long
Dim lngZeile As Long
Dim lngSumme As Long
For lngSpalte = 1 To aktBereich.Columns.Count
For lngZeile = 1 To aktBereich.Rows.Count
lngSumme = lngSumme + aktBereich.Cells(lngZeile, lngSpalte)
Next
Set BereichHorizontalSummieren.Cells(1, lngSpalte) = lngSumme
Next
End Function
aber laufe in der Set-Zeile auf den Fehler, "Objektvariable oder With-Blockvariable nicht festgelegt". Wahrscheinlich mache ich gerade einen Denkfehler - wer kann mir mal aufs Pferd helfen?
Vielen Dank
Hans-Jürgen

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dem Objekt einen Wert zuweisen
13.02.2018 12:49:56
Nepumuk
Hallo Hans-Jürgen,
ohne Set.
Gruß
Nepumuk
AW: Dem Objekt einen Wert zuweisen
13.02.2018 12:52:15
Hans-Jürgen
Hallo Nepomuk,
sorry, das vergaß ich zu erwähnen: Mit und ohne Set hatte ich schon ausprobiert (sicherheitshalber auch mit und ohne .Value)
Was könnte es sonst noch sein?
Viele Grüße
Hans-Jürgen
AW: Dem Objekt einen Wert zuweisen
13.02.2018 13:48:53
Michael
Hallo!
Warum
Function BereichHorizontalSummieren(aktBereich As Object) As Object 
wenn Du schließlich einen Long-Wert übergibst:
BereichHorizontalSummieren.Cells(1, lngSpalte) = lngSumme
Außerdem hat die Funktion an sich ja keine Zellen...
BereichHorizontalSummieren.Cells(1, lngSpalte)
Daher meine ich:
Function BereichHorizontalSummieren(aktBereich As Object) As Long
Dim lngSpalte As Long
Dim lngZeile As Long
Dim lngSumme As Long
For lngSpalte = 1 To aktBereich.Columns.Count
For lngZeile = 1 To aktBereich.Rows.Count
lngSumme = lngSumme + aktBereich.Cells(lngZeile, lngSpalte)
Next
BereichHorizontalSummieren = lngSumme
Next
End Function
LG
Michael
Anzeige
AW: Dem Objekt einen Wert zuweisen
13.02.2018 13:59:03
Hans-Jürgen
Hallo Michael,
nein, der Rückgabebereich soll ein Range-Objekt sein, kein einzelnes Long. Dass ich in meinem Versuch so eine Zuweisung hatte, lag daran, dass sie in einer Schleife war.
Vielleicht mal an dieser Stelle ein verkürztes Beispiel. Das Range sieht so aus:

20  22  24  26  28
40  44  46  48  49
60  61  62  63  64

(Die Zahlen sind nicht immer so symmetrisch, das dient nur der Visualisierung. Auch ist die Größe nicht immer 3x5, daher die Abfrage der Dimensionen)
Ich möchte nun als Funktionsergebnis ein Objekt haben, dass eine Zeile hoch und fünf breit ist:

120 127 132 137 141
Ich hoffe, so ist es verständlicher. Vielen Dank für deine Mühe!
Hans-Jürgen
Anzeige
Selbstedit
13.02.2018 14:30:27
Hans-Jürgen
Hallo zusammen,
ich habe mich nun entschieden, das nicht so kompliziert mit einer Funktion zu machen, sondern gehe jeweils die Zeilen / Spalten mit einer Schleife durch und nutze Application.Sum.
Vielen Dank für eure Mühe
Hans-Jürgen
AW: Auch gut, denn ich hätte ja eher vermutet...
13.02.2018 14:48:10
Hans-Jürgen
Hallo Michael,
wow, klasse! Genau das! Danke !!!!!!!!!!!!!!!!!
Ich war wieder mal zu kompliziert unterwegs und in den Möglichkeiten der objektorientierten Programmierung gefangen. ou made my day!
Hans-Jürgen
Na schön, hat's doch was gebracht! ;-) Gern, owT
13.02.2018 16:10:59
Michael

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige