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

Mitglied: philbo20

philbo20 (Level 1) - Jetzt verbinden

23.10.2014 um 09:57 Uhr, 1849 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
Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 2 StundenMicrosoft2 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 20 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 1 TagiOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server30 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless25 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

SAN, NAS, DAS
Qnap TS-453S Pro - Anbindung Active Directory
Frage von JuckieSAN, NAS, DAS13 Kommentare

Hallo zusammen, ich habe hier eine Qnap TS-453S Pro die sich mal so absolut gar nicht in das Active ...