Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

mal ne Frage ob dieses Makro auch mit verschiedenen Zellbereichen funktioniert
#1
Zellbereiche wären B3:B50 und J16:N32

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
Antworten Top
#2
die beliebteste Fehlerbeschreibung in Foren: " ging nicht ...." 

ein Arbeitsblatt hat immer einen Namen.  case "" ist also Quatsch. 
 
Case "Namen"
      Set rngSpalten = Sh.Range("B3:B50")
    Case Else
      Set rngSpalten = Sh.Range("J16:N32")
  End Select
[-] Folgende(r) 1 Nutzer sagt Danke an ralf_b für diesen Beitrag:
  • kingkong
Antworten Top
#3
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
Antworten Top
#4
mangels Beispieldatei muß ich dir wohl glauben. Der Code scheint so ok zu sein.
Antworten Top
#5
hier die Datei


Angehängte Dateien
.xlsm   Mappe1.xlsm (Größe: 36,38 KB / Downloads: 9)
Antworten Top
#6
ok , dann fang ich mal an.

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.
Antworten Top
#7
Die Zahlen möchte ich per Klick nach G3 kopieren. 

Das Datum möchte ich auch per Klick nach L12 oder L14 kopieren.

Gerechnet wird mit dieser Tabelle nicht.

Gruß kingkong
[-] Folgende(r) 1 Nutzer sagt Danke an kingkong für diesen Beitrag:
  • Rudi'S
Antworten Top
#8
Hallo,

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.

Gruß Rudi
Antworten Top
#9
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.

Gruß Rudi


Angehängte Dateien
.xlsm   Urlaub übernehmen.xlsm (Größe: 42,82 KB / Downloads: 2)
Antworten Top
#10
Auch sehr gute Idee von dir für die ich mich vielmals bedanke!!!
Antworten Top


Gehe zu:


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