Excel Messagebox mit Auswertung?

2 Antworten

Kann mir hier jemand den Vba Code dafür sagen?

Anhand dessen, was Du hier über die Tabelle bekannt gibst nicht.

Global gesehen scheinst Du aber Excel für Dinge zu nutzen, für die man Access nutzen sollte.
Dort wäre auch eine einfache Abfrage und Ausgabe über die gewünschten Werte absolut kein Problem.

aikon2018 
Fragesteller
 12.08.2021, 09:30

Jein, ich nutze eine access als riesen datenpool für mehrere Bereiche.

Die Excel ist speziell für 1en Bereich sozusagen ausgegliedert, bzw. Es werden die Daten von der Access in die Excel importiert da da viele Kollegen einen grossen Bogen um access machen sich jedoch mit Excel auskennen

0

Also,
Im "Workbook_Open" Event und dem heutigen Datum (Datetime.Date)
über die Tabelle mit den Fehlereintragungen iterieren.
Letzte Zeile könnte an dieser Stelle sein.

Dim cReihe as long
Dim msgTxt as string

Dim AnzahlFehler as long
AnzahlFehler = 0
cReihe = Worksheets("Reparaturen").UsedRange.Rows.Count 'Nur dann die UNTERSTE Zeile mit Daten, wenn KEINE "Verschmutzung" in tieferen Zeilen vorhanden ist.

Do while Worksheets("Reparaturen").Cells(cReihe, SpalteMitDemDatum).Value >= (Datetime.Date-5) AND cReihe >= 1
AnzahlFehler = AnzahlFehler +Worksheets("Reparaturen").Cells(cReihe, SpalteMitFehlerAnzahl).Value

msgTxt = msgTxt & Worksheets("Reparaturen").Cells(cReihe, SpalteMitFehlerText).Value & vbCrLf
cReihe = cReihe -1

loop
MsgBox "Fehler der letzten 5 Tage:" & vbCrLf & msgTxt & " " & AnzahlFehler,vbInformation,"Tool Help"

aikon2018 
Fragesteller
 13.08.2021, 09:01

Entweder bin ich blöd aber ich bekomme es mit dem Code nicht zum laufen:(

0
IchMalWiederXY  13.08.2021, 21:07
@aikon2018

Ein paar Kleinigkeiten gibt es noch zu tun.
Ich habe es mal komplettiert, so dass es zumindest in einer "Tabelle1" die es wohl immer gibt direkt läuft: Code in "DieseArbeitsMappe" einfügen.

Private Sub Workbook_Open()

Dim cReihe As Long

Dim msgTxt As String

Dim SpalteMitDemDatum As Integer

Dim SpalteMitFehlerText As Integer

Dim AnzahlFehler As Long

AnzahlFehler = 0

cReihe = Worksheets("Tabelle1").UsedRange.Rows.Count 'Nur dann die UNTERSTE Zeile mit Daten, wenn KEINE "Verschmutzung" in tieferen Zeilen vorhanden ist.

SpalteMitDemDatum = 1

SpalteMitFehlerText = 1

Do While Worksheets("Tabelle1").Cells(cReihe, SpalteMitDemDatum).Value >= (DateTime.Date - 5) And cReihe >= 1

  AnzahlFehler = AnzahlFehler + Worksheets("Reparaturen").Cells(cReihe, SpalteMitFehlerAnzahl).Value

  msgTxt = msgTxt & Worksheets("Tabelle1").Cells(cReihe, SpalteMitFehlerText).Value & vbCrLf

  cReihe = cReihe - 1

Loop

MsgBox "Fehler der letzten 5 Tage:" & vbCrLf & msgTxt & " " & AnzahlFehler, vbInformation, "Tool Help"

End Sub

0
aikon2018 
Fragesteller
 14.08.2021, 00:00

Hat super geklappt, danke

1