Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1408to1412
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
Inhaltsverzeichnis

Datum Suchen und ausblenden

Datum Suchen und ausblenden
17.02.2015 12:05:34
Michael
Hallo Liebe Gemeinde,
da ich mit meinen bescheidenen VBA Kenntnissen für nachstehendes Problem keine, auch nur ansatzweise, zu keine Lösung, weder über Makroaufzeichnung noch hier im Forum über die Suche, gekommen bin, bitte ich nun euch Profis mir zu helfen.
Folgende Problematik:
Ich benötige einen VBA Code der folgendes kann.
Ich habe in einem Tabellenblatt in Spalte A einen Kalender.
A1 bis A31 Jänner
A40 bis A68 Feber usw.
ich möchte folgendes erreichen, beim öffnen der Datei sollen nur die Zeilen des aktuellen Monats, also für Jänner A1 - A31, für Feber A40 - A68, usw. eingeblendet sein. Die gerade nicht aktuellen Monate sollen ausgeblendet bleiben. Achja die Zeilen zwischen den Monaten sollten immer eingeblendet sein.
Ich bitte um eure profesionelle Hilfe und bedanke mich schonmal dafür
Gruß Michael

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum Suchen und ausblenden
17.02.2015 12:11:55
Ralf
Hallo,
da hilft der Autofilter.
Den kann man manuell oder in einem Makro im Workbook_Open-Ereignis steuern.
Was genau steht als Wert in Spalte A? Nicht das, was angezeigt wird.
Und was genau steht in den Zeilen zwischen den Monaten?
Um die Rumraterei und Nachfragen zu beenden, lade bitte ein Beispiel hier hoch.
Gruß
Ralf

AW: Datum Suchen und ausblenden
17.02.2015 12:55:58
Michael
Hallo Ralf,
der Wert in Spalte A ist eine Formel. Siehe Beispieldatei
Und zwischen den Monaten werden Summen zusammengezählt, die möchte ich gern immer Sichtbar haben
https://www.herber.de/bbs/user/95814.xls

Anzeige
AW: Datum Suchen und ausblenden
17.02.2015 12:58:13
Michael
Gruß und Danke

AW: Datum Suchen und ausblenden
17.02.2015 20:35:54
Ralf
Hallo Michael,
kopiere den Code im VBA-Editor in DieseArbeitsmappe. Er wird beim öffnen der Datei ausgeführt.
Gruß
Ralf
Private Sub Workbook_Open()
Dim Zelle As Range
Dim Sht As Worksheet
Set Sht = ActiveSheet
With Sht
.Rows.Hidden = False
For Each Zelle In .Range(.Cells(1, 1), .Cells(.Rows(.Rows.Count).End(xlUp).Row, 1))
If IsDate(Zelle) Then
If Month(Date)  Month(Zelle) Then
Zelle.EntireRow.Hidden = True
End If
End If
Next
End With
End Sub

AW: Datum Suchen und ausblenden
17.02.2015 23:35:44
Michael
Hallo Ralf,
der Code funktioniert Prima, dauert nur etwas lange (ca. 30 sek) bis er durch ist.
Gibt es hier eine Möglichkeit das zu verbessern?
Und noch eine kleine Bitte, ich würde gern die Zelle des aktellen Datums beim öffnen der Datei ausgewählt haben, jedoch in Spalte H.
Bsp. Wenn in A10 das aktulle Datum steht soll Zelle H10 aktiv sein. Ist das möglich?!
Danke für den Code und deine rasche Hilfe
Gruß
Michael

Anzeige
AW: Datum Suchen und ausblenden
18.02.2015 09:32:13
Ralf
Hallo Michael,
(ca. 30 sek) bis er durch ist
Normal hilft das Abschalten des "Geflimmers".
Setze das hinter dem letzen DIM:
Application.Screenupdating = False
und das vor End Sub:
Application.Screenupdating = True
Bsp. Wenn in A10 das aktulle Datum steht soll Zelle H10 aktiv sein. Ist das möglich?!
Hier reicht ein Beispiel nicht aus. Wo kann noch das aktuelle Datum stehen und welche Zelle soll sonst aktiv werden? Dazu muss es eine Regel geben, sonst ist es nicht programmierbar.
für dein Beispiel ergänze vor End sub:
if range("A10") = date then range("H10").activate 'oder eigentlich select?!
Das macht aber auch nur Sinn, wenn die Zeile nicht ausgeblendet ist.
Gruß
Ralf

Anzeige
AW: Datum Suchen und ausblenden
18.02.2015 13:47:10
Michael
Hallo Ralf,
Danke, Screenupdating war goldrichtig.
Zum aktullen Datum, Datumseinträge stehen nur in Spalte A, Spalte H ist leer. Das aktuelle Datum ist immer vorhanden, egal ob 1.1 oder 31.12
Danke für deine Mühe.
Gruß
Michael

AW: Datum Suchen und ausblenden
18.02.2015 17:47:25
Michael
Hallo Ralf,
da ist mir noch etwas aufgefallen das ich erst nicht gesehen habe, aber dann is Schluss mit der fragerei.
In meiner Beispieldatei ist oberhalb der Monatsblöcke noch eine Überschrift, diese sollte nur beim aktuellen Monat eingeblendet sein und bei den nicht aktuellen Monatsblöcken mit ausgeblendet werden.
Sorry für die etwas falsche Beschreibung.
PS. Nur wenn es leicht umzusetzen ist.
Danke und Grüße
Michael

Anzeige
AW: Datum Suchen und ausblenden
19.02.2015 12:16:55
Ralf
Hallo Michael,
ersetze den Code:
       For Each Zelle In .Range(.Cells(1, 1), .Cells(.Rows(.Rows.Count).End(xlUp).Row, 1))
If IsDate(Zelle) Then
If Month(Date)  Month(Zelle) Then
Zelle.EntireRow.Hidden = True
End If
End If
Next
durch:
       For Each Zelle In .Range(.Cells(1, 1), .Cells(.Rows(.Rows.Count).End(xlUp).Row, 1))
If IsDate(Zelle) Then
If Month(Date)  Month(Zelle) Then
if day(zelle)=1 then Zelle.offset(-1,0).EntireRow.Hidden = True
Zelle.EntireRow.Hidden = True
End If
End If
Next
Gruß
Ralf

Anzeige
AW: Datum Suchen und ausblenden
19.02.2015 19:10:31
Michael
Hallo Ralf
und danke für die hilfe. Es klappt wie von mir gewünscht.
Die Zelle mit dem aktuellen Datum beim start markieren wird wohl nicht easy sein oder? Wie gesagt Datumseinträge nur in spalte A.
Dankeschön vielmals
Michael

AW: Datum Suchen und ausblenden
19.02.2015 21:15:42
Ralf
Hallo Michael,
gar kein Problem. Es werden alle Zellen abgeklappert. Man muss nur mit dem aktuellen Datum vergleichen.
For Each Zelle In .Range(.Cells(1, 1), .Cells(.Rows(.Rows.Count).End(xlUp).Row, 1))
If IsDate(Zelle) Then
if zelle=date then
zelle.parent.activate
zelle.select
end if
If Month(Date)  Month(Zelle) Then
if day(zelle)=1 then Zelle.offset(-1,0).EntireRow.Hidden = True
Zelle.EntireRow.Hidden = True
End If
End If
Next
Gruß
Ralf

Anzeige
AW: Datum Suchen und ausblenden
20.02.2015 11:40:08
Michael
Hallo Ralf,
Nochmal danke, alles läuft nach meinen wünschen.
Danke für die Unterstützung
Gruß
Michael

gern :) owT
20.02.2015 18:20:16
Ralf

AW: gern :) owT
21.02.2015 11:17:34
Michael
Hallo Ralf,
leider muss ich dich, wenn du es nicht schon leid bist, nochmal behelligen.
Und zwar:
Ich habe zuhause eine änliche Tabelle allerdings zum Unteschied zum Büro benuze ich daheim Excel 2010
und auf excel 2010 läuft der Code sehr langsam durch.
Auf Excel 2003 war beim öffnen der Datei schon alles Startklar und die Tabelle war bereit zum bearbeiten, auf Excel 2010 dauerts ca. 20 sek.
Ich habe mir gedacht ich schränke die Zellen in denen Excel nach Datumeintragen sucht von A10 bis A441 ein, anstatt in der ganzen Spalte A zu Suchen damit es schneller wird,(vielleicht gibt es auch andere Möglichkeiten), nur leider reichen meine VBA Kentnisse hierfür wiederum nicht aus :-(.
Kannst mir bitte nochmal helfen
Gruß
Michael

Anzeige
AW: gern :) owT
21.02.2015 12:25:40
Ralf
Hallo Michael,
Wenn du in einer Tabelle bist, drücke strg+ende.
In welcher Zeile landest du?
Bestimmt die letzte, oder ganz weit unten?
Lösche alle leeren Zeilen.
Markiere die erste freie Zeile komplett.
Drücke strg+shift+ende.
Denn sind alle bis unten markiert.
Drücke nun strg+minus auf dem num block.
Speichere die Datei.
Wiederhole strg+ende, wo landest du jetzt?
Das Makro geht bis zur letzten beschriebenen Zeile.
Gruß
Ralf

AW: gern :) owT
21.02.2015 13:17:23
Michael
Hallo Ralf,
vor dem Prozedere war Zelle AM 448 markiert und nachher, also jetzt AM 446.
Also 2 Zeilen unter sowie 8 Spalten neben dem letzten Eintrag.
Noch ein Ansatz? Soll ich mal die original Tabelle hochladen?
Gruß
Michael

Anzeige
Wenn es dir nichts ausmacht..
21.02.2015 16:39:40
Ralf
..Ich habe aber Zuhause auch nur 2003. Kann ich erst Montag machen.
Gruß
Ralf

AW: Wenn es dir nichts ausmacht..
23.02.2015 08:38:56
Michael
Hallo Ralf,
anbei die Originaldatei. Was mir gerade aufgefallen ist.
Wenn ich alle Tabellenblätter außer das vom aktuellen Jahr lösche, ist die Datei auch auf Excel 2010 sofort nach dem öffnen Startklar. Allerdings sind normalerweise 5 Tabellenblätter enthalten.
Vielleicht weist du einen Rat.
https://www.herber.de/bbs/user/95919.xlsm
Danke schon mal
Gruß
Michael

AW: Wenn es dir nichts ausmacht..
23.02.2015 09:33:39
Ralf
Hallo Michael,
wie gesagt, lösche alle leeren Zeilen, denn wird alles gut sein.
Ich erkenne sonst keine Probleme.
Hier nochmal der Code.
Gruß
Ralf
Private Sub Workbook_Open()
Dim Zelle As Range
Dim Sht As Worksheet
Application.ScreenUpdating = False
Set Sht = ActiveSheet
With Sht
.Rows.Hidden = False
For Each Zelle In .Range(.Cells(1, 1), .Cells(.Rows(.Rows.Count).End(xlUp).Row, 1))
If IsDate(Zelle) Then
If Zelle = Date Then
Zelle.Offset(0, 7).Select
End If
If Month(Date)  Month(Zelle) Then
If Day(Zelle) = 1 Then Zelle.Offset(-1, 0).EntireRow.Hidden = True
Zelle.EntireRow.Hidden = True
End If
End If
Next
End With
Application.ScreenUpdating = True
End Sub

Anzeige
AW: gern :) owT
21.02.2015 11:18:13
Michael
Hallo Ralf,
leider muss ich dich, wenn du es nicht schon leid bist, nochmal behelligen.
Und zwar:
Ich habe zuhause eine änliche Tabelle allerdings zum Unteschied zum Büro benuze ich daheim Excel 2010
und auf excel 2010 läuft der Code sehr langsam durch.
Auf Excel 2003 war beim öffnen der Datei schon alles Startklar und die Tabelle war bereit zum bearbeiten, auf Excel 2010 dauerts ca. 20 sek.
Ich habe mir gedacht ich schränke die Zellen in denen Excel nach Datumeintragen sucht von A10 bis A441 ein, anstatt in der ganzen Spalte A zu Suchen damit es schneller wird,(vielleicht gibt es auch andere Möglichkeiten), nur leider reichen meine VBA Kentnisse hierfür wiederum nicht aus :-(.
Kannst mir bitte nochmal helfen
Gruß
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige