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

MsgBox

MsgBox
16.05.2006 15:02:03
Ralf
Hallo Excel - Experten,
grooooooooßes Proooooblem !
ich habe zwei Tabellenblätter im ersten steht:
ArtNr Menge KST
12345 500 6005
23333 400 6005
34777 300 6005
im zweiten steht :
Spalte A Spalte D
KST MaxMenge
6005 1100
Jetzt möchte im ersten Tabellenblatt immer die KST
(Kostenstelle) manuell zuordnen und fände es ganz ganz
toll, wenn mir Excel mittels einer MsgBox sagen würde,
"Hallo, die MaxMenge der KST 6005 ist um 100 überschritten"
Geht soetwas überhaupt ?
Würde mich über jeden Tipp sehr freuen :-)
Gruß
Ralf

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MsgBox
16.05.2006 15:22:40
Andi
Hi,
"KST manuell zuordnen" hab ich jetz mal so verstanden, dass Du in Tabelle1, Spalte C eine Kostenstelle eintippst, und dann die entsprechende Maximalmenge aus Tabelle2 angezeigt wird.
Einfach folgendes ins Modul von Tabelle1 (die Tabellen müssen natürlich Tabelle1 und Tabelle2 heißen, ggf die Namen im Makro anpassen):

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Target.Column <> 3 Then Exit Sub
Set c = Worksheets("Tabelle2").Range("A:A").Find(Target.Value)
If c Is Nothing Then
MsgBox "Kostenstelle nicht gefunden"
Else
MsgBox "Maximalmenge: " & c.Offset(0, 3).Value
End If
End Sub

Schönen Gruß,
Andi
Anzeige
AW: MsgBox
16.05.2006 16:06:03
Beni
Hallo Ralf,
Gruss Beni

Private Sub Worksheet_Change(ByVal Target As Range)
lz = Cells(65536, 3).End(xlUp).Row
If Target.Column <> 3 Then Exit Sub
s = Worksheets.Application.SumIf(Range("C2:C" & lz), Target, Range("B2:B" & lz))
With Sheets("Tabelle2")
Wert = Target
Set w = .Columns(1).Find(What:=Wert, LookIn:=xlValues, LookAt:=xlWhole)
If Not w Is Nothing Then
mm = w(1, 2)
If s > mm Then MsgBox "Maximalmenge: " & w(1, 2) & " überschritten"
End If
End With
End Sub

AW: MsgBox
16.05.2006 16:30:22
Ralf
Hallo Beni,
Vielen Dank zunächst mal.
Du hast mich schon gut verstanden, und wir sind
auch ganz nah dran, aber irgendwie will Excel nicht.
Was mache ich falsch ? Muß Dein Code eigentlich ins Modul1 oder
Tabelle1 oder in DieseArbeitsmappe ? (PS:ich habs mal mit Tabelle1
versucht :-)
Gruß
Ralf
Anzeige
AW: MsgBox
16.05.2006 16:32:18
Beni
Hallo Ralf,
in das Modul der Tabelle1.
Gruss Beni
AW: MsgBox
16.05.2006 17:22:32
Ralf
Hallo Beni,
kannst Du mir bitte mal auf die Sprünge helfen ?
Ins Modul der Tabelle 1 ? Ich kenne nur Modul1 oder
Tabelle1 ? Muß ich dann noch auf Worksheet und Change o.ä. achten ? :-)
Gruß
Ralf
AW: MsgBox
16.05.2006 22:12:54
Beni
Hallo Ralf,
Code kopieren, rechte Maustaste auf Blattregister von Tabelle1 / Code anzeigen / und einfügen.
Das ist das Modul der Tabelle1.
Gruss Beni
AW: MsgBox
17.05.2006 07:41:12
Ralf
Hallo Beni,
vielen Dank für Deine Antwort. Ich habe es genauso gemacht,
wie Du sagtest, aber warum bekomme ich keine Meldung, wenn
in Tabelle 1 der MaxWert aus Tabelle2 überschritten wird ?
Gruß
Ralf
Anzeige
AW: MsgBox
17.05.2006 13:00:22
Beni
Hallo Ralf,
die letzte Eingabe muss in SpalteC erfolgen, ansonsten mus der Code umgeschrieben werden.
Gruss Beni
AW: MsgBox
17.05.2006 13:11:06
Ralf
Hallo Beni,
erstmal vielen Dank für Deine Mühe !!!
Es läuft, die Meldung kommt, aaaaaber :-) jetzt sagt er
mir jedesmal: MaxWert überschritten auch wenn dem gar nicht
so ist ?
Ich kenne mich nicht so gut aus mit VBA, muß man da viel anpassen ?
Gruß
Ralf
AW: MsgBox
17.05.2006 13:41:31
Beni
Hallo Ralf,
ist mein Fehler, Sorry
habe übersehen, dass der Maxwert in SpalteD ist.
Gruss Beni

Private Sub Worksheet_Change(ByVal Target As Range)
lz = Cells(65536, 3).End(xlUp).Row
If Target.Column <> 3 Then Exit Sub
s = Worksheets.Application.SumIf(Range("C2:C" & lz), Target, Range("B2:B" & lz))
With Sheets("Tabelle2")
Wert = Target
Set w = .Columns(1).Find(What:=Wert, LookIn:=xlValues, LookAt:=xlWhole)
If Not w Is Nothing Then
mm = w(1, 4) 'SpalteD
If s > mm Then MsgBox "Maximalmenge: " & w(1, 4) & " überschritten"
End If
End With
End Sub

Anzeige
AW: MsgBox
17.05.2006 14:47:57
Ralf
Hallo Beni,
vielen Dank für Deine Mühe :-) Es funktioniert jetzt.
Du hast mir echt sehr geholfen.
Gruß
Ralf
AW: MsgBox
16.05.2006 16:09:19
Ralf
Hallo Andi,
vielen Dank für Deinen Vorschlag. Damit komme ich meinem Ziel
schon ziiiiiemlich nahe.
Ich finde nur in Deiner Prozedur die Tabelle 1 nicht und vom
Ablauf her wollte ich in Tabelle 1, das Excel die Mengen addiert
(hier 1200) und dann mit der MaxMenge in Tabelle 2 vergleicht und mir
dann sagt: 100 zuviel :-)
Gruß
Ralf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige