Versuch bis jetzt war das Spalten in Cells zu ändern ging aber nicht wirklich
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Dim rngSpalten As Range Select Case Sh.Name Case "Namen" Set rngSpalten = Sh.Columns("B") Case "" Set rngSpalten = Sh.Columns("I") End Select If Not rngSpalten Is Nothing Then If Not Intersect(Target, rngSpalten) Is Nothing Then Target.Copy Else If Not Target Is Nothing Then If Application.CutCopyMode = xlCopy Then Target.PasteSpecial xlPasteValues, xlPasteSpecialOperationNone End If Application.CutCopyMode = False End If End If End If End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Dim rngSpalten As Range Select Case Sh.Name Case "Namen" Set rngSpalten = Sh.Range("B3:B50") Case Else Set rngSpalten = Sh.Range("J16:N32") End Select If Not rngSpalten Is Nothing Then If Not Intersect(Target, rngSpalten) Is Nothing Then Target.Copy Else If Not Target Is Nothing Then If Application.CutCopyMode = xlCopy Then Target.PasteSpecial xlPasteValues, xlPasteSpecialOperationNone End If Application.CutCopyMode = False End If End If End If End Sub
das funktioniert leider nur im Auswahlbereich B im zweiten leider nicht
in deiner Datei ist ein Blatt drin. Der Code soll aber zwischen mehreren Blättern unterscheiden mit select case Also da stimmt schon mal was nicht.
Dann hast du in dem einen Blatt die beiden Bereiche. Aber nur in einem Bereich sind Formeln. Ich gehe davon aus das du eigentlich mit dem Code die Formeln in Werte ändern willst. Stimmt das? Wenn ja, warum soll der im ersten Bereich mit den Namen arbeiten? Dort sind keine Formeln.
für den ersten Part kann ich dir diese Lösung anbieten:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Row > 7 Then If Target.Column = 2 Then If Not IsEmpty(Target.Value) Then _ Cells(3, 7).Value = Target.Value Cancel = True End If End If End Sub
Dieses Makro schreibst du in das Tabellenblatt womit du arbeitest. Rechte Maustaste Reiter anklicken und unter 'Code anzeigen' trägst du dieses Makro ein. Und zurück zum Tabellenblatt Nach Doppelklick auf einen Wert in Spalte B wird dieser nach G3 übertragen.
Die Eingabe von Urlaubsbeginn bis -ende trägst du schneller von Hand in die ZellenL12 / L14 ein.
20.06.2022, 17:25 (Dieser Beitrag wurde zuletzt bearbeitet: 20.06.2022, 17:29 von Rudi'S.)
Hallo,
ich habe das Makro mal etwas erweitert.
Mit einem Doppelklick in einer Zelle in Spalte B wird die Nummer übertragen (nach G3). Jetzt wählst du im Bereich der möglichen Urlaubsdaten den 1. Urlaubstag aus und übernimmst wieder mit Doppelklick diesen in die Zelle L12. Den Tag des Urlaubsendes übernimmst du für die Zelle L14 mit Rechtsklick auf dieses Datum.