Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1208to1212
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 each Zelle in Target

For each Zelle in Target
Chris
Hallo zusammen,
folgendes makro erhöht den Wert in Zelle L11 um 1 bzw. senkt diesen, wenn Zelle J45 größer bzw. kleiner als J45 ist. Nun möchte ich dieses Makro auf weitere Zellen ausdehen, zB. J99 und J100, J 109 und 110 (insgesamt ca. 100 Stück, also 50 Paare). Immer wenn in diesen Zellen die kleinere Zelle größer als die "größere" Zelle ist, soll sich der Wert in L11 um 1 erhöhen bzw. um1 senken.
Mehrere Bereiche gliechzeitig überwachen soll mit "For each zelle in target" gehen. Als Anfängern weiss ich da nicht weiter. Hat da jemand einen Vorschlag?
dim anzahlpf as integer
anzahlPF = 0
If Range("J44").Value >= Range("J45").Value Then
anzahlPF = anzahlPF + 1
Range("L11").Value = anzahlPF
ElseIf Range("J44").Value 'anzahlPF = anzahlPF - 1
Range("L11").Value = anzahlPF
End If
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: For each Zelle in Target
05.04.2011 20:26:56
Gerd
'n Abend, Captain! :-)
Machen wir besser dort weiter, wo wir gestern aufgehört haben.
Crossposting u. nur ein kleines Häppchen der Prozedur sind nicht der Hit!
Gruß Gerd
AW: For each Zelle in Target
05.04.2011 20:46:53
Chris
Hi Gerd,
in meinem andern Posting auf der anderen HP stürzt mir neuderings ständig der Rechner ab. Frag mich nicht wieso. Du wirst sehen, dass meine Antwort auf deine Frage ganze 18 Mal aufgetaucht ist, da Windows sich verabschiedet hat - seit gestern. Deshalb das Posting hier.
Da ich die Abstürze leid bin, werde ich mich gleich morgen zu einem Gemüsehändler aufmachen....
Ansonsten gilt nachwievor ein Vorschlag zu obigem Makro.
Danke,
Chris
Anzeige
das ist nicht richtig durchdacht
05.04.2011 21:02:41
Uduuh
Hallo,

ElseIf Range("J44").Value 

was soll denn sonst sein, wenn das Obere nicht zutrifft?
If Range("J44").Value >= Range("J45").Value Then
anzahlPF = anzahlPF + 1
Else
anzahlPF = anzahlPF - 1
End If
Range("L11").Value = anzahlPF

Steht das in einer Worksheet_change-Prozedur?
Welcher Wert ändert sich wodurch?
J44 oder J45, J99 oder J100 etc.? Oder einer von beiden?
Gruß aus’m Pott
Udo

AW: For each Zelle in Target
05.04.2011 22:37:48
Gerd
Hallo Udo,
genau deinen Vorschlag hatte ich auf das gezeigte Codeschnipsel schon gemacht.
Das Risiko, des nicht eingeschränkten Target ist nach Rückfrage gewollt.
Dann schauen wir mal, Chris.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range, Ziel As Range, Zelle1 As Range, Zelle2 As Range, Zelle3 As Range
Dim i As Integer
Dim varCheck As Variant, intCt As Integer, anzahlPF As Integer
On Error GoTo Fehler
For Each Zelle In Intersect(Target, Columns("K:K,O:O,W:W,AA:AA"))
Select Case Zelle.Row
Case 46 To 53: Set Ziel = Worksheets(3).Cells(44, 10)
Case 85 To 92: Set Ziel = Worksheets(3).Cells(83, 10)
Case 123 To 131: Set Ziel = Worksheets(3).Cells(122, 10)
End Select
If Not Ziel Is Nothing Then
Ziel.Value = Ziel.Value - Worksheets(5).Cells(Zelle.Row, Zelle.Column).Value
Select Case Zelle.Value
Case "LP"
Ziel.Value = Ziel.Value + 0.5
Worksheets(5).Cells(Zelle.Row, Zelle.Column).Value = "0.5"
Case "TRR"
Ziel.Value = Ziel.Value + 0.5
Worksheets(5).Cells(Zelle.Row, Zelle.Column).Value = 0.5
Case "------"
Worksheets(5).Cells(Zelle.Row, Zelle.Column).Value = ""
Case Else
Ziel.Value = Ziel.Value + 1
Worksheets(5).Cells(Zelle.Row, Zelle.Column).Value = "1"
End Select
Set Ziel = Nothing
End If
Next Zelle
Set Zelle1 = Range("J24")
Set Zelle2 = Range("B45")
Set Zelle3 = Range("B84")
If Range("K34").Value > 0 Then
If Range("J44").Value > Range("J37").Value Then
Zelle1.Font.ColorIndex = 3
Else
Zelle1.Font.ColorIndex = 1
End If
Else
If Range("J44").Value > Range("J45").Value Then
Zelle1.Font.ColorIndex = 3
Else
Zelle1.Font.ColorIndex = 1
End If
End If
If Range("B66").Value > Range("B65").Value Then
Zelle2.Font.ColorIndex = 3
Else: Zelle2.Font.ColorIndex = 1
End If
If Range("B105").Value > Range("B104").Value Then
Zelle3.Font.ColorIndex = 3
Else: Zelle3.Font.ColorIndex = 1
End If
For i = 21 To 140 Step 39 ' HIER BEREICH ERWEITERN
If Range("J" & i).Value > 0 Then Range("L10").Value = Range("L10").Value + 1
Next i
varCheck = Array("J44:J45", "J99:J100", "J109:J110")
anzahlPF = (UBound(varCheck) + 1) * -1
For intCt = 0 To UBound(varCheck)
anzahlPF = anzahlPF + Abs(Range(Split(varCheck(intCt), ":")(0)) >= Range(Split(varCheck( _
intCt), ":")(1)))
Next
Range("L11").Value = anzahlPF
Fehler:
Application.EnableEvents = True
End Sub

Gruß Gerd
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige