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

Excel 2010 Datenüberprüfung in VBA

Frage Microsoft Microsoft Office

Mitglied: DockMaster-de

DockMaster-de (Level 1) - Jetzt verbinden

12.12.2013 um 17:25 Uhr, 5460 Aufrufe, 4 Kommentare

Hallo Leute,

ich habe ein Problem mit einer Excel-Tabelle und komme nicht weiter.
Spalte C ist mit einem Datum und die Spalte D ist mit einer Uhrzeit gefüllt.
Die Dateneingabe liegt zwischen L und BX. Zeilen von 20 bis 200.

Es soll nun jede Dateneingabe mit dem Datum und Uhrzeit aus der Zeile verglichen werden.
Liegt das Datum und die Uhrzeit in der Vergangenheit soll eine Fehlermeldung erscheinen.
Den Weg mit der Datenüberprüfung kann ich aus verschiedenen Gründen nicht gehen. Somit kommt
wohl nur VBA in Frage. Leider habe ich aber davon keine Ahnung.

Somit hoffe ich auf die Profis hier im Forum.

have a nice day...

DockM@ster
Mitglied: bastla
12.12.2013 um 17:41 Uhr
Hallo DockMaster-de!

Was soll denn nach der Überprüfung weiter passieren? Wenn Du zB nur feststellen und per Farbcodierung anzeigen wolltest, ob der jeweils in L20:BX200 enthaltene Timestamp zeitlich vor dem sich aus den Spalten C und D ergebenden Wert liegt, würde eine Bedingte Formatierung für die Zelle L20 mit der Formel
=L20<($C20+$D20)
(lässt sich dann auch auf alle weiteren Zellen des Bereichs L20:BX200 übertragen) genügen, da ja Datum und Uhrzeit auch nur Zahlenwerte sind (Uhrzeiten sind als Bruchteile eines Tages gespeichert) ...

Grüße
bastla
Bitte warten ..
Mitglied: DockMaster-de
12.12.2013 um 17:50 Uhr
Hallo,

Zitat von bastla:

Hallo DockMaster-de!

Was soll denn nach der Überprüfung weiter passieren?
...

Grüße
bastla

ganz vergessen...
Die Zellen sollen für eine Eingabe gesperrt werden und eine Fehlermeldung erscheinen.
Die Formel von dir habe ich schon in der Datenüberprüfung genutzt. Da das Tabellenblatt mit Formatierungen überzogen ist, müsste ich jede einzelne Zelle bearbeiten und deswegen dachte ich an einen VBA Code.

Mit freundlichen Grüßen

DockM@ster
Bitte warten ..
Mitglied: colinardo
12.12.2013, aktualisiert um 19:17 Uhr
Hallo DockM@ster,
Zitat von DockMaster-de:
müsste ich jede einzelne Zelle bearbeiten und deswegen dachte ich an einen VBA Code.
wieso? du kannst den Bereich markieren und dann die Datenüberprüfung mit der Formel von Bastla über den ganzen Bereich in einem Rutsch implementieren. Die Zellbezüge in der Formel werden entsprechend angepasst, solange du die Spalten oder Reihen nicht mit einem $ in der Formel festsetzt.
Die Formel sollte hier aber dann so lauten, wenn du es so meintest das die Daten die du im Bereich L20:BX200 eingegeben hast nicht älter sein dürfen als das aus C und D.
=L20 > ($C20+$D20)
Wenn es unbedingt VBA sein muss, aus welchen Gründen auch immer kannst du folgenden Code in das entsprechende Sheet im VBA-Editor einfügen:
01.
Private Sub Worksheet_Change(ByVal Target As Range) 
02.
    On Error Resume Next 
03.
    ' Bereich der auf Änderungen überwacht werden soll 
04.
    Set changeRange = Range("L20:BX200") 
05.
    'Wenn die geänderte Zelle in den überwachten Bereich fällt... 
06.
    If Not Application.Intersect(changeRange, Target) Is Nothing Then 
07.
        ' Nur ausführen wenn Zelle einen Wert enthält 
08.
        If Target.Value <> "" Then 
09.
            'Datum aus Spalte C und D der jeweiligen Reihe in Variablen schreiben 
10.
            d1 = Cells(Target.Row, 3).Value2 
11.
            d2 = Cells(Target.Row, 4).Value2 
12.
            'Wenn die Eingabe in ein Datum konvertiert werden kann 
13.
            If IsDate(Target.Value) Then 
14.
                'Wenn eingetragener Wert kleiner als Datum aus Spalte C und D gebe Fehlermeldung aus 
15.
                If CDbl(Target.Value2) < (d1 + d2) Then 
16.
                    MsgBox "Das eingegebene Datum liegt in der Vergangenheit!", vbCritical, "Fehler" 
17.
                    'Setze Zellwert zurück 
18.
                    Target.Value = "" 
19.
                End If 
20.
            Else 
21.
                'Eingabe war kein Datum 
22.
                MsgBox "Der Eingabewert ist ungültig, es muss ein Datum eingeben werden", vbCritical, "Fehler" 
23.
                Target.Value = "" 
24.
            End If 
25.
        End If 
26.
    End If 
27.
End Sub
Kommentare im Code.

Grüße Uwe
Bitte warten ..
Mitglied: DockMaster-de
12.12.2013 um 20:15 Uhr
Vielen Dank an alle für die Vorschläge. Ich werde mich jetzt mal mit dem VBA-Code auseinander setzen.

Mit freundlichen Grüßen

DockM@ster
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Microsoft Office
gelöst Verschieben von Zellinformation in andere Spalte (per VBA) excel 2010 (5)

Frage von thomas1972 zum Thema Microsoft Office ...

VB for Applications
Mit Excel 2010 (VBA) eine Mail erzeugen und als Anlage einen Termin erstellen

Frage von Armin-K zum Thema VB for Applications ...

Microsoft Office
gelöst Excel-Formel oder VBA (7)

Frage von nicki01 zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel 2010 Zellen mit bestimmten Inhalt mit Makro formartierten (5)

Frage von packmann2016 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...