Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Wenn Dann Funktion in Excel

Frage Microsoft Microsoft Office

Mitglied: donnerkai

donnerkai (Level 1) - Jetzt verbinden

25.05.2012 um 10:26 Uhr, 4546 Aufrufe, 9 Kommentare

Hallo und guten Morgen,

ich habe keinerlei Excel Erfahrung, das mal vorweg.
Nun habe ich eine Zelle so formatiert, dass sie eine Dropdown Auwahl enthält. Das funktioniert auch.
Nun würde ich gerne eine Wenn Dann Funktion ergänzen.

Sinn und Zweck: Die Liste steht mehreren Usern zur Verfügung. Wenn ein User den Wert der Zelle von
"offen" auf "in Bearbeitung" oder "Zurückgestellt" ändert, soll automatisch das aktuelle Datum in ein Nachbarfeld gesetzt werden.

also quasi. wenn Zellenwert ungleich "offen" dann setze aktuelles Datum in Nachbarfeld.

Kann ich das mit Excel irgendwie realisieren?

Vielen Dank
Mitglied: mak-xxl
25.05.2012, aktualisiert um 11:08 Uhr
Moin donnerkai,

wenn die Worte so in der Zelle stehen (i.e. 'A1'), dann kommt in Zelle 'B1':

=WENN(UND($A1<>"offen";$A1<>"");HEUTE();"")
Zellen bzw. Spalte 'B' als Datum formatieren.
ABER: Das Datum wird bei jedem späteren Öffnen der Mappe aktualisiert! Sollte das von Bedeutung sein, kann man per VBA (gekoppelt an DropDown) den Datumswert eintragen lassen ...

Freundliche Grüße von der Insel - Mario
Bitte warten ..
Mitglied: donnerkai
25.05.2012 um 11:16 Uhr
Ok, dann bringt mir das natürlich nichts. Dann müsste ich die VBA Variante nehmen.
Ich habe auch dafür schon einen Code gefunden:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim RaBereich As Range
' abbrechen, wenn erste Zeile oder mehr als eine Zelle aktiv
If Target.Row < 2 Or Target.Count > 1 Then Exit Sub

'für Änderungen in E2 bis E50. Ggf anpassen
Set RaBereich = Range("E2:E50")
Application.EnableEvents = False

'bei Änderung eine Zelle rechts davon Datum und Uhrzeit eintragen
If Not Intersect(Target, RaBereich) Is Nothing Then
Target.Offset(0, +1) = Format(Now, "dd.mm.yyyy_hh:mm:ss")
End If

Application.EnableEvents = True
Set RaBereich = Nothing

End Sub


Funktioniert leider nicht.
ich habe den Code aus einem anderen Forum, wo die User allerdings schreiben, dass es funktioniert.

Mache ich Fehler beim Ablauf? Ich mache einen Rechtsklick auf die Tabelle und gehe auf Code anzeigen. Dann kopiere ich den oben stehenden Code und speichere.
Wenn ich nun die Werte in bsp: e30 verändere passiert mal gar nix.
Oder muss ich noch irgendeinen Zwischenschritt machen?
Bitte warten ..
Mitglied: mak-xxl
25.05.2012, aktualisiert um 11:36 Uhr
Moin donnerkai,

eher so:
01.
Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
02.
    If Target.Row < 2 Or Target.Count > 1 Then Exit Sub 
03.
    Application.EnableEvents = False 
04.
    If Not Intersect(Target, Range("E2:E50")) Is Nothing Then 
05.
        If Target.Text = "Zurückgestellt" Or Target.Text = "in Bearbeitung" Then 
06.
            Target.Offset(0, 1) = Format(Now, "dd.mm.yyyy") 
07.
        Else 
08.
            Target.Offset(0, 1) = Empty 
09.
        End If 
10.
    End If 
11.
    Application.EnableEvents = True 
12.
End Sub
Den Bereich in Zeile 4 evtl. anpassen.

Freundliche Grüße von der Insel - Mario
Bitte warten ..
Mitglied: bastla
25.05.2012 um 11:48 Uhr
... und vielleicht auch noch berücksichtigen, dass die Einträge wie "in Bearbeitung" hinsichtlich der Groß-/Kleinschreibung exakt ausgewertet werden - daher etwas benutzerfreundlicher:
If LCase(Target.Text) = "zurückgestellt" Or LCase(Target.Text) = "in bearbeitung" Then
Grüße
bastla
Bitte warten ..
Mitglied: donnerkai
25.05.2012 um 11:52 Uhr
Auch hierbei kein Ergebnis wenn ich den Code einbinde.
Ich verändere die Zelle A30 und es passiert nichts!
Bitte warten ..
Mitglied: bastla
25.05.2012, aktualisiert um 12:00 Uhr
Hallo donnerkai!

Nur zur Sicherheit: Den Code hast Du hoffentlich nicht in ein Modul eingefügt, sondern der Tabelle zugeordnet (am einfachsten per Rechtsklick auf das Registerblatt der Tabelle und "Code anzeigen")?

Ansonsten siehe noch meine Anmerkung oberhalb ...

[Edit] ... und wenn Du tatsächlich die Zelle A30 änderst, wird auch nix passieren (überwacht werden E2:E50). [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: mak-xxl
25.05.2012, aktualisiert um 12:00 Uhr
Moin donnerkai,

es passiert nur etwas, wenn Du die Zellen im Bereich 'E2' bis 'E50' veränderst, wenn andere Zellen benutzt werde, musst Du in Zeile 4 des Codes selbiges anpassen.

Um zu prüfen, ob der Code überhaupt ausgeführt wird, schreibst Du als Zeile 2

MsgBox Target.Address
Es wird dann jedesmal angezeigt, in welcher Zelle etwas geändert wurde - diese Code-Zeile später wieder löschen.

Freundliche Grüße von der Insel - Mario
Bitte warten ..
Mitglied: donnerkai
25.05.2012 um 13:47 Uhr
Hab ich natürlich vorher geändert. Geht aber trotzdem nicht.
Bitte warten ..
Mitglied: donnerkai
25.05.2012 um 15:32 Uhr
Einmal geschlossen und wieder geöffnet und schon gehts.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst Excel: Text in Zellbereich prüfen mit Vergleichstext ggf. mit Exact-Funktion (5)

Frage von Michi1 zum Thema Microsoft Office ...

JavaScript
AngularJS Variable über Input in Funktion ausführen

Frage von badkilla zum Thema JavaScript ...

VB for Applications
Excel VBA Sortierung von Daten (5)

Frage von easy4breezy zum Thema VB for Applications ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...