Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1660to1664
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
VBA: ohne Formatierungen & Formeln einfügen
12.12.2018 01:58:03
Mathilda
Liebe Forengemeinde,
leider habe ich keinerlei Kenntnisse im Bereich VBA, aber meine Recherchen im Internet haben ergeben, dass meine gewünschte Anpassung (vermutlich) nicht mit Bordmitteln von Excel vorgenommen werden kann. Folgendes Szenario möchte ich euch kurz schildern:
Ich habe mehrere Exceldateien, zum einen pro Jahr jeweils eine "Kundendatei" und zum anderen die "ehemaligen Kunden". In allen Dateien ist jeweils ein Bereich als Tabelle (früher Liste) formatiert, worin die personenbezogenen Daten etc. erfasst werden. Die Tabellenspalten sind in allen Dateien identisch. Zur visuellen Unterstützung sind die Tabellen unterschiedlich formatiert (Schriftart, Schriftgröße, Farbe usw.). Auch bedingte Formatierungen sind in den "Kundendateien" enthalten. Es arbeiten mehrere Mitarbeiter daran, wobei die Excelkenntnisse sehr unterschiedlich sind. Verschiedene Einfügeoptionen (z. B. nur Werte) sind oftmals nicht bekannt oder werden wieder vergessen.
Ich möchte nun in der Datei der "ehemaligen Kunden" erreichen, dass bei kopierten Zeilen (einzeln oder mehrere) aus den "Kundendateien" mit allen Einfügevarianten (Strg C + Strg V; Rechtsklick; Menüleiste) "nur Werte" eingefügt werden können, d. h. die Zielformatierung bleibt erhalten, auch wenn dies beim Einfügen nicht explizit ausgewählt wurde, Formeln werden in Werte umgewandelt und bedingte Formatierungen nicht übernommen. Mit dem Blattschutz ist das leider nicht zu bewerkstelligen, da hier nur Formate geschützt werden können, wenn die Änderungen direkt im Arbeitsblatt vorgenommen werden.
Ich würde mich sehr freuen, wenn mir jemand helfen kann und möchte.
Beste Grüße, Mathilda

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Crosspost ohne Hinweis
12.12.2018 10:19:43
Mathilda
Hallo Werner,
ich weiß nicht, was so verwerflich daran ist, die Chancen für eine Lösung zu erhöhen. Muss man deshalb direkt kontrolliert und angezählt werden? Schade. Warum Papierkorb? Geistiger Austausch ist im digitalen Zeitalter an mehreren Orten gleichzeitig möglich.
Viele Grüße, Mathilda
Anzeige
AW: Crosspost ohne Hinweis
12.12.2018 10:40:35
Torsten
Ja Mathilda, das ist wohl richtig. Aber wenn du in verschiedenen Foren gleichzeitig postest, dann arbeiten vielleicht mehrere Leute gleichzeitig an einer Loesung fuer dich. Somit bemuehen sich vielleicht die anderen umsonst, weil die Loesung schon da ist im anderen Forum und sie wissens garnicht. Deshalb sollte man in jedem Forum darauf hinweisen, dass man in anderen Foren das gleiche Problem gepostet hat.
Das hat nichts mit anzaehlen oder kontrollieren zu tun, das ist nur der Hinweis darauf.
AW: Crosspost ohne Hinweis
12.12.2018 12:24:12
Mathilda
Hallo Torsten,
danke für deine Erläuterungen; ich kann deinen Standpunkt gut nachvollziehen. Für mich wäre es selbstverständlich gewesen, das andere Team an der eventuellen Lösung teilhaben zu lassen. Aber ja, mir kann niemand in den Kopf gucken. So etwas lässt sich jedoch schnell aus der Welt schaffen, wenn man mit einander redet. Menschliches Handeln hat unendlich viele Variablen. Ich z. B. bin üblicherweise nicht in Foren unterwegs und wusste nicht, dass „Crossposting“ verpönt ist. Hinweise nehme ich gern an, der Mensch lernt nie aus. Aber letztlich macht der Ton die Musik. Werner hat mit seinem Handeln weit übers Ziel hinaus geschossen. Sein „Hinweis“ in beiden Foren hat nun jede Chance auf Hilfestellung zunichte gemacht. Das ist doch nicht konstruktiv. Muss ich befürchten, dass er dies auch tun wird, wenn ich jetzt ein weiteres Team um Hilfe bitte? Ich habe mir wirklich Mühe mit meinem Beitrag gegeben, auch das kostest Zeit. Eine Lösung hätte nicht nur mir geholfen, sondern jedem, der künftig auf den Beitrag im Rahmen seiner Recherche gestoßen wäre.
Danke für deine Bemühungen zu vermitteln.
Viele Grüße, Mathilda
Anzeige
AW: Crosspost ohne Hinweis
12.12.2018 21:22:24
Dieter
Hallo Mathilda,
Crosspost hin oder her, du willst ja wahrscheinlich weiterkommen.
Ich schlage mal als Versuch das folgende Programm vor (bitte sorgfältig testen)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Feld As Variant
Feld = Target
Application.EnableEvents = False
Application.Undo
Target = Feld
Application.EnableEvents = True
End Sub

Du musst das Programm in den Code-Modul desjenigen Tabellenblattes einfügen, in welchem die Einfügungen stattfinden.
In diesen Code-Modul gelangst du, wenn du einen Rechtsklick auf das Blattregister machst und dann aus dem Kontextmenü den Eintrag "Code anzeigen" auswählst.
Viele Grüße
Dieter
https://www.herber.de/bbs/user/126057.xlsm
Anzeige
AW: Crosspost ohne Hinweis
12.12.2018 21:37:27
Mathilda
Hallo Dieter,
vielen Dank für die Mühe. Ich werde deinen Code morgen am Arbeitsplatz testen. Hier im Home Office nutze ich eine andere Excelversion. Ich melde mich danach nochmal hier. Ich wünsche einen angenehmen Abend!
Viele Grüße, Mathilda
AW: Crosspost nicht offen
13.12.2018 16:52:32
Hajo_Zi
AW: Crosspost ohne Hinweis
13.12.2018 18:12:22
Mathilda
Hallo Dieter,
ich habe deinen Code nun ausgiebig testen können. Zunächst einmal zu den sehr erfreulichen Ergebnissen. Das Einfügen einzelner Zeilen in einen bestehenden als Tabelle formatierten Bereich funktioniert super mit allen Varianten (Strg C + Strg V usw.). Auch mit mehreren Zeilen funktioniert das hervorragend. Macht Spaß sich das anzugucken!
Aufgefallen ist mir darüber hinaus Folgendes: Wenn man in diesem Tabellenblatt in eine Zelle doppelt klickt und daraufhin eine andere einfach anklickt, springt die Markierung wieder in die Zelle, in die doppelt geklickt wurde.
Des Weiteren ist es nicht möglich, den als Tabelle formatierten Bereich mit der unteren rechten Ecke (blaues Dreieck) per Drag & Drop zu erweitern. Hier erscheint die Fehlermeldung "Laufzeitfehler 1004: Die Methode ‚Undo‘ für das Objekt ‚_Application‘ ist fehlgeschlagen“. Mir ist auch aufgefallen, dass wenn ich die Tabelle auf diese Weise in den "Kundendateien" erweitere und dies anschließend bei den "ehemaligen Kunden" teste, kommt zwar keine Fehlermeldung, aber der als Tabelle formatierte Bereich wird dann komplett zerschossen (bei mir war nur noch der Tabellenblatthintergrund zu sehen). Excel öffnet ja soweit mir bekannt ist, die Dateien standardmäßig in einer Programminstanz, vielleicht beeinflussen sich die Dateien dadurch gegenseitig.
Möchte ich die Tabelle durch Tabulatortaste oder Rechtsklick „Zelle einfügen“ erweitern, erscheint die Fehlermeldung "Laufzeitfehler 424: Objekt erforderlich". Standardmäßig erweitert sich der als Tabelle formatierte Bereich ja automatisch, wenn der kopierte Inhalt über den aktuellen Bereich hinausgeht. Aber auch hier erscheint mit deinem Programm die Fehlermeldung "Laufzeitfehler 424: Objekt erforderlich".
Nach den Fehlermeldungen funktioniert das Programm nicht mehr, sodass die Formate wieder aus der Ursprungsdatei übernommen werden. Um Abhilfe zu schaffen, muss ich zunächst alle Exceldateien schließen und erneut öffnen.
Beim Testen funktionierte einmal auch die Tabulatortaste nicht mehr, die Markierung bewegte sich nicht mehr in die nächste Zelle. Leider konnte ich dieses Verhalten nicht noch einmal erzeugen, sodass ich nicht weiß, ob dies nach einer Fehlermeldung passiert ist oder beim fehlerlosen Laufen deines Programms.
Bisher bin ich hiermit schon am Weitesten gekommen. Danke! Programme, die ich aus anderen Beiträgen getestet habe, decken nur Strg C + Strg V ab oder griffen in die Menüfunktionen ein, was ich hier leider nicht darf. Vielleicht helfen dir meine Ausführungen, um den Kern des Problems zu erkennen. Über eine Nachricht würde ich mich freuen.
Viele Grüße, Mathilda
Anzeige
AW: Crosspost ohne Hinweis
13.12.2018 21:58:14
Dieter
Hallo Mathilda,
also erst einmal vielen Dank für deinen wirklich ausgiebigen Test. Mir ist bei der Fülle der Möglichkeiten klar geworden, dass ich das kaum hinkriegen werde.
Am einfachsten ist noch der Fall, dass du die Tabelle durch Ziehen an der rechten unteren Ecke erweiterst. Dazu würde das Programm folgendermaßen aussehen:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Feld As Variant
Dim lst As ListObject
For Each lst In Me.ListObjects
If Target.Address = lst.Range.Address Then
Exit Sub
End If
Next lst
Feld = Target
Application.EnableEvents = False
Application.Undo
On Error Resume Next
Target = Feld
On Error GoTo 0
Application.EnableEvents = True
End Sub

Einfügung einer kompletten Tabellenzeilen oder kompletten ListBox-Zeile ist leider wegen des Undo gar nicht möglich.
Dass das Programm nach den Laufzeitfehlermeldungen nicht mehr funktioniert, liegt daran, dass duch
Application.EnableEvents = False
die Ereignisbehandlung ausgeschaltet wird.
Du kannst in den Direktbereich das Statement
Application.EnableEvents = True
eingeben und anschließend die Eingabetaste drücken. Dann funktionieren die Ereignisse wieder.
Ich werde den Thread auf offen stellen, vielleicht gibt es jemanden, der weiterhelfen kann.
Ich wünsche dir auf jeden Fall viel Erfolg. Vielleicht bleibt doch nur die Möglichkeit, deine Leute gut zu schulen.
Viele Grüße
Dieter
Anzeige
AW: Crosspost ohne Hinweis
14.12.2018 05:42:05
Hajo_Zi
AW: Crosspost ohne Hinweis
14.12.2018 12:21:27
Mathilda
Hallo Dieter,
ja, auch in Excel führen viele Wege nach Rom. Das alles zu bedenken, stelle ich mir sehr arbeitsaufwändig vor. Leider habe ich keinerlei Erfahrung in Programmiersprache. Bei einem Fulltime-Job ist das autodidaktische Lernen zeitlich nur begrenzt möglich. Wie du schon sagtest, vielleicht stößt noch jemand auf den Beitrag und hat einen Lösungsansatz parat. Ich bedanke mich ganz herzlich dafür, dass du dir für mich Zeit genommen hast.
Viele Grüße, Mathilda
AW: Crosspost ohne Hinweis
14.12.2018 14:45:59
Hajo_Zi
Hajo_Z es reicht, nun wissen es alle o.w.T
14.12.2018 15:31:49
Josef
Sepp
AW: Crosspost ohne Hinweis
13.12.2018 18:22:24
Mathilda
Nachtrag: Ich habe schon wieder nicht aufgepasst und das Häkchen für "offen" vergessen, sorry!
AW: Crosspost ohne Hinweis
13.12.2018 20:22:38
Hajo_Zi
Zu Crossposting lies diese Seite Hajo-Excel.de
Oder Zu Crossposting
Durch Crossposting werden mehrere Gruppen von Leuten mit dem gleichen Thema befasst, ohne dass sie voneinander wissen.
Naturgemäß laufen dann die Antworten, die im einen Forum "zu spät" gegeben wurden, ins Leere und bleiben ohne Resonanz.
Es reicht also, zunächst in einem Forum zu posten - wenn die Antworten dann unbefriedigend sein sollten, steht es einem anschließend immer noch offen, ein anderes Forum zu Rate zu ziehen.
Ich mache keine Werbung für andere Foren und verzichte darum auf den Link.
Anzeige

324 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige