zunächst mal vielen Dank an alle, die hier helfen Probleme zu beheben. Ich hatte ja Probleme mit unten aufgeführtem Sub. Damit andere die vielleicht die gleichen Probleme haben, hier die Auflösung:
1. Sub soll nur eine Spalte ansprechen, aber das funktioniert nicht. (If Target.Column = 20 Then )
2. Warum kann ich plötzlich den Text von anderen Zellen nicht mehr bearbeiten
zu 1.)
Ich habe den Sub in meine Mappe kopiert, die Spalte F angeklickt und bin wunderbar auf mein Worksheet (Rechnung-gross) gekommen. Doppelklick auf eine andere Spalte. Auch auf das Worksheet gesprungen, obwohl das ja nicht so sein soll!! Ich habe natürlich immer gesperrte Spalten ausgewählt, weil ich wusste, dass ich da durch "wildes" Rumgeklicke nichts falsch machen kann. Das genau da das Problem lag, habe ich nur durch Zufall bemerkt. Denn wenn ich aber auf solch eine gesperrte Zelle klicke, bleibt ja weiterhin eine Zelle in Spalte F angeklickt, weil ich das ja zuerst versucht hatte. Durch betätigen des Doppelklick wird nun wieder diese angeklickte Zelle in Spalte F angesprochen und dadurch dachte ich immer, dass der Doppelklick überall funktioniert und nicht nur in der gewünschten Spalte.
zu 2.)
Durch diese Zeile (Cancel = True) wird der Doppelklick zum Bearbeiten einer Zelle ausser Kraft gesetzt. Möchte man also weiterhin Zellen mit Doppelklick bearbeiten, dann muss man das ändern (Cancel = False)
Als VBA-Profi weis man solche Dinge natürlich aus dem FF. Jemand der sich nicht so gut auskennt, der kann sich nicht erklären, woher die Probleme kommen, obwohl der Code doch in Ordnung ist. Dies einfach nur als Hilfe für andere Nicht-Profis wie mich.
Hoffe, ich habe mich einigermaßen verständlich ausgedrückt und kann so in Zukunft anderen mit meinen Fehlern helfen.
Grüße
Sonja
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
Cancel = True
If Cells(.Row, 20) "" Then
MsgBox "Für diese Buchung existiert bereits eine Rechnung. Neue Rechnung nicht möglich!" _
Else
If Target.Column = 20 Then
Worksheets("Rechnung-gross").Range("A3").Value = .Row
Worksheets("Rechnung-gross").Activate
End If
End If
End With
End Sub