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
GELÖST

Statisches Datum in Excel Via Formel oder Makro

Frage Microsoft Microsoft Office

Mitglied: TheFalcon

TheFalcon (Level 1) - Jetzt verbinden

01.11.2014, aktualisiert 17:28 Uhr, 2144 Aufrufe, 12 Kommentare, 1 Danke

Hallo zusammen,

ich habe mal eine Frage und zwar:

Ich habe eine Tabelle, in Spalte B wird via Formel =WENN(D8<>"";HEUTE();" ") das aktuelle Datum und in Spalte C die aktuelle Uhrzeit automatisch eingetragen. Sobald ich jetzt etwas in der Zeile verändere springt die Uhrzeit und das Datum auf das aktuelle. Wie kann ich jetzt sagen das die Werte Fix bleiben?

1460d68e231ea07eb5bbe519f9c5f9fb - Klicke auf das Bild, um es zu vergrößern

Gruß

Alexander
Mitglied: rubberman
LÖSUNG 01.11.2014, aktualisiert um 17:28 Uhr
Hallo Alexander,

mit einer Formel wird das nicht funktionieren, per Makro schon.
Öffne den VBEditor mit Alt+F11. Doppelklicke links auf die entsprechende Tabelle und füge rechts folgenden Code ein:
01.
Private Sub Worksheet_Change(ByVal Target As Range) 
02.
    If Target.Cells.Count = 1 And Target.Column = 4 Then 
03.
        If Not IsEmpty(Target) And IsEmpty(Cells(Target.Row, 2)) And IsEmpty(Cells(Target.Row, 3)) Then 
04.
            Cells(Target.Row, 2) = Date 
05.
            Cells(Target.Row, 3) = Time 
06.
        End If 
07.
    End If 
08.
End Sub
Stelle sicher, dass die Zellen in den Spalten B und C wirklich leer sind (keine Formeln oder ähnliches).

Grüße
rubberman
Bitte warten ..
Mitglied: TheFalcon
01.11.2014, aktualisiert um 18:05 Uhr
Perfekt Danke!!!!!


Kann ich das auch noch erweitern auf Spalte 12? Quasi wenn ich in Spalte 13 etwas eintrage soll die Spalte davor (12) das aktuelle Datum ausgeben

Gruss

Alexander
Bitte warten ..
Mitglied: rubberman
01.11.2014 um 18:35 Uhr
Hallo Alexander,

natürlich kann man das.
01.
Private Sub Worksheet_Change(ByVal Target As Range) 
02.
    If Target.Cells.Count = 1 And Not IsEmpty(Target) Then 
03.
        If Target.Column = 4 _ 
04.
            And IsEmpty(Cells(Target.Row, 2)) _ 
05.
            And IsEmpty(Cells(Target.Row, 3)) _ 
06.
        Then 
07.
            Cells(Target.Row, 2) = Date 
08.
            Cells(Target.Row, 3) = Time 
09.
        ElseIf Target.Column = 13 _ 
10.
            And IsEmpty(Cells(Target.Row, 12)) _ 
11.
        Then 
12.
            Cells(Target.Row, 12) = Date 
13.
        End If 
14.
    End If 
15.
End Sub
Grüße
rubberman
Bitte warten ..
Mitglied: TheFalcon
02.11.2014 um 09:25 Uhr
Hallo Rubberman,

irgendwie übernimmt er bei mir das nicht. Spalte 2 und drei funktionieren perfekt, aber wenn ich spalte 13 fülle macht er irgendwie nichts ...

Gruss

Alexander
Bitte warten ..
Mitglied: rubberman
02.11.2014 um 12:06 Uhr
Hallo Alexander,

ich hatte es getestet. Funktioniert bei mir völlig problemlos.

Auch hier gilt dass die Zellen in Spalte 12 vorher leer sein müssen, bitte noch mal prüfen. Auch ein nicht sichtbares Leerzeichen ist ein Zelleninhalt.
Kann auch sein dass du Spalten ausgeblendet hast. Das wird vom Makro nicht berücksichtigt. Spalte 12 ist immer "L" und Spalte 13 immer "M".

Grüße
rubberman
Bitte warten ..
Mitglied: TheFalcon
02.11.2014 um 16:41 Uhr
Hallo rubberman,

jetzt weiss ich wo der Fehler liegt bei mir ist Spalte 13 schon P, besten Dank!!!

Gruss

Alexander
Bitte warten ..
Mitglied: rubberman
02.11.2014 um 16:52 Uhr
Hallo Alexander,

dann ist es einfach. In Zeile 9 die 13 zu 16 machen und (falls die ausgeblendeten Spalten nicht dazwischen liegen) in Zeile 10 und 12 die 12 zu 15.

Grüße
rubberman
Bitte warten ..
Mitglied: TheFalcon
05.11.2014 um 11:46 Uhr
Hallo Rubberman,

habe noch ein kleines Anliegen

01.
Private Sub Worksheet_Change(ByVal Target As Range) 
02.
    If Target.Cells.Count = 1 And Not IsEmpty(Target) Then 
03.
        If Target.Column = 4 _ 
04.
            And IsEmpty(Cells(Target.Row, 2)) _ 
05.
            And IsEmpty(Cells(Target.Row, 3)) _ 
06.
        Then 
07.
            Cells(Target.Row, 2) = Date 
08.
            Cells(Target.Row, 3) = Time 
09.
        ElseIf Target.Column = 13 _ 
10.
            And IsEmpty(Cells(Target.Row, 12)) _ 
11.
        Then 
12.
            Cells(Target.Row, 12) = Date 
13.
            Cells(Target.Row, 8) = "-" 
14.
            Cells(Target.Row, 11) = " " 
15.
            Cells(Target.Row, 6) = " " 
16.
        End If 
17.
    End If 
18.
End Sub
Er soll Punkt 13-15 nur so ausfüllen, wenn sie leer sind ansonsten soll der Inhalt drin bleiben. Komme aber nicht auf die Formel

Gruss

Alexander
Bitte warten ..
Mitglied: rubberman
05.11.2014 um 19:08 Uhr
Hallo Alexander,

hast du dich mal gefragt was die IsEmpty() Funktion macht?
01.
Private Sub Worksheet_Change(ByVal Target As Range) 
02.
    If Target.Cells.Count = 1 And Not IsEmpty(Target) Then 
03.
        If Target.Column = 4 _ 
04.
            And IsEmpty(Cells(Target.Row, 2)) _ 
05.
            And IsEmpty(Cells(Target.Row, 3)) _ 
06.
        Then 
07.
            Cells(Target.Row, 2) = Date 
08.
            Cells(Target.Row, 3) = Time 
09.
        ElseIf Target.Column = 13 _ 
10.
            And IsEmpty(Cells(Target.Row, 12)) _ 
11.
        Then 
12.
            Cells(Target.Row, 12) = Date 
13.
            If IsEmpty(Target.Row, 8) Then Cells(Target.Row, 8) = "-" 
14.
            If IsEmpty(Target.Row, 11) Then Cells(Target.Row, 11) = " " 
15.
            If IsEmpty(Target.Row, 6) Then Cells(Target.Row, 6) = " " 
16.
        End If 
17.
    End If 
18.
End Sub
Grüße
rubberman
Bitte warten ..
Mitglied: TheFalcon
06.11.2014, aktualisiert um 06:15 Uhr
Hallo Rubberman,

Die sagt doch aus: Wenn die Zeile leer ist soll er sie ausfüllen. ich wusste nicht wie ich das mit einfüge. Aber so klappt es leider auch nicht.

Gruß

Alexander
Bitte warten ..
Mitglied: rubberman
LÖSUNG 07.11.2014, aktualisiert um 07:59 Uhr
Hallo Alexander.

IsEmpty() gibt "Wahr" zurück, wenn die Zelle leer ist, anderenfalls "Falsch".

Aber so klappt es leider auch nicht.
Dann erkläre noch einmal genau, wie es funktionieren soll.
Im Moment:
  • Wenn die Zelle in Spalte M leer ist dann
    • Datum in Spalte L schreiben
    • Wenn die Zelle in Spalte H leer ist dann
      • in Spalte H ein - schreiben
    • Wenn die Zelle in Spalte K leer ist dann
      • in Spalte K ein Leerzeichen schreiben
    • Wenn die Zelle in Spalte F leer ist dann
      • in Spalte F ein Leerzeichen schreiben

    Betrachte die Einrückungen als Hierarchie bei der Abarbeitung.

    Grüße rubberman
Bitte warten ..
Mitglied: TheFalcon
07.11.2014 um 08:02 Uhr
Hallo Rubberman,

habe es hinbekommen. Danke noch mal für die Tipps!!

01.
Private Sub Worksheet_Change(ByVal Target As Range) 
02.
    If Target.Cells.Count = 1 And Not IsEmpty(Target) Then 
03.
        If Target.Column = 4 _ 
04.
            And IsEmpty(Cells(Target.Row, 2)) _ 
05.
            And IsEmpty(Cells(Target.Row, 3)) _ 
06.
        Then 
07.
            Cells(Target.Row, 2) = Date 
08.
            Cells(Target.Row, 3) = Time 
09.
        ElseIf Target.Column = 13 _ 
10.
            And IsEmpty(Cells(Target.Row, 12)) _ 
11.
        Then 
12.
            Cells(Target.Row, 12) = Date 
13.
            If Cells(Target.Row, 8) = "" Then Cells(Target.Row, 8) = "-" 
14.
            If Cells(Target.Row, 11) = "" Then Cells(Target.Row, 11) = " " 
15.
            If Cells(Target.Row, 6) = "" Then Cells(Target.Row, 6) = " " 
16.
        End If 
17.
    End If 
18.
End Sub

Gruss

Alexander
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Microsoft Office
gelöst Excel-Formel oder VBA (7)

Frage von nicki01 zum Thema Microsoft Office ...

VB for Applications
gelöst Zelle in Excel per Makro auswählen (7)

Frage von Enriqe zum Thema VB for Applications ...

Microsoft Office
gelöst In Excel das Datum aus einer Registerlasche in einer Formel verwenden (7)

Frage von michael1306 zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel Makro - Button "Springe zu Zeile mit heutigem Datum" (5)

Frage von hannsgmaulwurf zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...