Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Friedrichroda /
Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.

Doppelte Eintragung
#1
Moin, moin
sicherlich ist meine Frage für euch ein klacks.
Mein Code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("B4") >= 2013 Then
Worksheets("Verlauf").Range("C10000").End(xlUp).Offset(1, 0) = Range("A4")
Worksheets("Verlauf").Range("a10000").End(xlUp).Offset(1, 0) = Range("B4")
Worksheets("Verlauf").Range("b10000").End(xlUp).Offset(1, 0) = "1"
End If
If Range("C4") >= 2013 Then
Worksheets("Verlauf").Range("C10000").End(xlUp).Offset(1, 0) = Range("A4")
Worksheets("Verlauf").Range("a10000").End(xlUp).Offset(1, 0) = Range("C4")
Worksheets("Verlauf").Range("b10000").End(xlUp).Offset(1, 0) = "1"
End If
End Sub

Meine Frage:
Trage ich in B4 ein Datum ein, werden die Daten in die nächste frei Spalte der Tabelle "Verlauf" eingetragen (läuft super).
Wird in C4 ein Datum eingetragen läuft auch alles korrekt nur wird leider auch nochmals die
Daten von B4 eingetragen. Somit habe ich einen doppelten Eintrag in der Tabelle "Verlauf".
"Wenn B4 ein Datum enthält, dann Befehl nicht ausführen".
(Gibt es einen angenehmeren Befehl für die Datum Abfrage)

Würde mich über eine Hilfestellung freuen.
to top
#2
Hallo,

Deinen Code kann man insgesamt so zusammenfassen:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Target, Range("B4,C4")) Is Nothing Then
      If Target >= 2013 Then
         Worksheets("Verlauf").Range("C10000").End(xlUp).Offset(1, 0) = Range("A4")
         Worksheets("Verlauf").Range("a10000").End(xlUp).Offset(1, 0) = Range("B4")
         Worksheets("Verlauf").Range("b10000").End(xlUp).Offset(1, 0) = "1"
      End If
   End If
End Sub
Gruß Atilla
to top
#3
Hi,

teste mal

statt mit Deiner Version
Code:
If Range("B4") >= 2013 Then

diese

Code:
If Range("B4") >= 2013 Or Range("C4") >= 2013 Then

Auf diesen Code-Teil
Code:
If Range("C4") >= 2013 Then
Worksheets("Verlauf").Range("C10000").End(xlUp).Offset(1, 0) = Range("A4")
Worksheets("Verlauf").Range("a10000").End(xlUp).Offset(1, 0) = Range("C4")
Worksheets("Verlauf").Range("b10000").End(xlUp).Offset(1, 0) = "1"
End If
solltest Du dann ganz verzichten können.

Allerdings ungetestet.

Gruß
Max
to top
#4
DANKE mit leichter Anpassung läuft alles super.
to top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste