Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: per Button Ampel einfügen

VBA: per Button Ampel einfügen
06.10.2024 13:58:27
Georgi
Hallo VBA-Experten,
ich grübel und versuche schon seit Tagen obiges Problem zu lösen und bekomme es auch mit den Hilfen aus dem Forumsarchiv nicht hin.

Ich möchte unter verschiedenen Sachen per Button eine Ampel einfügen können, die mir den aktuellen Stand anzeigt.
Hinterher soll die Ampel wieder gelöscht werden, damit weitere Sachen in die Zeilen hinzugefügt werden können.

Spalte A ------- Spalte B ------- Spalte C------- Spalte D ... ------- Spalte W Spalte X ------- Y ------- Z
Standort1------- Regal1------- Regal2 ------- Regal3 ... ----- Mindestbestand Sache1 Sache2 Sache3
Sache1 ------- ------- 5 ------- ------- 2 ------- ------- 1 ------- ------- ------- ------- ------- ------- 10 ------- 5 ------- 2
Sache2 -------- -------1 ------- ------- 3 ------- ------- 3
Sache1 -------- ------ 0 ------- ------- 5 ------- ------- 2
Sache2 ------- ------- 2 ------- ------- 1 ------- ------- 0
Sache3 ------- ------- 2 ------- ------- 2 ------- ------- 4
...
Leerzeile/n ----- Ampel ------- Ampel -------- Ampel
...
Standort2
Sache3 ------- ------- 4 ------- ------- 3 ------- ------- 2
Sache2 ------- ------- 1 ------- ------- 3 ------- ------- 4
Sache1
Sache2
... -------- ------- ----- Ampel ------- Ampel -------- Ampel
Leerzeile/n
...
Standort3
usw.

Die Schwierigkeit liegt darin, dass die Ampel die Sache in Spalte A erkennen, für ein Regal zählen und überprüfen muss, ob der Mindestbestand noch vorhanden ist. Es können auch weitere Sachen zu den Standorten kommen, daher muss beim Setzen der Ampel die Range.Row in Spalte A ermittelt werden (die Bezeichnung Standort(x) könnte der Indikator für das Ende der Ampelfunktion sein).
Nach dem Auswerten wird / werden die Ampel/n gelöscht.
Später wird sie dann wieder unter dem letzten Eintrag des Standorts, für eine neue Auswertung gesetzt.

Ganz schön kompliziert oder?
Vielleicht hat ja jemand Lust die Nuss zu knacken...

Viele Grüße
Georgi
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: per Button Ampel einfügen
06.10.2024 22:46:56
Piet
Hallo

Nüsse knacken, kein Problem. Und wo bitte ist die Nuss?? Gemeint ist eine Beispieldatei.
Keiner wird nach deinen Angaben eine Tabelle aufbauen, die musst du schon hochladen.

mfg Piet
AW: VBA: per Button Ampel einfügen
07.10.2024 12:55:15
Piet
Hallo

ich weiss nicht wo das Problem liegt eine Datei hochzuladen, ausser Datenschutz. Hier eine Lösung dazu.
https://www.herber.de/bbs/user/172684.xlsm

mfg Piet
Anzeige
AW: VBA: per Button Ampel einfügen
07.10.2024 20:12:48
Piet
Hallo Georgi

höfliche Frage, willst du uns im Excel Forum veralbern??? Wie muss ich deine Antwort verstehen???
Du zeigst uns in der Anfrage eine typische Excel Tabelle, willst dafür eine passende Lösung haben.
.
Und wenn die kommt kannst du sie nicht einmal ansehen??? Müssen wir das verstehen?? Tschüss ...

mfg Piet
Anzeige
AW: VBA: per Button Ampel einfügen
08.10.2024 22:58:45
Piet
Hallo Georgi

im Code siehst du den ersten IF Befehl für den Standort. Dort werden die Mindestwerte geladen und Reg 1-3 auf Null gesetzt.
Bei ElseIF mit dem Text Ampel wird die Ampel Auswertung ausgeführt. Mit Farbauswertung je nach Zählergebnis.
Unter Else werden die Mengen der Regale 1-3 für jeden einzelnen Standort gezählt.

Das Ergebnis müsstest du dann am Firmen PC sehen. Ich hoffe das alles richtig ist.

mfg Piet
Anzeige
AW: VBA: per Button Ampel einfügen
07.10.2024 21:06:15
Georgi
Hallo Piet,

bitte nicht böse sein, es ist wirklich so und ich bin Dir echt dankbar, dass du mir wieder hilfst.
Mit dem Firmencomputer darf ich nicht ins Internet und keine USB-Sticks oder so dort einstecken.
Daher schreibe ich über mein altes privates Tablett, wo es keine Excelversion gibt, womit ich die Datei öffnen kann.
Ich hatte das vorher schon mal probiert.

Daher muss ich auch Lösungen abtippen und kann das nicht per drag und drop übernehmen.
Und ich habe hier keine Excel-Datei abgelegt, sondern hier im Editor getippt. Daher auch die Striche als Platzhalter damit es etwas übereinstimmend aussieht, Leerzeichen gingen nicht...

Wenn sich in Deiner Datei ein Lösungsvorschlag verbirgt, kannst Du mir den Code bitte direkt hier reinkopieren?
Ansonsten würde es auch eine einfache Textdatei tun, die ich auf dem Tablett öffnen kann.

Viele Grüße
Georgi

Anzeige
AW: VBA: per Button Ampel einfügen
08.10.2024 15:56:36
Piet
Hallo Georgi

entschuldigung, die Firmenphilosophie hatte ich nicht bedacht! Hier der Code.
Ich habe ihn erweitert auf drei Codes. Einen zum Zellen einfügen und zum löschen.
Bei Const Amp1 kannst du die Farben selbst festlegen.
Const Mxx ist mehrfacher Mindestbestand!

Mehrfach heisst, über Mindestbestand wird gelb angezeigt, bei mehrfacher Bestand grün.
Ab wann du mehrfach Bestand definierst musst du entscheiden. Viel Spass beim testen.
Für interessierte Forum Leser lade ich die geänderte Datei noch mal hoch.
https://www.herber.de/bbs/user/172727.xlsm

mfg Piet



Dim AC As Range, j, li1 As Long '7.10.2024 Piet Herber Forum
Dim Mwt1, Mwt2, Mwt3 'Mindestwerte
Dim Reg1, Reg2, Reg3 'Regale 1-3
Const Amp1 = 255 'rot Innenfarbe
Const Amp2 = 65535 'gelb
Const Amp3 = 5287936 'grün
Const Mxx = 3 '3fach Mindestbestand


Sub Ampel_ausfüllen()
lz1 = Cells(Rows.Count, 1).End(xlUp).Row
Range("B2:D" & lz1).Interior.Color = xlNone
For Each AC In Range("A2:A" & lz1)
If Left(AC, 8) = "Standort" Then
Reg1 = 0: Reg2 = 0: Reg3 = 0
Mwt1 = Cells(AC.Row, "X")
Mwt2 = Cells(AC.Row, "Y")
Mwt3 = Cells(AC.Row, "Z")
ElseIf AC.Value = "Ampel" Then
AC.Cells(1, 2) = Reg1
AC.Cells(1, 3) = Reg2
AC.Cells(1, 4) = Reg3
AC.Cells(1, 2).Interior.Color = Amp1
AC.Cells(1, 3).Interior.Color = Amp2
AC.Cells(1, 4).Interior.Color = Amp3
If Reg1 Mwt1 Then AC.Cells(1, 2).Interior.Color = Amp1
If Reg2 Mwt2 Then AC.Cells(1, 3).Interior.Color = Amp2
If Reg2 Mwt2 Then AC.Cells(1, 4).Interior.Color = Amp3
If Reg1 > Mwt1 * Mxx Then AC.Cells(1, 2).Interior.Color = Amp3
If Reg2 > Mwt2 * Mxx Then AC.Cells(1, 3).Interior.Color = Amp3
If Reg2 > Mwt2 * Mxx Then AC.Cells(1, 4).Interior.Color = Amp3
Else 'Regalwerte laden
Reg1 = Reg1 + AC.Cells(1, 2)
Reg2 = Reg2 + AC.Cells(1, 3)
Reg3 = Reg3 + AC.Cells(1, 4)
End If
Next AC
End Sub



Sub Ampel_Zeilen_einfügen()
lz1 = Cells(Rows.Count, 1).End(xlUp).Row
Cells(lz1 + 1, 1) = "Ampel"
Cells(lz1 + 1, 1).Font.Color = 192
For j = lz1 To 2 Step -1
If Left(Cells(j, 1), 8) = "Standort" Then
Rows(j - 1).Insert shift = xlDown
Cells(j - 1, 1) = "Ampel"
Cells(j - 1, 1).Font.Color = 192
End If
Next j
End Sub


Sub Ampel_Zeilen_löschen()
lz1 = Cells(Rows.Count, 1).End(xlUp).Row
For j = lz1 To 2 Step -1
If Cells(j, 1) = "Ampel" Then _
Rows(j).Delete shift = xlUp
Next j
End Sub
Anzeige
AW: VBA: per Button Ampel einfügen
08.10.2024 20:18:36
Georgi
Hallo Piet,
ersteinmal vielen Dank fürs Erstellen des Codes und das hier Reinkopieren!
So ganz blicke ich da noch nicht durch, z.B. wo die Zahlen für Sache1 im Regal1 addiert werden.
Ich werde versuchen morgen das zu übertragen (abtippen) und sehen, ob ich es dann mehr verstehe.

Viele Grüße
Georgi
Anzeige
AW: VBA: per Button Ampel einfügen
10.10.2024 23:32:26
Georgi
Hallo Piet,
leider funktioniert es nicht wie gewünscht.

Es werden Zeilen mit dem Wort Ampel eingefügt, um daneben dann die Spalte nach oben bis zur Zeile Standort zu zählen.
Das Problem dabei ist, dass die Zeile mit Ampel über den Standort geschrieben wird.
Zuerst wird zwar eine Ampelzeile ans Ende der Spalte A geschrieben, was perfekt ist, aber dann immer über dem Wort Standort.
Das gab u.a. Schwierigkeiten wenn Zeilen eingefügt wurden und andere, die deutlich werden beim ursprünglichem Problem.
Es soll z.B. nur die Sache1 gezählt werden und nicht alle Sachen.
Gezählt wird aber alles in Spalte B, von der Zeile Ampel bis unter die Zeile Standort.

Daher wäre es besser, wenn von deiner Zeile Ampel bis zur Zeile Standort eine Range für Spalte A ermittelt wird, in der man dann alle Sache1 Einträge sucht, um dann rechts in Spalte B die Zahlen dafür zu addieren.
Und genau das bekomme ich (immer noch) nicht hin...

Viele Grüße
Georgi
Anzeige
AW: VBA: per Button Ampel einfügen
11.10.2024 15:00:48
Georgi
Hallo Piet,
danke für Deinen Lösungsvorschlag, konnte davon einiges nutzen.

Das ursprüngliche Problem werde ich jetzt anders lösen.
Anstatt die Range ermitteln zu wollen, muss sie per Eingabebox vorgegeben werden.
Das hat dann auch den Vorteil, dass man Standortübergreifend zählen kann.

Viele Grüße
Georgi
Anzeige
AW: VBA: per Button Ampel einfügen
07.10.2024 13:13:48
Georgi
Hallo Piet,
ich schaue hier mit einem Handy oder Tablett rein, worauf es kein Excel gibt...

Viele Grüße
Georgi
AW: VBA: per Button Ampel einfügen
07.10.2024 09:16:17
Georgi
Hallo Piet,
ich kann hier leider keine Dateien hoch- noch runterladen.
Daher habe ich versucht die Ansicht der Tabelle hier aufzuzeigen und hoffe, dass mir bei dem unten beschriebenen Problem jemand helfen kann.
Da ich das nicht hinbekommen habe, gibt es dafür von mir keinen sinnvollen Code, den ich zeigen könnte.

Viele Grüße
Georgi

Anzeige
AW: VBA: per Button Ampel einfügen
07.10.2024 09:21:56
GerdL
Hallo,

ohne deine Musterdatei zu kennen, schlage ich dir vor, mit der bedingten Formatierung u. darin mit Zählenwenn-Formeln als Regel zu arbeiten.

Gruß Gerd
AW: VBA: per Button Ampel einfügen
07.10.2024 10:24:24
Georgi
Hallo Gerd,
da Zeilen gelöscht und hinzugefügt werden (neue Sachen), wäre das meiner Meinung nach immer ziemlich aufwendig.
Daher habe ich gehofft das in VBA so einrichten zu können, dass einfach eine Zelle angeklickt wird (Ampel) und dann per Button dort eine Ampel erstellt wird.
Im Code müsste von der selektierten Zelle, zur Spalte A und eine Zeile hoch gesprungen werden, um von dort nach oben (z.b. bis Standort1) den Bereich/Range zu ermitteln, um dann dort für die einzelnen Positionen (z.b. Sache1) in Spalte B die Zahlen zu addieren, um danach zu schauen ob der Mindestbestand noch vorhanden ist.

Viele Grüße
Georgi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige