Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datumssuche in VBA

Datumssuche in VBA
24.09.2008 08:11:00
Snewi
Hallo ich habe folgendes Excel Sheet:
https://www.herber.de/bbs/user/55612.xls
Nun möchte ich zum einen wie vorgegeben das min und das max Datum automatisch anzeigen was aber leider bei mir nicht funktioniert!
Zum anderen möchte ich die Spalten so ein und ausblenden wie ich ein Zeitraum über der Tabelle auswähle! Also ich gebe ein Anfangsdatum (vielleicht über eine Maske die sich jeweils öffnet) und ein Enddatum ein und es sollen nur die Zeilen für diesen Bereich angezeigt werden!
Ich hoffe es kann jemand helfen
Gruß
Snewi

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

Betreff
Datum
Anwender
Anzeige
AW: Datumssuche in VBA
24.09.2008 09:00:59
Beverly
Hi,
erstelle für B4:I4 den Autofilter. Dann kannst du mit diesem Code filtern

Sub filtern()
With Range("B4:I4")
.AutoFilter Field:=2, Criteria1:=">=" & Range("C2").Value2, Operator:=xlAnd _
, Criteria2:="




AW: Datumssuche in VBA
24.09.2008 09:04:00
Snewi
Und dann mache ich das über einen Button?
Könnte ich auch sobald ich auf die Zelle mit dem Anfangsdatum klicke oder Zelle mit dem Enddatum?
Gruß
AW: Datumssuche in VBA
24.09.2008 09:14:00
Beverly
Hi,
das kannst du mit diesem Code machen

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address  "$C$2" And Target.Address  "$E$2" Then Exit Sub
If Range("C2") > Range("E2") Then
MsgBox "Anfangsdatum darf nicht größer als Enddatum sein"
Else
With Range("B4:I4")
.AutoFilter Field:=2, Criteria1:=">=" & Range("C2").Value2, Operator:=xlAnd _
, Criteria2:="




Anzeige
AW: Datumssuche in VBA
24.09.2008 09:25:18
Snewi
mhh irgendwie klappt das nicht könntest du es mal in meiner Beispieldatei demonstrieren?
Wäre nett!!!!
Gruß
AW: Datumssuche in VBA
24.09.2008 09:39:00
Snewi
Hab es jetzt soweit hinbekommen! Danke
Wäre es eigentlich auch möglich die Autofilter Kreuze auszublenden?
Gruß
AW: Datumssuche in VBA
24.09.2008 10:22:24
Beverly
Hi,
ohne Autofilter

Private Sub Worksheet_Change(ByVal Target As Range)
Dim loZeile As Long
Dim loLetzte As Long
loLetzte = Columns("B:B").Find(what:="*", SearchOrder:=xlByColumns, SearchDirection:= _
xlPrevious).Row
Application.ScreenUpdating = False
Rows(5 & ":" & loLetzte).EntireRow.Hidden = False
If Target.Address  "$C$2" And Target.Address  "$E$2" Then Exit Sub
For loZeile = loLetzte To 5 Step -1
If Cells(loZeile, 3)  Range("E2") Then Rows(loZeile). _
EntireRow.Hidden = True
Next loZeile
Application.ScreenUpdating = True
End Sub




Anzeige
AW: Datumssuche in VBA
24.09.2008 09:54:00
David
Hallo.
Da war noch ein kleiner Fehler im Code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address  "$C$2" And Target.Address  "$E$2" Then Exit Sub
If Range("C2") > Range("E2") Then
MsgBox "Anfangsdatum darf nicht größer als Enddatum sein"
Else
With Range("B4:I141")
.AutoFilter Field:=2, Criteria1:=">=" & Range("C2").Value2, Operator:=xlAnd _
, Criteria2:="


sollte es jetzt tun. Das Makro aktiviert sich sobald in den Zellen C2 oder E2 eine Änderung vorgenommen wird.
Einbinden musst du es per Rechtsklick auf den Blattnamen, dann "Code anzeigen" und den gesamten Code dort hin kopieren.
Gruß
DAvid

Anzeige
AW: Datumssuche in VBA
24.09.2008 10:22:47
Snewi
Ok klappt soweit!
Wie könnte ich denn nun noch die Summe der Gutschriften ausgeben ohne die ausgeblendeten Zeilen mitzuzählen?
Gruß
AW: Datumssuche in VBA
24.09.2008 10:33:30
Beverly
Hi David,
das ist kein Fehler im Code - ich hatte ja in meinem 1. Beitrag geschrieben:

erstelle für B4:I4 den Autofilter. Dann kannst du mit diesem Code filtern


Wenn du das natürlich nicht machst, dann funktioniert der Code logischerweise nicht.



AW: Datumssuche in VBA
24.09.2008 10:52:00
David
Ok, hatte ich überlesen.
Danke für den Hinweis.
Gruß
David
Anzeige
AW: Datumssuche in VBA
24.09.2008 11:30:14
Snewi
Ein kleines Problem gibt es noch!
Undzwar lasse ich das Datum über eine TextBox eingeben und erstelle es durch folgenden Code:
  • 'aktuelles Datum
    
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
    Case Asc("0") To Asc("9")
    Case Asc(".")
    If Len(TextBox1) = 0 Then
    KeyAscii = 0
    Else
    If Len(TextBox1) - Len(Application.Substitute(TextBox1, ".", "")) = 2 Then
    KeyAscii = 0
    ElseIf Len(TextBox1) > 1 Then
    If Mid(TextBox1, Len(TextBox1), 1) = "." Then KeyAscii = 0
    Else
    KeyAscii = Asc(".")
    End If
    End If
    Case Else
    KeyAscii = 0
    End Select
    End Sub
    


    
    Private Sub TextBox1_Change()
    If TextBox1.Tag = "1" = True Then Exit Sub
    If Len(TextBox1) = 2 Then
    If InStr(TextBox1, ".") = 0 Then TextBox1 = TextBox1 & "."
    ElseIf Len(TextBox1) = 5 Then
    If Len(TextBox1) - Len(Application.Substitute(TextBox1, ".", "")) 


    
    Private Sub TextBox1_AfterUpdate()
    TextBox1.Tag = 1
    If Right(TextBox1, 1) = "." Then TextBox1 = Mid(TextBox1, 1, Len(TextBox1) - 1)
    If Len(TextBox1) - Len(Application.Substitute(TextBox1, ".", "")) = 1 Then
    TextBox1 = TextBox1 & "." & Year(Date)
    End If
    If IsDate(TextBox1.Text) Then
    If Format(CDate(TextBox1.Value), "dd.mm.yyyy")  TextBox1 Then
    End If
    TextBox1 = Format(CDate(TextBox1.Value), "dd.mm.yyyy")
    Else
    TextBox1 = ""
    End If
    TextBox1.Tag = ""
    End Sub
    


  • Nun erkennt der Autofilter es aber nicht als Datum und blendet es aus wieso?
    Gruß
    Anzeige
    AW: Datumssuche in VBA
    24.09.2008 12:53:47
    Beverly
    Hi,
    und wo ist der Code zum Filtern? Versuche es mit DateValue(UserForm1.TextBox1)


    benutze den AutoFilter
    24.09.2008 09:05:30
    Matthias
    Hallo
    Für Min und Max solltest Du aber Deinen Bereich richtig setzen
    =MIN(C5:C148)
    =MAX(C5:C148)
    Deine Min und Max-Formel hat verschiedene Bereiche!


    und hier mit AutoFilterAuswahl
    Userbild
    Ergebnis:
    Userbild
    Gruß Matthias
    Anzeige

    303 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige