Anzeige
Archiv - Navigation
1892to1896
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

FOR-Schleife, Wert in Nebenspalte addier

FOR-Schleife, Wert in Nebenspalte addier
15.08.2022 23:48:24
Wolfgang
Hallo liebe Experten,
bitte um eure wertvolle Hilfe...
Habe jetzt schon einige Tage probiert und versucht, aber meine Kenntnisse sind leider zu bescheiden.
in aller Kürze geht es in dem Teil meines Makros, wo ich nicht weiterkomme, um Folgendes:
Ist für unseren Sportverein.
Ich habe in Spalte A die "Anzahl freie Kursplätze", in Spalte B die "Kursbezeichnung" und in Spalte Q (=17) die "Anzahl der Personen auf der Warteliste" (in Spalte Q steht Null oder eine negative ganze Zahl).
Jetzt möchte ich die Spalte A durchsuchen von A5 bis A44, dafür habe ich die FOR-Schleife gewählt, das habe ich mir hier im Forum zusammengestoppelt...
Der Wert von Spalte A ist entweder größer als Null oder gleich Null oder kleiner als Null (kleiner als Null =zuviele Personen im Kurs).
Wenn der Wert von Spalte A Dieser Wert soll dann als positive Zahl in der ActiveCell ausgegeben werden (die ActiveCell ist ganz woanders, weil ich meine Suchergebnisse im Bereich ab AR120 abbilde... wobei der Ausgabebereich nicht immer fix in AR120 beginnt, sondern hängt das von den Ergebnissen der Suchroutine ab, die auch Bestandteil meines Makros ist und unmittelbar davor abläuft... daher kann ich leider ActiveCell.Offset nicht verwenden, um die Spalte Q anzusprechen... die ActiveCell ist bei mit eben etwa im Bereich AR120...
Bitte wie kann ich in der gefundenen Zeile in meiner Range A5:A44, den Wert in Spalte Q addieren und dann über AcitveCell.Offset ausgeben?
hier der relevante Code-Ausschnitt bitte:
Dim c2 As Range
Dim c3 As Integer
Dim count2 As Integer
count2 = 2
For Each c2 In Range("a5:a44")
If c2.Value c3 = c2.Value * (-1) 'Wert von Spalte A mit -1 multiplizieren
ActiveCell.Offset(count2 + 1, -1).Value = c3 'in Spalte A den Wert von Spalte A schreiben wenn kleiner als 1
ActiveCell.Offset(count2 + 1, 0).Value = c2.Offset(0, 44).Value 'in Spalte B die genaue Kursbezeichnung schreiben
count2 = count2 + 1
End If
Next c2
Ich danke euch vielmals im Voraus!!
Herzliche Grüße!
Wolfgang

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

Betreff
Datum
Anwender
Anzeige
AW: FOR-Schleife, Wert in Nebenspalte addier
16.08.2022 00:42:44
{Boris}
Hi,
ist mir alles noch nicht so ganz klar - aber warum nutzt Du nicht einfache Funktionen wie WENN / SUMMEWENN etc.?
Das liest sich bislang so, als ob es damit funktionieren müsste.
VG, Boris
AW: FOR-Schleife, Wert in Nebenspalte addier
16.08.2022 01:29:29
Wolfgang
ok, danke!
Es ist jetzt gelöst !
Hier die relevanten Code-Zeilen, falls es auch jemand braucht...
Dim rangezeile As Integer
rangezeile = c2.Cells(0).Row + 1 'Zeile der Range auslesen.

und hier ist der gesamte Code:
Dim rangezeile As Integer
Dim c2 As Range
Dim c3 As Integer
Dim count2 As Integer
count2 = 2
For Each c2 In Range("a5:a44")
If c2.Value < 1 Then
rangezeile = c2.Cells(0).Row + 1 'Zeile der Range auslesen.
c3 = (c2.Value * (-1)) + Cells(rangezeile, 17).Value 'Wert von Spalte A mit -1 multiplizieren und Wert von Spalte 17 (=Spalte Q, Warteliste) addieren.
ActiveCell.Offset(count2 + 1, -1).Value = c3 'in Spalte A den Wert von Spalte A schreiben wenn kleiner als 1
ActiveCell.Offset(count2 + 1, 0).Value = c2.Offset(0, 44).Value 'in Spalte B die genaue Kursbezeichnung schreiben
count2 = count2 + 1
End If
Next c2
Ich danke euch allen und wünsche einen großartigen Wochenstart!
Wolfgang
Anzeige
AW: FOR-Schleife, Wert in Nebenspalte addier
16.08.2022 06:26:59
GerdL
Hallo Wolfgang, meine Frühstücksvariante.
Dabei ist unterstellt, dass die Bezeichnungen wie von dir beschrieben schon in Spalte B vorhanden sind.
Ohne die Aktive hättest du die Fragestellung mit Summewenn-Formel in Hilfspalte u. Autofilter lösen können.
Wenn allerdings Formeln mit Bezug auf die aktive Zelle vorgeschlagen werden, bin ich etwas irritiert. :-)

Sub Unit()
Dim c2 As Range, Outputcell As Range
Set Outputcell = ActiveCell
Select Case Outputcell.Column
Case 1, 2, 16, 17, 44, 45
Exit Sub 'Active Zelle nur akzeptieren, wenn außerhalb verwendeter Spalten
End Select
For Each c2 In Range("a5:a44")
If c2.Value 
Gruß Gerd
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige