Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1724to1728
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
Inhaltsverzeichnis

VBA immer special Paste

VBA immer special Paste
03.12.2019 10:53:14
MISTERWENN
Hallo,
Bei uns im Unternehmen nutzen wir ein Excel File, welches ausgefüllt und an eine Abteilung gesandt werden soll.
Allerdings wird fast schon Grundsätzlich und mit Vorsatz, diese Vorlage durch Formatierungen so verunstaltet, dass dann sogar oftmals meine Makros nicht mehr greifen und in einem Error enden oder einfach unlesbar ist was da stehen soll. (verbundene Zellen, Wahllos eingefügte und sinnlose Zeilen sowie Spalten, Schriftgrößen im Bereich von 1, etc., löschen von ganzen Tabellenblättern weil das Blatt "hilfstabelle" oder "Adressen" demjenigen sinnlos erscheint, und man sich dann wundert warum man auf einmal nicht mehr aus den 500 - 1000 gespeicherten Adressen wählen kann.... ).
Diese Datei wird durch ein Makro in eine andere eingelesen und dann dort weiterverarbeitet zu 99% komplett automatisiert. Daher sollten die Ausgangsdaten auch an der richtigen Stelle stehen :D
Lösungsansätze welche ich vollzog:
Blattschutz um die meisten Formatierungsmöglichkeiten zu nehmen. Hierbei nur noch die wichtigen Felder offen lassen.
Somit wäre das händische mit Gewalt kaputt formatieren erschlagen.
Verstecken von Blättern auf denen der User nix zu suchen hat.
allerdings kann man immer noch in die nicht gesperrten Zellen kopieren, was auch möglich sein soll. Es soll nur die Formatierung erhalten bleiben. daher meine Frage:
Gibt es eine möglichkeit, jedesmal wenn ein User etwas irgendwie auf egal welche einfügt, mit PasteSpecial xlPasteValues einfügen zu lassen?

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA immer special Paste
03.12.2019 11:03:22
Daniel
Hi - so eine Möglichkeit kenne ich nicht.
Du könntest allerdings mal versuchen, mit einem Change Event alle Änderungen abzufangen und nach jeder Eingabe automatisch die gewünschte Formatierung wieder herzustellen. Ergibt allerdings nur wirklich Sinn, wenn alle veränderbaren Zellen die gleiche Formatierung haben, ansonsten wird's sehr fummelig.
Gruß
Daniel
Anzeige
AW: VBA immer special Paste
03.12.2019 12:36:24
MISTERWENN
Leider haben die Zellen oftmals nicht die selbe Formatierung.
und ja da es ca. zu 10 verschiedene Formatierungen auf ca 100 Zellen sind, wird das sehr sehr friemelig....
AW: VBA immer special Paste
03.12.2019 11:10:23
UweD
Hallo
eventuell das changeevent benutzen und jede Zelle durch den Wert ersetzen
- Rechtsclick auf den Tabelenblattreiter
- Code anzeigen
- diesen Code einfügen

Private Sub Worksheet_Change(ByVal Target As Range)
Const APPNAME = "Worksheet_Change"
Dim Zelle
On Error GoTo Fehler
For Each Zelle In Target
If Not Zelle.Locked Then
Application.EnableEvents = False
Zelle.Value = Zelle.Value
End If
Next
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number  0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
& "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub

LG UweD
Anzeige
AW: VBA immer special Paste
03.12.2019 12:15:57
MISTERWENN
Hallo,
leider bewirkt das nur, dass nach dem einfügen der Wert nochmals eingefügt wird, verhindert allerdings nicht das formatieren.
AW: VBA immer special Paste
03.12.2019 14:22:54
UweD
Hallo nochmal
Durch das Copieren wird die Formatierung ja mit übernommen.
Dann wie in meinem Post die Formeln eliminieren...
Darf denn nach erfolgtem Einfügen in die "offenen" Zellen diese Zelle dann auch gesperrt werden?
Das könnte ja im Anschluss noch per Code geschehen
Übrigens kannst du Blätter komplett ausblenden ( per VBA )
Sheets("Tabelle1").Visible = xlSheetVeryHidden
LG UweD
AW: VBA immer special Paste
03.12.2019 15:31:20
MISTERWENN
Hallo,
es geht darum, dass die Formatierung erhalten bleibt. Mit dem genannten Code wird die Formatierung allerdings geändert. Genau das versuche ich zu verhindern.
Also bleibt mir wohl nur die Möglichkeit die Zellen per VBA neu zu formatieren schätze ich?
Anzeige
AW: VBA immer special Paste
03.12.2019 15:40:31
Daniel
Noch ein Ansatz:
Fange mit SelectionChange ab, welche Zelle zum Verändern ausgewählt wurde und speichere die Formatierungen der Zelle in globalen Variablen. Die kannst du dann verwenden, um in dem Change Event die alte Formatierung wieder herzustellen, ohne jede Zelle einzeln zu definieren.
Gruß
Daniel
AW: VBA immer special Paste
04.12.2019 15:41:24
MISTERWENN
Hallo Daniel,
vielen Dank schonmal für den sehr interessanten Lösungsansatz.
Da oftmals mehrere Zeilen auf einmal kopiert werden (hierbei kommt auch das Problem mit den verbundenen Zellen dann zustande,hierzu eine Frage:
Ist es möglich jede Formatierung in einer Range Selection abzufangen, da oftmals wirklich einfach wild da rein gekleistert wird.....?
Anzeige
AW: VBA immer special Paste
04.12.2019 16:00:51
Daniel
Wird langsam schwierig nachzuvollziehen, wie deine Tabelle aussieht und was alles berücksichtigt werden muss.
Du kannst versuchen, die ausgewählte Range zu kopieren und im Change Event mit PasteSpecial nur die Formate wieder einzufügen. Kann dir aber leider nicht sicher sagen, ob und wie das klappt.
AW: VBA immer special Paste
03.12.2019 15:41:19
UweD
Dann kann es sich nur um Bedingte Formatierung handeln
AW: VBA immer special Paste
04.12.2019 15:44:17
MISTERWENN
NACHDEM DIE ZELLE VERÄNDERT WURDE
für jede Zelle der Auswahl
wenn nicht gesperrt
trage die value der Zelle in die Zelle ein
Hierbei wird keinerlei Formatierung ausgeschlossen.
es wird lediglich danach nochmal der wert rein kopiert.
Hast du für den Code denn ein erfolgreiches Beispiel?
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige