Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1696to1700
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Copy/Paste ohne Formatierung
26.06.2019 10:03:48
Martin
Hallo zusammen,
ein Programm von mir wird auch von anderen Personen genutzt. Immer wieder stelle ich dabei fest, dass mittels Copy/Paste die Formatierungen der ungeschützten Zellen munter geändert werden.
Gibt es irgendeine Möglichkeit dies zu verhindern? Z.B. durch
- nur "nur Werte einfügen erlauben"
- keine Änderungen der Formatierung ungeschützter Zellen beim Einstellen des Blattschutzes zulassen
- ...
Vielen Dank und viele Grüße
Martin

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Copy/Paste ohne Formatierung
26.06.2019 10:34:55
ChrisL
Hi Martin
Was spricht dagegen das Blatt zu schützen (Option Zellen formatieren)?
cu
Chris
AW: Copy/Paste ohne Formatierung
26.06.2019 10:46:24
Martin
Das Blatt ist ja geschützt.
In dem Blatt gibt es ungeschützte Zellen, die verändert werden können. Diese habe ich mittels "Zelle formatieren" ... "Schutz" ... "Gesperrt deaktiviert" freigeschaltet.
Wenn man nun mittels Ctrl&C und Ctrl&V oder "Herunterziehen" diese Zellen kopiert, so werden auch die Formatierungen geändert. Das möchte ich gerne unterbinden.
AW: Copy/Paste ohne Formatierung
26.06.2019 11:38:48
ChrisL
Hi Martin
Stimmt. Das schützt nicht bei Copy/Paste.
Allenfalls kann man die ursprüngliche Formatierung permanent (bei jedem Change) mittels Code wieder herstellen, aber dies hat "Bastel-Charakter" und man müsste für die Codeerstellung die Formatierung kennen.
Persönlich würde ich da eher zwischen durch mal manuell die Formatierung wieder richten.
Will man dem Problem ernsthaft begegnen, dann würde ich mittels Userform die Datenbank/Tabelle füllen und gar keine direkte Bearbeitung in der Tabelle mehr zulassen.
cu
Chris
Anzeige
AW: Copy/Paste ohne Formatierung
26.06.2019 12:07:23
Daniel
och, das könnte schon per Code gehen, auch ohne direkte Kenntnis der ursprünglichen Formatierung.
der Ablauf im Change-Event-Makro müsste folgender sein:
1. Inhalte der geänderten Zellen in einer Variable zwischenspeichern
2. UNDO ausführen um die ursprüngliche Formatierung wieder herzustellen
3. Inhalte aus dem Array wieder in die Zellen zurückschreiben
das ganze wird etwas komplizierter, weil man berücksichtigen muss, dass der Anwender auch mehrere, nicht zusammenhängende Zellen gleichzeit ändern kann.
Code im Modul des tabellenblatts:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
Dim arrAdressen
Dim arrFormeln
Dim i As Long
ReDim arrAdressen(1 To Target.Cells.Count) As String
ReDim arrFormeln(1 To Target.Cells.Count) As String
For Each Zelle In Target.Cells
i = i + 1
arrAdressen(i) = Zelle.Address
arrFormeln(i) = Zelle.FormulaR1C1
Next
With Application
.EnableEvents = False
.Undo
For i = 1 To UBound(arrAdressen)
Range(arrAdressen(i)).FormulaR1C1 = arrFormeln(i)
Next
.EnableEvents = True
End With
End Sub
Gruß Daniel
Anzeige
AW: Copy/Paste ohne Formatierung
26.06.2019 12:36:15
Martin
Danke Euch beiden. Auf ein kompliziertes Change-Event wollte ich eigentlich verzichten. Daniels Idee ist super, aber genau das mit den mehreren Zellen bereitet mir da auch Kopfschmerzen. Auch das "Herunterziehen" würde wohl nicht funktionieren.
Echt schade, dass das nicht anders funktioniert...da müsste Microsoft mal ran ;-)
AW: Copy/Paste ohne Formatierung
26.06.2019 13:23:41
Daniel
Hi
mein Beispielcode ist schon für mehrere Zellen ausgelegt.
Gruß Daniel
AW: Copy/Paste ohne Formatierung
26.06.2019 14:00:17
ChrisL
Hi Daniel
Ich muss zugeben, es funktioniert besser als ich erwartet hätte. Spontan konnte ich nicht einmal einen Error provozieren :)
cu
Chris
AW: Copy/Paste ohne Formatierung
26.06.2019 14:21:30
Martin
Bei mir funktioniert es auch, allerdings benötigt die Prozedur in meinem Rechenblatt ca. 3 Sekunden...bei Euch auch?
Anzeige
AW: Copy/Paste ohne Formatierung
26.06.2019 15:02:24
Daniel
nun gut, kommt halt noch darauf an, was du sonst noch so in dem Blatt machst.
es werden halt die Eingaben erstmal rückgängig gemacht und dann die Werte einzeln nochmal eingegeben.
wenn du jetzt noch komplexe Berchnungen hast, die von den geänderten Zellen abhängen, werden diese jedesmal neu angestoßen.
Optimieren kann man min Makro noch an zwei stellen:
1. neben den Events auch auch noch die automatische Neuberechnung ausschalten
2. die Formeln nicht für jede Zelle einzeln, sondern für jeden Zellblock speichern (Areas)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
Dim arrAdressen
Dim arrFormeln
Dim i As Long
Dim AktZelle As Range
Dim Calc As Long
ReDim arrAdressen(1 To Target.Areas.Count) As String
ReDim arrFormeln(1 To Target.Areas.Count) As Variant
Set AktZelle = ActiveCell
For Each Zelle In Intersect(Target, Target.Worksheet.UsedRange).Areas
i = i + 1
arrAdressen(i) = Zelle.Address
arrFormeln(i) = Zelle.FormulaR1C1
Next
With Application
.EnableEvents = False
Calc = .Calculation
.Calculation = xlCalculationManual
.Undo
For i = 1 To UBound(arrAdressen)
Range(arrAdressen(i)).FormulaR1C1 = arrFormeln(i)
Next
.Calculation = Calc
.EnableEvents = True
End With
AktZelle.Activate
End Sub
Gruß Daniel
Anzeige
AW: Copy/Paste ohne Formatierung
26.06.2019 16:06:59
Martin
Habe es probiert, dauert aber immer noch genau so lange. Das muss ich mir mal genauer angucken. Wie Du sagst, wird es wohl an dem Blatt selber bzw. an anderen Rechnungen liegen. In jeden Fall nochmal Danke!
AW: Copy/Paste ohne Formatierung
26.06.2019 20:03:04
ChrisL
Hi Martin
Bei mir ging es schnell, aber ich habe auch nur wenige Zellen in einer leeren Dummydatei kopiert.
Evtl. eine Alternative: "intelligente Tabelle"
cu
Chris

105 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige