Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1552to1556
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datenbank mit Hinzufügung von Datum/Zeit

Datenbank mit Hinzufügung von Datum/Zeit
27.04.2017 21:56:39
Datum/Zeit
Hallo zusammen,
zurzeit versuche ich eine Datenbank zu erstellen mit folgenden Funktionen:
1.) 4 Spalten (Wert 1, Wert 2, Datum und Zeit)
2.) Nach Eingabe eines Wertes in die erste Zeile von Spalte(Wert 1) und Bestätigung mit Enter, springt die aktive Zelle automatisch in die erste Zeile von Spalte(Wert 2). Wenn in die ersten Zeilen der Spalte(Wert 1) und Spalte(Wert 2) ausgefüllt sind, dann wird automatisch das aktuelle Datum und die aktuelle Zeit in die erste Zeile Spalte(Datum) und Spalte(Zeit) hinzugefügt. Anschließend springt die aktive Zelle in die zweite Zeile von Spalte(Wert 1). Und die Schleife beginnt von vorne.....
3.) In der Spalten(Wert 1) und Spalte(Wert 2) werden nur Werte akzeptiert, die mit A bzw. mit B beginnen. Wenn diese nicht mit dem geforderten Buchstaben beginnen, dann erscheint eine Fehlermeldung.
4.) Bei starten der Excel-Datei, soll die aktive Zelle automatisch in die aktuellste Zelle springen.
Folgendes habe ich selbst programmiert:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Bei laufendem Programm in die richtige Zelle springen On Error GoTo ErrorHandler
Dim counter_Wert1 As Integer
Dim counter_Wert2 As Integer
Dim counter_Datum As Integer
Dim counter_Zeit As Integer
counter_Wert1 = 1
counter_Wert2 = 1
counter_Datum = 1
counter_Zeit = 1
While Not IsEmpty(Cells(counter_Wert1, 1))
counter_Wert1 = counter_Wert1 + 1
Wend
While Not IsEmpty(Cells(counter_Wert2, 2))
counter_Wert2 = counter_Wert2 + 1
Wend
While Not IsEmpty(Cells(counter_Datum, 3))
counter_Datum = counter_Datum + 1
Wend
While Not IsEmpty(Cells(counter_Zeit, 4))
counter_Zeit = counter_Zeit + 1
Wend
If counter_Wert1 = counter_Wert2 Then
Cells(counter_Wert1, 1).Select
Else
Cells(counter_Wert2, 2).Select
End If
ErrorHandler:
Exit Sub
End Sub
Private Sub Worksheet_Activate()

Bei Neustart des Programmes in die richtige Zelle springen
On Error GoTo ErrorHandler
Dim counter_Wert1 As Integer
Dim counter_Wert2 As Integer
Dim counter_Datum As Integer
Dim counter_Zeit As Integer
counter_Wert1 = 1
counter_Wert2 = 1
counter_Datum = 1
counter_Zeit = 1
While Not IsEmpty(Cells(counter_Wert1, 1))
counter_Wert1 = counter_Wert1 + 1
Wend
While Not IsEmpty(Cells(counter_Wert2, 2))
counter_Wert2 = counter_Wert2 + 1
Wend
While Not IsEmpty(Cells(counter_Datum, 3))
counter_Datum = counter_Datum + 1
Wend
While Not IsEmpty(Cells(counter_Zeit, 4))
counter_Zeit = counter_Zeit + 1
Wend
If counter_Wert1 = counter_Wert2 Then
Cells(counter_Wert1, 1).Select
Else
Cells(counter_Wert2, 2).Select
End If
ErrorHandler:
Exit Sub
End Sub
Was mir jetzt noch fehlt ist, dass ich beim richtigen Eintragen in die Zeilen von Spalte(Wert 1) und Spalte(Wert 1) das Datum und die Zeit eingetragen wird in die gleiche Zeile eingetragen wird.
Ich denke, dass ich dafür Private Sub Worksheet_Change(ByVal Target As Range) verwenden muss. Wie kann ich programmieren, dass ein Makro ausgeführt wird, wenn eine bestimmte Zelle (die Zelle ändert sich ständig) verändert wird?
Ich hoffe ihr könnt mir ein bisschen helfen
Herzlichen Dank schon mal
Max

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Beispieldatei Bitt
27.04.2017 23:56:29
Max2
Hallo,
bitte eine Beispieldatei hochladen, man kann zwar einen Code schreiben
aber diesen nicht testen und eine Datei nachbauen will niemand.
Warum schreibst du die Werte nicht in ein Array?
Du kannst das ganze, wenn ich es richtig sehe, auch einfach
in einer Schleife durchlaufen lassen statt in 4 While-Wend Schleifen
Der folgende Code ist nicht getestet und dient nur als Beispiel:
Dim arrDaten(3)
Dim i As Long, j As Long
Dim arrDaten(3)
j = 1
Do
While Cells(arrDaten(i) + 1, j).Value  ""
arrDaten(i) = arrDaten(i) + 1
Wend
j = j + 1
Loop Until j > 4 

Anzeige
AW: Beispieldatei Bitt
28.04.2017 07:57:03
Hajo_Zi
Hallo Max,
dem mit dem Nachbauen kann man nur zustimmen.

AW: Datenbank mit Hinzufügung von Datum/Zeit
29.04.2017 11:31:29
Datum/Zeit
Hallo Maximilian,
z.B. so:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 2 Then Exit Sub
If WorksheetFunction.CountA(Range(Cells(Target.Row, 1), Cells(Target.Row, 2))) = 2 Then
Cells(Target.Row, 3) = Date
Cells(Target.Row, 4) = Format(Time, "HH:MM:SS")
End If
End Sub
Mal ne Frage am Rande: Was machst du denn, wenn du (oder sonst wer) sich bei der Dateneingabe vertippst? Löschen der Fehleingabe ist bei deinem Code nicht mehr möglich.
Gruß Werner
Anzeige
AW: Datenbank mit Hinzufügung von Datum/Zeit
29.04.2017 12:47:16
Datum/Zeit
Hallo Werner,
das Makro kann man ja immer noch pausieren. So hab ich mir das vorgestellt. Ist jetzt nicht die eleganteste Methode aber, aber es funktioniert.
Wert1 beginnt immer mit dem Buchstaben A und Wert2 beginnt immer mit dem Buchstaben B. Es kann halt passieren, dass ich bei Wert1 etwas eintrage was mit B beginnt. Für diesen Fall will ich auch eine Abfrage einbauen, ob das eingetragene bei Wert1 auch mit dem Buchstaben A beginnt.
Bedeutet?
29.04.2017 13:40:29
Werner
Hallo Maximilian,
Funktioniert es jetzt wie du wolltest?
Gruß Werner
AW: Bedeutet?
30.04.2017 16:21:49
Maximilian
Hallo Werner,
ja funktionier perfekt.
Vielen Dank für deine Hilfe. Es ist echt toll wie man die Funktionen von Excel durch VBA erweitern kann.
Gruß
Max
Anzeige
Danke für die Rückmeldung.... aber
30.04.2017 23:45:51
Werner
Hallo Maximilian,
...noch eine Frage. Die Prüfung ob Wert1 mit einem A und Wert2 mit einem B beginnt hast du? Das ließe sich mit einer Gültigkeitsprüfung realisieren.
Gruß Werner
AW: Danke für die Rückmeldung.... aber
01.05.2017 13:57:03
Maximilian
Hallo Werner,
ja das scheint so weit zu funktionieren. Ich nutzte dazu den Befehl: InStr
Wenn an erster Stelle im String beispielsweise ein A vorkommt, dann wird eine 1 zurückgegeben.
In einer Wenn-Funktion nutzte ich dies, dann um die aktive Zelle zu verschieben oder auch nicht zu verschieben + Fehlermeldung auszugeben.
Gruß
Max
AW: mit Gültigkeitsprüfung
01.05.2017 14:24:40
Werner
Hallo Maximilian,
ich habe ja keine Ahnung was du letztlich machen willst. Aber mit einer entsprechenden Gültigkeitsprüfung für die Spalten Wert1 und Wert2 könntest du verhindern, dass Werte eingegeben werden, die nicht mit A bzw. mit B beginnen.
Spalte für Wert1 markieren
Daten-Datenüberprüfung-Benutzerdefiniert
folgende Formel:=LINKS(A1;1)="A"
unter Fehlermeldung eine entsprechende Fehlermeldung eingeben
So wird verhindert, dass Werte die nicht mit einem A beginnen überhaupt eingegeben werden können.
Gruß Werner
Anzeige
geht kürzer ;-)
01.05.2017 19:00:06
Matthias
Hallo Werner
Wenn man nur das 1.Zeichen prüfen will braucht man die Länge nicht mit angeben
Tabelle1

 EF
5Aha!A
6Aha!A

Formeln der Tabelle
ZelleFormel
F5=LINKS(E5)
F6=LINKS(E6;1)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Gruß Matthias
Anzeige
AW: Merci o.w.T
02.05.2017 07:01:34
Werner
AW: geht kürzer ;-)
06.05.2017 22:03:47
Maximilian
Hallo Werner,
danke für die Info,
ich werde das gleich mal ausprobieren
Gruß
Max

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige