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 
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