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

Code Kürzen ?

Code Kürzen ?
15.05.2007 09:02:03
Heinz H

Hallo Leute
Habe unteren Code von Mustafa für 1.Monat (Jänner)
"U1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 3), Cells(lngRow, 7)), "1U")"
bekommen.
Nun brauche ich aber den Code für 12.Monate.
Könnte man den Code nicht kürzen.
Es wird immer um 9 hochgezählt.
Könnte mir Bitte jemand dabei helfen ?
Danke & Gruß Heinz
U1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 3), Cells(lngRow, 7)), "1U")
U1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 12), Cells(lngRow, 16)), "1U")
U1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 21), Cells(lngRow, 25)), "1U")
U1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 30), Cells(lngRow, 34)), "1U")
U1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 39), Cells(lngRow, 43)), "1U")
U1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 48), Cells(lngRow, 52)), "1U")
U1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 57), Cells(lngRow, 61)), "1U")
U1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 66), Cells(lngRow, 70)), "1U")
U1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 75), Cells(lngRow, 79)), "1U")
U1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 84), Cells(lngRow, 88)), "1U")
U1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 93), Cells(lngRow, 97)), "1U")
U1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 102), Cells(lngRow, 106)), "1U")

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

Betreff
Datum
Anwender
Anzeige
AW: Code Kürzen ?
15.05.2007 10:37:01
Harald E
Hallo Heinz,
grundsätzlich wäre sowas machbar.
In der mit 'hier gekennzeichneten Zeile fehlt noch das, was Du mit dem jeweiligen U1 vorhast.
x = 3
For i = 1 To 12
U1 = WorksheetFunction.CountIf(Range(Cells(lngRow, x), Cells(lngRow, x + 4)), "1U")
'hier
x = x + 9
Next i
Gruß
Harald

AW: Code Kürzen ?
15.05.2007 10:40:54
Heinz H
Hey Harald
Super mal wieder was von Dir zu hören !!
Hier der Original Code.
Hoffe Du kannst mir Bitte weiterhelfen !!
Gruß Heinz


Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngRow As Long
If Target.Column > 5 Then Exit Sub
lngRow = Target.Row ' diese Zeile aktivieren Wenn nur die Aktuell geänderte Zeile neu berechnet  _
werden soll
' For lngRow = 2 to 100  ' diese Zeile und die "Next" Zeile ganz unten im Code aktivieren wenn  _
die Zeilen 2 bis 100 bei jeder Änderung neu Berechnet werden sollen
' Zählen Wenn in Aktiver Zeile Spalte A bis Spalte E der Eintrag 1U, 1K, 1BF vorkommt
U1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "1U")
U2 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "1K")
U3 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "1BF")
' Zählen Wenn in Aktiver Zeile Spalte A bis Spalte E der Eintrag 2U, 2K, 2BF vorkommt
V1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "2U")
V2 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "2K")
V3 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "2BF")
' Zählen Wenn in Aktiver Zeile Spalte A bis Spalte E der Eintrag 3U, 3K, 3BF vorkommt
W1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "3U")
W2 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "3K")
W3 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "3BF")
' Zählen Wenn in Aktiver Zeile Spalte A bis Spalte E der Eintrag 1, 1Ü, 1B vorkommt
X1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "1")
X2 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "1Ü")
X3 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "1B")
' Zählen Wenn in Aktiver Zeile Spalte A bis Spalte E der Eintrag 2, 2Ü, 2B vorkommt
Y1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "2")
Y2 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "2Ü")
Y3 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "2B")
' Zählen Wenn in Aktiver Zeile Spalte A bis Spalte E der Eintrag 3, 3Ü, 3B vorkommt
Z1 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "3")
Z2 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "3Ü")
Z3 = WorksheetFunction.CountIf(Range(Cells(lngRow, 1), Cells(lngRow, 5)), "3B")
If Cells(lngRow, 6) = "" Then ' Wenn Wert in Zelle dann nix Schreiben
' Eintrag 1 in Spalte 6 wenn In Aktiver Zeile 1U, 1K, 1BF steht und 1, 1Ü, 1B fehlt
If U1 + U2 + U3 > 0 And X1 + X2 + X3 = 0 Then Cells(lngRow, 6) = 1
If U1 + U2 + U3 = 0 And X1 + X2 + X3 = 0 Then Cells(lngRow, 6) = 1
' Eintrag 2 in Spalte 6 wenn In Aktiver Zeile 2U, 2K, 2BF steht und 2, 2Ü, 2B fehlt
If V1 + V2 + V3 > 0 And Y1 + Y2 + Y3 = 0 Then Cells(lngRow, 6) = 2
If V1 + V2 + V3 = 0 And Y1 + Y2 + Y3 = 0 Then Cells(lngRow, 6) = 2
' Eintrag 3 in Spalte 6 wenn In Aktiver Zeile 3U, 3K, 3BF steht und 3, 3Ü, 3B fehlt
If W1 + W2 + W3 > 0 And Z1 + Z2 + Z3 = 0 Then Cells(lngRow, 6) = 3
If W1 + W2 + W3 = 0 And Z1 + Z2 + Z3 = 0 Then Cells(lngRow, 6) = 3
End If ' Ende wenn Wert in Zelle nix Schreiben
' Next lngRow
End Sub


Anzeige
AW: Code Kürzen ?
15.05.2007 11:08:35
Rudi Maintaire
Hallo,
muss man das verstehen?


' Eintrag 1 in Spalte 6 wenn In Aktiver Zeile 1U, 1K, 1BF steht und 1, 1Ü, 1B fehlt
If U1 + U2 + U3 > 0 And X1 + X2 + X3 = 0 Then Cells(lngRow, 6) = 1
If U1 + U2 + U3 = 0 And X1 + X2 + X3 = 0 Then Cells(lngRow, 6) = 1


warum fragst du U1...U3 überhaupt ab, wenn es egal ist, ob >0 oder = 0 ???
Dito bei V und W
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Code Kürzen ?
15.05.2007 11:13:28
Heinz H
Hallo Rudi
Diesen Code habe ich Dankenderweise von Mustafa bekommen.
Ja aber stimmt schon , das eine Null nicht abgefragt werden muß.
Gruß,Heinz

Anzeige
AW: Code Kürzen ?
15.05.2007 11:16:46
Heinz H
Hallo Rudi
Mustafa meinte wahrscheidlich
"' Wenn Wert in Zelle dann nix Schreiben"
das beim Aktualisieren schon ein Wert händisch eingetragen wurde,das sich dann der Wert nicht mehr ändert.
Gruß Heinz

AW: Code Kürzen ?
15.05.2007 12:16:43
Harald E
Hallo Heinz,
ich hätt's wissen müssen.
Erst eine eingekürzte Fassung rein, um dann nachher mit einem Code Marke: Netzhautpeitsche
nachzulegen.
Ist nicht bös gemeint.
Aber die bereits von Rudi angemahnten Zeilen entziehen sich auch meinem Verständnis.
Was hier über einen Ereigniscode abgewickelt wird, ist imho durch ein paar einfache Wenn(Dann(Zählenwenn);Sonst)-Formel zu lösen.
Zumal ich schwören könnte, dass dies nicht der einzigste Ereigniscode in dieser Mappe sein wird
(ich kenn dich) haha
Gruß
Harald

Anzeige
AW: Code Kürzen ?
15.05.2007 13:09:13
Rudi Maintaire
Hallo,
was willst du eigentlich erreichen?
Der Code erscheint mir viel zu lang und zu umständlich.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: An Harry & Rudi
15.05.2007 16:26:51
Heinz H
Hallo Ihr beiden
Habe vor ein paar Tagen hier im Forum um Hilfe gebeten,bei meinen Schichtkalender die fehlenden Schichten über VBA automatisch einzufügen.
Siehe Link
https://www.herber.de/forum/messages/870039.html
Dankenswerter weise hat sich Mustafa die Mühe gemacht und mir den Code geschrieben,für 1 Monat.
Da aber das Jahr bekannterweise 12.Monate hat bräuchte ich den Code für 12.Monate .
Auch an Euch ein Danke für Eure Kostbare Zeit.
Vielleicht könnt Ihr mir nun Bitte weiterhelfen.
Ich bräuchte wie gesagt den Code für Celle 3,12,21 usw.
Danke & Gruß Heinz

Anzeige
AW: An Harry & Rudi
17.05.2007 08:08:01
schauan
Hallo Heinz,
die Antwort von Harald passt ja, damit wäre die Frage doch beantwortet.
Hoffe geholfen zu haben Grüße von André aus Gera - Stadt der Buga 2007 - Excel-97-2003

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige