Immer nur Werte einfügen beim "Ziehen"
#1
Hallo zusammen,

ich habe vor einiger zeit angefangen mir ein Dispositionstool mit kleinen VBA basierten Hilfen zu basteln, hier kommen mir immer wieder Verbesserungsideen die ich dann versuche so gut es geht mit Youtube oder eben dem Forum hier einzuarbeiten, bis jetzt habe ich hier auch immer Kompetente Hilfe bekommen :) hoffe es ist auch heute so Big Grin .

Also in dem Tool wo die Stammdaten für die Jahresplanung hinterlegt sind sind die Monate farblich unterschiedlich um eine sauberere Übersicht zu schaffen.
Nun meldet sich Mitarbeiter X vom 28.01 - 05.02 Krank...was passiert? der Disponennt schreibt am 28.01 ein K rein zieht den ganzen kram rüber und schon habe ich in meinem Grünen Februar ein stück blauen Streifen vom Januar...
Das Kann ich nicht mehr mit ansehen Big Grin .

Also ich hätte gerne das man nur auf diesem Arbeitsblatt beim rüber ziehen immer nur werte einfügt und die Formatierungen nicht ändert.

Ist sowas möglich?

Vielen Dank schonmal für euren Einsatz.

LG Seeqi
Antworten Top
#2
Hi,

ich würde die grafische Darstellung von der Speicherung trennen. Dann wird nichts mehr gezogen, sondern ein Datensatz mit den Feldern Mitarbeiter, Abwesenheitsgrund, von und bis erzeugt. Die Daten werden dann nur noch im Kalender zu einem K interpretiert und schick dargestellt.

Viele Grüße
derHöpp
Antworten Top
#3
Hallo

Allgemein für das ganze Blatt z.B. so. Solltest du evtl. auf den Eingabebereich begrenzen.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Werte, Ad As String
Application.EnableEvents = False

Ad = Target.Address
Werte = Target.Value
Application.Undo
Range(Ad).Value = Werte

Application.EnableEvents = True
End Sub
Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Seeqi
Antworten Top
#4
Super, der Code klappt genau so wie ich das gewünscht habe, vielen Dank :)
Antworten Top
#5
@Elex:
Mal ganz doof gefragt: wieso brauchst du die Variable Ad? Würde hier nicht folgendes reichen?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Werte
Application.EnableEvents = False

Werte = Target
Application.Undo
Target = Werte

Application.EnableEvents = True
End Sub
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#6
Hi

Zitat:Mal ganz doof gefragt: wieso brauchst du die Variable Ad? Würde hier nicht folgendes reichen?
Gar nicht. 19 

Schnell fertig war die Idee dahinter. Dabei wurde nicht lange darüber nach gedacht das Undo ja nur die Selection ändert, sich dass aber nicht auf Target auswirkt.
Antworten Top


Gehe zu:


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