Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1484to1488
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

If, And, Ergebniszeile, Zwischenergebnis Argh...

If, And, Ergebniszeile, Zwischenergebnis Argh...
31.03.2016 16:42:32
S.
Hallo zusammen,
mein Problem ist etwas schwierig zu beschreiben, aber ich versuche es dennoch mal verständlich rüber zu bringen:
Ich habe eine Tabelle erstellt, mit der ich alle Kunden auf einem Blick sehen kann und entsprechend den Trupps zuordnen möchte (tagesgenau).
Spalte A: Objekt
Spalte B: Leistung
Spalte C: Trupp
Spalte D-NI: Tage (365)
Jetzt möchte ich, dass mir Excel eine Warnung mittels MsgBox anzeigt, wenn ich einen Trupp an mehr als einem Objekt an einem Tag eingeplant habe. Ein Trupp darf aber mehrere Leistungen in EINEM Objekt an einem Tag ausführen.
Mein Gedankengang wäre ungefähr so: (allerdings fehlen mir die Kenntnisse in VBA um das auch umzusetzen)
WENN in der Spalte "Tag" mehr als 1 Zelle beschrieben ist (Value"")
UND in der Spalte "Objekt" in der Zeile des doppelten Wertes UNGLEICH in der Spalte "Objekt" in der Zeile der ausgewählten Zelle (Row.Selected) ist
UND in der Spalte "Trupp" in der Zeile des doppelten Wertes GLEICH = in der Spalte "Trupp" in der Zeile der ausgewählten Zelle ist.
DANN MsgBox "Trupp bereits verplant"
SONST End Sub
Ich hoffe man versteht was ich meine.
LG
Basti

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

Betreff
Datum
Anwender
Anzeige
AW: If, And, Ergebniszeile, Zwischenergebnis Argh...
31.03.2016 17:23:43
Fennek
Hallo,
unter der Bedingung, das immer das selbe Zeichen, z.b. 1, genutzt wird, könnte folgender Code helfen.
Im 'Kopf- des Arbeitsblattes:

Private sub worksheet_change(byval target as range)
Lr = range("a1").currentregion.rows.count
If intersect(target, range("d2:ni" & lr)) is nothing then exit sub
Dop = worksheetfunction.countifs(columns(target.column), target.value, columns(3), cells(target. _
row, 3))
If dop > 1 then msgbox "Doppelte Belegung"
End sub
Mfg

AW: If, And, Ergebniszeile, Zwischenergebnis Argh...
31.03.2016 17:40:28
S.
Hallo Fennek, leider hat das bei mir nicht funktioniert :-(
Überprüft er mir denn so jeden Tag einzeln? d.h. am 5.1. Kunde x Team a und am 6.1. Kunde y Team a. Sollte keine Meldung verursachen.

Anzeige
AW: If, And, Ergebniszeile, Zwischenergebnis Argh...
31.03.2016 17:59:02
Fennek
Hallo,
zuerst, meine Codes sind an meinem Nachbau auch nur minimal getestet.
Bitte lade eine Beispieldatei hoch, 5-10 Zeilen reichen, insbesondere ist wichtig, welche Werte du einträgst. Bitte im Format *.xlsx, anderes kann ich nicht öffnen. Vor morgen werde ich mich nicht damit beschäftigen.
Wie gut sind deine vba-kenntnisse? Konntest du den Code nachvollziehen?
Mfg

AW: If, And, Ergebniszeile, Zwischenergebnis Argh...
01.04.2016 07:57:00
S.
Hallo,
Ich habe eine Beispieldatei angehängt. Bei dem Beispiel sollte
am 01.01. keine Warnung ausgegeben werden, da Meier 2 Leistungen bei einem Kunden (Aldi) und einem Objekt (München) hat.
Am 02.01. sollte aber eine Warnung ausgegeben werden, da Meier einmal bei Aldi in München und gleichzeitig bei Edeka in Hamburg ist.
Am 03.01. sollte auch eine Warnung ausgegeben werden, da Meier zwar in München, aber einmal bei Edeka und einmal bei Aldi ist.
Zu deinem Code: den konnte ich nur teilweise nachvollziehen. Meine Kenntnisse in VBA sind etwas mehr als 0 aber weit weg von 1 :-) Ich werde ein paar Kommentare dazu schreiben wie ich den Code verstehen würde:
  Private sub worksheet_change(byval target as range)
Lr = range("a1").currentregion.rows.count (aktuell ausgewählte Zeile zählen)
If intersect(target, range("d2:ni" & lr)) is nothing then exit sub (Range ist von d2 bis ni,  _
gezählte Zeile)
Dop = worksheetfunction.countifs(columns(target.column), target.value, columns(3), cells( _
target.row, 3)) da steig ich aus....
If dop > 1 then msgbox "Doppelte Belegung"
End sub

https://www.herber.de/bbs/user/104698.xlsx

Anzeige
AW: If, And, Ergebniszeile, Zwischenergebnis Argh...
01.04.2016 09:10:21
Fennek
Hallo,
die Suche über 'Zählenwenn' geht zwar sehr gut und einfach für 2Bedingungen, aber nicht für die ungleichheit des Ortes. Ichnwerde das auf 'find' umstellen.
Vermutlich werde ich am Nachmittag etwas Zeit haben.
Mfg

AW: If, And, Ergebniszeile, Zwischenergebnis Argh...
01.04.2016 11:38:16
Fennek
Hallo,
Zuerst: die Datei ist vollkommen anderst als in der ursprünglichen Frage beschrieben. Da die Code auf bestimmte Spalten zugreifen, kann man erst anfangen zu programmieren, wenn die Struktur fixiert ist. Die Spalte C frei zu lassen störrt mich nicht, aber wenn du jemals eine xl-Tabelle anlegen möchtest, wird das als zwei Bereiche erkannt.
Der Code erfüllt m.E. die Anforderungen der Frage, ist ist unabhängig, welche Werte in den Bereich eingetragen werden (1,2 oder sonst was).

Private sub worksheet_change(byval Target as Range)
Dim rng as range
Dim c as range
lr = cells(rows.count, "A").end(xlup).row
If intersect(target, range("P6:NU" & lr)) is nothing or target.value = "" then exit sub
Set rng = range(cells(6, target.column), cells(lr, target.column))
With rng
If workbookfunction.count(rng) > 1 then
Team = cells(target.row, "E")
Objekt = cells(target.row, "B")
For each c in rng
If c.value  "" and c.row  target.row then
If cells(c.row, "E") = team and cells(c.row, "B")  objekt then msgbox "Doppelbelegung"
End if
Next c
End if
End with
End sub
Jetzt bin ich gespannt, ob das auch bei dir läuft.
Mfg

Anzeige
AW: If, And, Ergebniszeile, Zwischenergebnis Argh...
01.04.2016 11:59:45
S.
Super, es klappt!!!!!!

AW: If, And, Ergebniszeile, Zwischenergebnis Argh...
01.04.2016 11:41:14
Fennek
Nachtrag, einmal gemachte Tippfehler sind in diesem Editor nicht mehr zu korrigieren.
In der Zeile
If worksheetfunction(
steht versehendlich "WORKBOOK"
Mfg

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige