Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Excel: per VBA in Abhängigkeit von Wert Zeilen aus- oder einblenden

Frage Microsoft Microsoft Office

Mitglied: philbo20

philbo20 (Level 1) - Jetzt verbinden

23.10.2014 um 09:57 Uhr, 1781 Aufrufe, 10 Kommentare

Hallo zusammen,

ich habe eine Excel-Tabelle, in der ich in einer Zelle ein Datum stehen habe.
Nun würde ich gerne folgendes lösen:

Ist das Datum in der Zelle = das heutige Datum, sollen die Zeilen 7 und 13 ausgeblendet werden.
Zeitgleich soll der Inhalt der Zellen A8 bis A12 in "1.", "2.", "3.", "4." und "5." geändert werden (war vorher 2. bis 6.).
Ist das Datum nicht das Tagesdatum, sollen die Zeilen eingeblendet bleiben (bzw. werden, falls sie es nicht sind).

Kann doch eigentlich nicht so schwer sein, oder?

Viele Grüße
Philipp
Mitglied: colinardo
LÖSUNG 23.10.2014, aktualisiert um 13:22 Uhr
Hallo Phillip,
im Beispiel steht dein Datum in Zelle A1
01.
Sub CheckDate() 
02.
    Dim ws As Worksheet 
03.
    Set ws = Sheets(1) 
04.
    With ws 
05.
        'Wenn Zelle A1 = Heutiges Datum dann 
06.
        If .Range("A1").Value = Date Then 
07.
            'Neue Werte eintragen 
08.
            cnt = 1 
09.
            For i = 8 To 12 
10.
                .Range("A" & i).Value = cnt & "." 
11.
                cnt = cnt + 1 
12.
            Next 
13.
            'Zeilen 7 und 13 ausblenden 
14.
            .Rows(7).Hidden = True 
15.
            .Rows(13).Hidden = True 
16.
        Else 
17.
            'Zeilen einblenden 
18.
            .Rows(7).Hidden = False 
19.
            .Rows(13).Hidden = False 
20.
        End If 
21.
 
22.
    End With 
23.
End Sub
Grüße Uwe
Bitte warten ..
Mitglied: philbo20
23.10.2014 um 11:27 Uhr
Hi,
danke soweit schonmal. Irgendwie klappt es aber noch nicht...
liegt es daran, dass in der Zelle mit dem Datum eine Funktion steckt, die das Datum von einem anderen Tabellenblatt ermittelt???
Ich vermute, dass hier geprüft wird, ob die Formel = heutiges Datum ist. Aber das trifft ja niemals zu.
Zudem sollte nicht Zeile 7 bis 13 ausgeblendet werden, sondern nur 7 und 13.
Dann muss ich ws.Range(7).EntireRow.Hidden und ws.Range(13).EntireRow.Hidden = true setzen, oder?
Bitte warten ..
Mitglied: colinardo
23.10.2014, aktualisiert um 11:38 Uhr
Zitat von philbo20:
liegt es daran, dass in der Zelle mit dem Datum eine Funktion steckt, die das Datum von einem anderen Tabellenblatt ermittelt???
ist oben dahingehend angepasst. Ich gehe davon aus das deine Zelle aber das Datumsformat hat ...
Zudem sollte nicht Zeile 7 bis 13 ausgeblendet werden, sondern nur 7 und 13.
OK das hatte ich missverstanden, sorry. Ist ebenfalls oben angepasst...

Grüße Uwe
Bitte warten ..
Mitglied: philbo20
23.10.2014 um 11:48 Uhr
Hallo nochmal Uwe,

hmm irgendwie passiert gar nix, wenn ich den Code einfüge. Zwar keine Fehlermeldung, aber es wird auch nix ein oder ausgeblendet.
Ich habe zum Testen schonmal "If .Range("A1").Value = "23.10.2014"" eingetragen, allerdings passiert da auch nichts.
Gruß
Philipp
Bitte warten ..
Mitglied: colinardo
23.10.2014, aktualisiert um 11:56 Uhr
Zitat von philbo20:
hmm irgendwie passiert gar nix, wenn ich den Code einfüge. Zwar keine Fehlermeldung, aber es wird auch nix ein oder
ausgeblendet.
Hast du das Sheet angepasst (Zeile 3) auf dem dies passieren, soll, läuft hier nämlich einwandfrei !
Ich habe zum Testen schonmal "If .Range("A1").Value = "23.10.2014"" eingetragen, allerdings passiert
Ist deine Datumszelle als Datum oder als Text formatiert ? Ich gehe hier vom Datumsformat aus ...
Bitte warten ..
Mitglied: philbo20
23.10.2014, aktualisiert um 12:00 Uhr
Zitat von colinardo:
Hast du das Sheet angepasst (Zeile 3) auf dem dies passieren, soll, läuft hier nämlich einwandfrei !

Nee, daran wird es wohl liegen.
Gebe ich die Nummer an, oder den Namen des Blatts?
Also z.B. Set ws = sheets("Test") ?

Die Zelle ist als Datum formatiert. Würde .Value nicht mit Text funktionieren?
Bitte warten ..
Mitglied: colinardo
23.10.2014, aktualisiert um 12:06 Uhr
Zitat von philbo20:
Nee, daran wird es wohl liegen.
Gebe ich die Nummer an, oder den Namen des Blatts?
Also z.B. Set ws = sheets("Test") ?
Ja genau entweder als Text oder die Positionsnummer des Blattes.

Die Zelle ist als Datum formatiert. Würde .Value nicht mit Text funktionieren?
Nein, du müstest den Vergleich dann aber nicht mit Date machen sondern z.B. so
.Range("A1").Value = Format(Date, "dd.mm.yyyy")
Da du hier einen String vergleichst, denn Date liefert nämlich als Wert eine Zahl, und das ist der Fall wenn eine Zelle in Excel als Datum formatiert ist !
Bitte warten ..
Mitglied: philbo20
23.10.2014 um 12:06 Uhr
Danke für deine Hilfe...es hat soweit jetzt funktioniert.
Aber komischer Weise nur, wenn ich im Codeeditor auf "ausführen" klicke bzw F5 drücke...
woran liegt das denn jetzt noch?? Hast du eine Idee.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 23.10.2014, aktualisiert um 13:22 Uhr
Zitat von philbo20:

Danke für deine Hilfe...es hat soweit jetzt funktioniert.
Aber komischer Weise nur, wenn ich im Codeeditor auf "ausführen" klicke bzw F5 drücke...
woran liegt das denn jetzt noch?? Hast du eine Idee.
das hast du ja nicht gesagt das du diese Funktion so haben wolltest ,ist aber kein Problem, dazu musst du den Code in den entsprechenden Codeabschnitt des Tabellenblatts verschieben und so anpassen:
(In Zeile 3 die Zelle anpassen auf dessen Änderungen die Überprüfung stattfinden soll):
01.
Private Sub Worksheet_Change(ByVal Target As Range) 
02.
    'Range bei dem eine Änderung etwas bewirken soll 
03.
    Set changeRange = Range("A1") 
04.
    If Not Application.Intersect(changeRange, Target) Is Nothing Then 
05.
        CheckDate 
06.
    End If 
07.
End Sub 
08.
 
09.
Sub CheckDate() 
10.
    Dim ws As Worksheet 
11.
    Set ws = Sheets(1) 
12.
    With ws 
13.
        'Wenn Zelle A1 = Heutiges Datum dann 
14.
        If .Range("A1").Value = Date Then 
15.
            'Neue Werte eintragen 
16.
            cnt = 1 
17.
            For i = 8 To 12 
18.
                .Range("A" & i).Value = cnt & "." 
19.
                cnt = cnt + 1 
20.
            Next 
21.
            'Zeilen 7 und 13 ausblenden 
22.
            .Rows(7).Hidden = True 
23.
            .Rows(13).Hidden = True 
24.
        Else 
25.
            'Zeilen einblenden 
26.
            .Rows(7).Hidden = False 
27.
            .Rows(13).Hidden = False 
28.
        End If 
29.
 
30.
    End With 
31.
End Sub
Bitte warten ..
Mitglied: philbo20
23.10.2014 um 13:21 Uhr
Zitat von colinardo:
das hast du ja nicht gesagt das du diese Funktion so haben wolltest ,ist aber kein Problem, dazu musst du den Code in den
entsprechenden Codeabschnitt des Tabellenblatts verschieben und so anpassen:
(In Zeile 3 die Zelle anpassen auf dessen Änderungen die Überprüfung stattfinden soll):

Stimmt, hatte ich nicht erwähnt

Muss auch eigentlich nur beim Öffnen geprüft werden, habe daher jetzt
Sub Workbook_Open() verwendet.

Da es mehrere Arbeitsblätter gibt, habe ich jetzt den auszublendenden Zeilen einen Namen (Zeilennummern sind unterschiedlich) gegeben und lasse sie mit .Range('Name") ein- bzw. ausblenden.

Danke dir vielmals für die Hilfe!

Gruß
Philipp
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Excel Zeilen einblenden wenn
gelöst Frage von misau70Microsoft Office9 Kommentare

Hallo, kann man in Excel Zeilen ein- und ausblenden wenn sich eine Bedingung erfüllt? z.B. in Tabelle 1, Zelle ...

Microsoft Office
Excel VBA Wert hochzählen
gelöst Frage von Florian86Microsoft Office1 Kommentar

Hallo, ich habe im VBA Code folgendes stehen Range("E10") = Range("E10") + 1 Jetzt ist der Wert bei schon ...

Microsoft Office
Excel-VBA: Alle Werte einer Spalte in einer anderen Suchen
gelöst Frage von KevinPMicrosoft Office4 Kommentare

Hallo, ich hänge jetzt schon seit Tagen dran und komm nicht zu Rande. Ich versuche jeden Wert eines Tabellenblattes ...

Microsoft Office
Excel: Wert aus mehreren Zeilen vergleichen
gelöst Frage von NicolaasMicrosoft Office2 Kommentare

Hallo zusammen, ich würde mir gerne eine Auswertung mit Excel erstellen. Ich habe leider gerade keine Idee mit welcher ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 10 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 14 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...