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
Msgbox soll gefilterte Daten ausgeben
08.04.2016 14:33:59
Sascha
Hallo VBA Cracks,
ich habe folgendes Anliegen:
Ich möchte, dass eien Datei, beim öffnen automatisch eine Tabelle nach alle einträgen filtert, die in den nächsten 60 Tagen anstehen.
Die gefilterten Einträge soll er dann in einer Msgbox ausgeben.
Beispiel:
vor dem Filtern
Spalte A Spalte B
Begriff 1 14.04.2016
Begriff 2 14.09.2016
nach dem Filten
Spalte A Spalte B
Begriff 1 14.04.2016 ----> Msgbox("Begriff1")
Ich habe schon etwas Vorarbeit geleistet und schonmal angefangen zu programmieren, bin dann aber beim der Integration der Filterdaten abgestorben.
Hier mein Code bisher:
Sub Workbook_Open()
Dim Datum As Date
Dim Heute As Date
Dim Titel As String
Datum = Date + 60
Heute = Date
Worksheets(1).Activate
Range("A6:B6").AutoFilter Field:=2, Criteria1:="=" & CDbl(Heute)
If ...... Then MsgBox "..........."
End Sub
Habt ihr einen Ansatz ?
Vielen Dank im Voraus
Gruß
Sascha

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Msgbox soll gefilterte Daten ausgeben
08.04.2016 15:13:34
Sascha
Sorry, habe den Beitrag versehentlich 3 x hochgeladen:(

AW: Msgbox soll gefilterte Daten ausgeben
08.04.2016 15:13:34
Sascha
Sorry, habe den Beitrag versehentlich 3 x hochgeladen:(

dann offen
08.04.2016 15:17:54
UweD

aber nicht mehr lang
08.04.2016 15:37:57
Michael
Hi Sascha,
versuch mal das hier:
Option Explicit
'Sub Workbook_Open()
Sub test()
Dim Datum As Date
Dim Heute As Date
Dim Titel As String
Dim Ausgabe As String
Dim c As Range, aus As Range
Dim i As Long
Dim w1 As Worksheet
Datum = Date + 60
Heute = Date
Set w1 = Worksheets(1)
w1.Range("A6:B6").AutoFilter Field:=2, Criteria1:="=" & CDbl(Heute)
i = w1.Cells(w1.Rows.Count, 1).End(xlUp).Row
If i >= 7 Then
Set c = w1.Range(w1.Cells(7, 1), w1.Cells(i, 1)).SpecialCells(xlCellTypeVisible)
For Each aus In c
Ausgabe = Ausgabe & aus.Value & vbLf
Next
Else
Ausgabe = "Kein Datum gefunden"
End If
MsgBox Ausgabe
End Sub
Schöne Grüße,
Michael

Anzeige
AW: Msgbox soll gefilterte Daten ausgeben
08.04.2016 15:40:00
UweD
Hallo
versuch es mal so...

Sub Workbook_Open()
Dim Datum As Date
Dim Heute As Date
Dim Titel As String
Dim Rng As String
Dim LR As Double
Dim Z
Datum = Date + 60
Heute = Date
With Worksheets(1)
.Range("A6:B6").AutoFilter Field:=2, Criteria1:="= " & CDbl(Heute)
LR = .Cells(Rows.Count, 2).End(xlUp).Row 'letzte Zeile der Spalte B
For Each Z In .Range("B6:B" & LR).SpecialCells(xlCellTypeVisible)
Rng = Rng & Z.Text & vbLf
Next
MsgBox Rng
End With
End Sub
Gruß UweD

AW: Msgbox soll gefilterte Daten ausgeben
08.04.2016 15:48:01
UweD
Nichts gefunden noch eingebaut...

Sub Workbook_Open()
Dim Datum As Date
Dim Heute As Date
Dim Titel As String
Dim Rng As String
Dim LR As Double
Dim Z
Datum = Date + 60
Heute = Date
With Worksheets(1)
.Range("A6:B6").AutoFilter Field:=2, Criteria1:="= " & CDbl(Heute)
LR = .Cells(Rows.Count, 2).End(xlUp).Row 'letzte Zeile der Spalte B
If LR = 6 Then MsgBox "nichts gefunden": Exit Sub
For Each Z In .Range("B6:B" & LR).SpecialCells(xlCellTypeVisible)
Rng = Rng & Z.Text & vbLf
Next
Rng = Left(Rng, Len(Rng) - 1) ' letzter Zeilenumbruch weg
MsgBox Rng
End With
End Sub

Anzeige
AW: Msgbox soll gefilterte Daten ausgeben
08.04.2016 18:26:34
Sascha
Vielen Dank erstmal für eure sehr schnelle Hilfe. Ich werde es mal testen und euch dann berichten.
Gruß
Sascha

AW: Msgbox soll gefilterte Daten ausgeben
09.04.2016 09:54:48
Sascha
Also ich habe nochmal UweD´s Version probiert.
Da ist es fast so, wie es sein soll.
2 Fragen habe ich noch:
1.Wenn das zu filternde Datum nicht in Spalte 2 ist, sondern in Spalte 14, muss ch dann einfach nur den Rangebereich anpassen ?
2. Wenn ich vor der Auflistung in der Messagebox noch schreiben möchten "Folgende Begriffe wurden gefunden..:". Wie stelle ich das an ?
Vielen vielen großen Dank schonmal.
Das Forum ist echt Klasse, merke ich immer wieder:).
Gruß
Sascha

Anzeige
AW: Msgbox soll gefilterte Daten ausgeben
11.04.2016 09:28:12
UweD
Hallo Sascha
Du hast einmal vergessen die Spalte anzupassen. Bei der Ermittlung der letzten Zeile..
i = .Cells(Rows.Count, 2).End(xlUp).Row
Ich hab das jetzt in eine Variable gepackt. SP=14
- - -
In deiner Musterdatei ist mir aufgefallen, das du die Werte als Text eingestellt hast, da greift der Filter nicht, weil Format Datum erwartet wird.
Auch hab ich die Überschrift in der Msgbox noch ergänzt.

Sub Workbook_Open()
Dim Datum As Date
Dim Heute As Date
Dim Titel As String
Dim Ausgabe As String
Dim c As Range, aus As Range
Dim i As Long
Dim w1 As Worksheet
Dim SP As Integer 'Spalte für Filter
SP = 14
Datum = Date + 60
Heute = Date
Set w1 = Worksheets(1)
w1.Range("A6:O6").AutoFilter Field:=SP, Criteria1:="=" & CDbl(Heute)
i = w1.Cells(w1.Rows.Count, SP).End(xlUp).Row
If i >= 7 Then
Set c = w1.Range(w1.Cells(7, SP), w1.Cells(i, SP)).SpecialCells(xlCellTypeVisible)
Ausgabe = "Folgende Begriffe wurden gefunden..:" & vbLf
For Each aus In c
Ausgabe = Ausgabe & aus.Value & vbLf
Next
Else
Ausgabe = "Kein Datum gefunden"
End If
MsgBox Ausgabe
End Sub

LG UweD

Anzeige
AW: Msgbox soll gefilterte Daten ausgeben
12.04.2016 11:53:10
Sascha
Hallo Uwe,
vielen Dank. Es hat alles super gepasst.
Ich habe nur eine kleine Sache noch,bzw das es keien große Sache ist.
Momentan gibt er in der Messagebox immer die Datumsangaben aus.
Nur wäre es aber super, wenn er die Begrffe,aus Spalte C untereinander auflistest.
Natürlich nur entsprechend die, die zu den gefilterten Daten gefunden wurden.
Beispiel: in der Datumsspalte 14 wird ein Datum kleiner 60 Tage gefunden, dann soll er mir den Begriff der in Spalte C stehtm, ausgeben.
Vielen Dank erst einmal, hast mir echt super geholfen.
Gruß
Sascha

Anzeige
AW: Msgbox soll gefilterte Daten ausgeben
12.04.2016 12:46:01
UweD
Versuch mal das
Ausgabe = Ausgabe & aus.Offset(0,-11).Value & vbLf
also der Wert von 11 Spalten weiter vorne
LG UweD

AW: Msgbox soll gefilterte Daten ausgeben
15.04.2016 10:45:56
Sascha
Hallo Uwe,
danke nochmal. hat alles gut geklappt. Ich habe es jetzt so wie ich es möchte.
Eine ultimativ letzte Frage:).
Wenn ich den unwahrscheinlichen Fall habe, dass ich mal am Anfang nur eine Zeile habe und, Datum ist Kann man das noch irgendwie abfangen ?
Vielen Dank
gruß
Sascha
übrigens: hier mein angepasster code auf meien tabelle
Sub Workbook_Open()
Dim Datum As Date
Dim Heute As Date
Dim Titel As String
Dim Ausgabe As String
Dim c As Range, aus As Range
Dim i As Long
Dim w1 As Worksheet
Dim SP As Integer 'Spalte für Filter
SP = 14
Datum = Date + 60
Heute = Date
Set w1 = Worksheets(1)
w1.Range("A4:O4").AutoFilter Field:=SP, Criteria1:="=" & CDbl(Heute)
i = w1.Cells(w1.Rows.Count, SP).End(xlUp).Row
If i >= 5 Then
Set c = w1.Range(w1.Cells(5, SP), w1.Cells(i, SP)).SpecialCells(xlCellTypeVisible)
Ausgabe = "Folgende Messmittel müssen in den nächsten 8 Wochen kalibriert werden:" & vbLf
For Each aus In c
Ausgabe = Ausgabe & aus.Offset(0, -10).Value & vbLf
Next
Else
Ausgabe = "Es steht keine Kalibrierung in den nächsten 8 Wochen an"
Worksheets(1).ShowAllData
End If
MsgBox Ausgabe
End Sub

Anzeige
AW: Msgbox soll gefilterte Daten ausgeben
15.04.2016 10:54:01
Sascha
Hallo Uwe,
danke nochmal. hat alles gut geklappt. Ich habe es jetzt so wie ich es möchte.
Eine ultimativ letzte Frage:).
Wenn ich den unwahrscheinlichen Fall habe, dass ich mal am Anfang nur eine Zeile habe und, Datum ist Kann man das noch irgendwie abfangen ?
Vielen Dank
gruß
Sascha
übrigens: hier mein angepasster code auf meien tabelle
Sub Workbook_Open()
Dim Datum As Date
Dim Heute As Date
Dim Titel As String
Dim Ausgabe As String
Dim c As Range, aus As Range
Dim i As Long
Dim w1 As Worksheet
Dim SP As Integer 'Spalte für Filter
SP = 14
Datum = Date + 60
Heute = Date
Set w1 = Worksheets(1)
w1.Range("A4:O4").AutoFilter Field:=SP, Criteria1:="=" & CDbl(Heute)
i = w1.Cells(w1.Rows.Count, SP).End(xlUp).Row
If i >= 5 Then
Set c = w1.Range(w1.Cells(5, SP), w1.Cells(i, SP)).SpecialCells(xlCellTypeVisible)
Ausgabe = "Folgende Messmittel müssen in den nächsten 8 Wochen kalibriert werden:" & vbLf
For Each aus In c
Ausgabe = Ausgabe & aus.Offset(0, -10).Value & vbLf
Next
Else
Ausgabe = "Es steht keine Kalibrierung in den nächsten 8 Wochen an"
Worksheets(1).ShowAllData
End If
MsgBox Ausgabe
End Sub

Anzeige
AW: Msgbox soll gefilterte Daten ausgeben
15.04.2016 12:09:15
Sascha
Hallo Uwe,
danke nochmal. hat alles gut geklappt. Ich habe es jetzt so wie ich es möchte.
Eine ultimativ letzte Frage:).
Wenn ich den unwahrscheinlichen Fall habe, dass ich mal am Anfang nur eine Zeile habe und, Datum ist Kann man das noch irgendwie abfangen ?
Vielen Dank
gruß
Sascha
übrigens: hier mein angepasster code auf meien tabelle
Sub Workbook_Open()
Dim Datum As Date
Dim Heute As Date
Dim Titel As String
Dim Ausgabe As String
Dim c As Range, aus As Range
Dim i As Long
Dim w1 As Worksheet
Dim SP As Integer 'Spalte für Filter
SP = 14
Datum = Date + 60
Heute = Date
Set w1 = Worksheets(1)
w1.Range("A4:O4").AutoFilter Field:=SP, Criteria1:="=" & CDbl(Heute)
i = w1.Cells(w1.Rows.Count, SP).End(xlUp).Row
If i >= 5 Then
Set c = w1.Range(w1.Cells(5, SP), w1.Cells(i, SP)).SpecialCells(xlCellTypeVisible)
Ausgabe = "Folgende Messmittel müssen in den nächsten 8 Wochen kalibriert werden:" & vbLf
For Each aus In c
Ausgabe = Ausgabe & aus.Offset(0, -10).Value & vbLf
Next
Else
Ausgabe = "Es steht keine Kalibrierung in den nächsten 8 Wochen an"
Worksheets(1).ShowAllData
End If
MsgBox Ausgabe
End Sub

Anzeige
AW: Msgbox soll gefilterte Daten ausgeben
09.04.2016 07:46:42
Sascha
Hallo ,
ich habe es jetzt mal getestet.
Also er filtert und gibt auch eine Msgbox aus. Allerdings sieht man die gefilterten Ergebnisse nicht und die AUsgabe der Msgbox ist dementsprechend auch nicht passend.
Ich habe die Datei mal hochgeladen.
https://www.herber.de/bbs/user/104855.xlsm
Hinweis: Ich habe die zu filternde Spalte angepasst. Statt Spalte zwei wie in meinem Beispiel, habe ich Spalte 14 genommen.
Könnt Ihr mir vielleicht nochmal helfen ?
Vielen Dank erst einmal.
Gruß
Sascha

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige