Zeilen automatische einfügen

Hallo,

ich habe eine Tabelle, in der ersten Spalte steht ein Datum. Pro Tag können in der Zeile weitere Daten stehen. Wenn Einträge für den nächsten Tag gemacht werden möchte ich zur besseren lesbarkeit eine Leerzeile AUTOMATISCH einfügen. Wie geht das?

Sieht also ungefähr so aus:

A
01.07.10
01.07.10
01.07.10

02.07.10
02.07.10

03.07.10

Vorab Danke für die Hilfen!!

Gruß,

Klaus

Wenn Einträge für den nächsten Tag gemacht werden möchte ich zur
besseren lesbarkeit eine Leerzeile AUTOMATISCH einfügen. Wie
geht das?
A
01.07.10
01.07.10
01.07.10

02.07.10
02.07.10

Hallo Klaus,

rechtsklick unten auf den Blattnamen, „Code anzeigen“, nachstehen Vba-Code reinkopieren, VB-Editor schließen.

Option Explicit
'
Private Sub Worksheet\_Change(ByVal Target As Range)
If Intersect(Target, Columns(1)) Is Nothing Then Exit Sub
If Target.Row = 1 Then Exit Sub
If Target.Value = Target.Offset(-1, 0).Value Then Target.Insert
End Sub

Gruß
Reinhard

Hallo Reinhard,

Danke für die schnelle Antwort! Wenn ich das so mache kommt nach der Eingabe eines neuen Datums die Fehlermeldung „Fehler beim kompilieren, erwartet Zeilennummer oder Sprungmarke oder Anweisung oder Anweisungsende“. Fehlt da syntaktisch noch was?

Gruß,

Klaus

Danke für die schnelle Antwort! Wenn ich das so mache kommt
nach der Eingabe eines neuen Datums die Fehlermeldung „Fehler
beim kompilieren, erwartet Zeilennummer oder Sprungmarke oder
Anweisung oder Anweisungsende“. Fehlt da syntaktisch noch was?

Hallo Klaus,

ich hatte es getestet. Ich gehe von einem Fehler beim reinkopieren aus.

Gruß
Reinhard

Hallo Reinhard,

tja, das Problem sitzt immer VOR dem Bildschirm… In der Tat, beim ersten kopieren sind mir oben und unten zwei HTML-Tags (

) reingekommen, die sind wohl nur im Editor-Fenster hier bei www zu sehen. Nehme ich die weg, klappt es - zumindest wird eine Leerzeile eingefügt. Aber leider an der falschen Stelle. Ich möchte eine zwischen zwei unterschiedlichen Datümern haben. Die gleichen sollen "an einem Stück" stehen, so wie in meinem Beispiel. Wenn du nochmal einen Blick riskieren könntest... Danke nochmal.

Gruß,

Klaus

Hallo Klaus,

tja, das Problem sitzt immer VOR dem Bildschirm… In der Tat,

ich muß auch sagen, in der Tat :smile:
Ich hab da einen Logikfehler gemacht.

So müßte es klappen.
Der Code reagiert erst ab Zeile 3. (If Target.Row Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Columns(1)) Is Nothing Then Exit Sub
If Target.Row Target.Offset(-1, 0).Value Then Target.Insert
End Sub

Gruß
Reinhard

Hallo Reinhard,

die Lösung ist wieder ein Stück näher gerückt, ein erneutes DANKESCHÖN. Allerdings mit dem Schönheitsfehler, dass nach der Eingabe eines neuen Datums davor nicht eine, sondern tatsächlich 91 (!) Leerzeilen eingefügt werden. Zur Sicherheit nochmal der Code wie ich ihn in meiner Datei stehen habe (sieht aber aus wie dein Original):

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Columns(1)) Is Nothing Then Exit Sub
If Target.Row Target.Offset(-1, 0).Value Then Target.Insert
End Sub

Vielleicht hilft der Hinweis, dass ich Excel 2007 nutze.

Gruß aus Westfalen,

Klaus