Guten Morgen,
ich bräuchte bitte Hilfe von einem Experten, da ich selbst erst Excel-Einsteiger (Office2007) bin.
Ich habe einen Kalender angelegt (B5:B370). Das aktuelle Datum wird farbig hevorgehoben.
Wie kann man die anderen Zeilen (vor und nach dem akt. Datum) ausblenden? Am liebsten wäre mir ein CommandButton zum ein-/ausschalten.
Leider kenne ich mich mit VBA so garnicht aus…
Hat jemand eine Idee??? Wäre mehr als dankbar dafür.
Gruß vom ratolden
Hallo,
Ich denke das geht ohne Makro:
das hervorheben vom Datum geschieht doch vermutlich per bedingter Formatierung > Datum wird mit Heute() verglichen.
Das könntest du mit dem Datum davor und dahinter genau so machen in dem du das Datum mit Heute()+1 bzw. Heute()-1 vergleichst.
Das Format stellst du so ein das Hintergrundfarbe und Textfarbe identisch ist:
B5:B370 markieren, [oberste Zelle B5 sonnst Formel anpassen]
bedingte Formatierung>Formel zur … >
=ODER(B5=HEUTE()-1;B5=HEUTE()+1)
Format einstellen
ok
Das du in der Formel auch noch eine Zelle abfragen kannst ob ausgeblendet werden soll oder nicht versteht sich:
A1 = „JA“ für ausblenden:
Formel zur … >
=(A1=„JA)“*ODER(B5=HEUTE()-1;B5=HEUTE()+1)
Gruß Holger
Ich habe einen Kalender angelegt (B5:B370). Das aktuelle Datum
wird farbig hevorgehoben.
Wie kann man die anderen Zeilen (vor und nach dem akt. Datum)
ausblenden? Am liebsten wäre mir ein CommandButton zum
ein-/ausschalten.
Gruß vom ratolden
Hallo Ratolden,
Sub DatumAnzeigen()
Dim Zelle As Range
Rows(„5:370“).Hidden = True
Set Zelle = Range(„B5:B370“).Find(Date)
If Not Zelle Is Nothing Then Rows(Zelle.Row).Hidden = False
End Sub
Gruß
Reinhard
Hallo Reinhard,
danke für den Code. Nur leider setzt der mir alle Zeilen auf ausblenden. Da kann etwas nicht stimmen oder? Und auf erneutem Klick soll er die Zeilen auch wieder sitzbar machen…hmmmm…Idee??? Wäre schön…
Achja, soweit ich es inzwischen weiß muss nach einer If-Anweisung ja auch ein End If folgen oder…
Gruß vom ratlosen
Hallo Ratloser,
danke für den Code. Nur leider setzt der mir alle Zeilen auf
ausblenden. Da kann etwas nicht stimmen oder? Und auf erneutem
Klick soll er die Zeilen auch wieder sitzbar
machen…hmmmm…Idee??? Wäre schön…
okay, nachfolgend zwei identische Codes die das machen.
Der erste Code ist für eine ActiveX Steuerelementschaltfläche, der zweite Code für eine Schaltfläche aus Formularsteuerelementen.
Den ersten Code also in das Modul des Blattes wo der Button ist.
Alternativ den zweiten Code in ein Standardmodul, Modul1 o.ä.
Dann der Formularschaltfläche das Makro zuweisen.
Achja, soweit ich es inzwischen weiß muss nach einer
If-Anweisung ja auch ein End If folgen oder…
Es geht beides,
If Bedingung Then Anweisung
oder
If Bedingung Then
Anweisung
End If
Gruß
Reinhard
Private Sub CommandButton1_Click()
Dim Zelle As Range
Static AusEin As Boolean
AusEin = Not AusEin
CommandButton1.Caption = IIf(AusEin, „Einblenden“, „Ausblenden“)
Rows(„5:370“).Hidden = AusEin
Set Zelle = Range(„B5:B370“).Find(Date)
If Not Zelle Is Nothing Then Rows(Zelle.Row).Hidden = False
End Sub
Sub DatumAnzeigen()
Dim Zelle As Range
Static AusEin As Boolean
AusEin = Not AusEin
Rows(„5:370“).Hidden = AusEin
Set Zelle = Range(„B5:B370“).Find(Date)
If Not Zelle Is Nothing Then Rows(Zelle.Row).Hidden = False
End Sub
Hallo Reinhard,
danke für die Mühe…habs erst jetzt ausprobieren können.
Leider versteckt es so ALLE Zeilen. Die Zeile mit dem heutigen Datum sollte stehen bleiben…
Gruß
Ralf
Leider versteckt es so ALLE Zeilen. Die Zeile mit dem heutigen
Datum sollte stehen bleiben…
Hallo Ralf,
diese Mappe läuft problemlos in XL 2000 mit dem genannten Code. Zeig mal deine Mappe, wegen datenschutz, nur Spalte B interessiert…
http://www.file-upload.net/download-3440189/kwRatlos…
Gruß
Reinhard
Moin Moin Reinhard,
meinst es könnte an der Version liegen??? Habs mit XL2007 gemacht. Die datei steht hier zum DL bereit
Bei dir werden wohl einige Formatierungen nicht laufen…sollte aber egal sein.
sonnigen Tag wünsche ich Dir
Gruß
Ralf
meinst es könnte an der Version liegen??? Habs mit XL2007
gemacht. Die datei steht hier zum DL bereit
Hallo Ralf,
ersetze die Formeln in B durch Werte, dann geht es.
So ist der Code schneller:
Private Sub CommandButton1\_Click()
Dim Zelle As Range
Static AusEin As Boolean
Application.ScreenUpdating = False
AusEin = Not AusEin
CommandButton1.Caption = IIf(AusEin, "Einblenden", "Ausblenden")
Rows("5:370").Hidden = AusEin
Set Zelle = Range("B5:B370").Find(Date)
If Not Zelle Is Nothing Then Rows(Zelle.Row).Hidden = False
Application.ScreenUpdating = True
End Sub
Gruß
Reinhard