Registriert seit: 22.02.2019
Version(en): 365
10.05.2024, 22:54
(Dieser Beitrag wurde zuletzt bearbeitet: 10.05.2024, 22:55 von Sabotaz.)
Moin! Ich habe ein Dokument mit drei Blättern, alle sind komplett unterschiedlich aufgebaut und haben verschieden strukturierte Tabellen. Nun wird von Person A eine eigene Kopie dieses Dokuments mit Daten auf allen Blättern gefüllt. Person B bekommt eine leere Datei und soll nun auf Tabellenblatt 1 die Daten als Kopie der Datei von Person A einfügen. Damit das fehlerfrei funktioniert (Formeln würden beim einfachen Kopieren auf die andere Datei verweisen und damit unbrauchbar werden) habe ich das jetzt dank euch mit VBA umgesetzt: Jeweils ein Button (Export) pro Blatt kopiert ganz einfach einen Bereich des entsprechenden Blattes (bzw. des entsprechenden Tabellenbereichs) in die Zwischenablage und im neuen Dokument werden die Daten mit wiederum einem Importbutton je Blatt eingefügt. Das Problem, das jetzt dadurch entsteht: Kopiert man Daten aus der ersten Datei aus Tabellenblatt 1 und versucht sie fälschlicherweise in die andere Datei in Tabellenblatt 2 einzufügen, wird genau das auch von Excel durchgeführt. Dadurch werden Daten überschrieben, die gar nicht geändert werden sollten und es entsteht ein ziemliches Chaos. Wie kann man das vermeiden? Gibt es eine Möglichkeit, vor dem Einfügen zu prüfen, ob die Daten in der Zwischenablage auch in dieses Tabellenblatt gehören? Die Tabellenblätter der Quell- und der Zieldatei haben die gleichen Namen. Kann man das zur Überprüfung nutzen? Nochmal zusammengefasst: Aktuelle SituationDatei A Tabellenblatt 1 (kopiert)Tabellenblatt 2 Tabellenblatt 3 Datei B Tabellenblatt 1 Tabellenblatt 2 (eingefügt)Tabellenblatt 3 --> falsch eingefügt, Datei B Tabellenblatt 2 kaputt.Ziel:Datei A Tabellenblatt 1 (kopiert)Tabellenblatt 2 Tabellenblatt 3 Datei B Tabellenblatt 1 Tabellenblatt 2 (versucht einzufügen)Tabellenblatt 3 --> Fehlermeldung "Daten inkompatibel"Danke vielmals und ein schönes Wochenende!
Registriert seit: 11.04.2014
Version(en): Office 365
Hallo,
da würde ich zunächst einmal die Arbeitsweise überdenken. So ein hin- und her Geschiebe von Daten kann nicht richtig sein. Gleichartige Daten gehören auf ein Tabellenblatt.
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
Registriert seit: 22.02.2019
Version(en): 365
11.05.2024, 09:51
(Dieser Beitrag wurde zuletzt bearbeitet: 11.05.2024, 09:53 von Sabotaz.)
? Verstehe das Problem jetzt nicht. Excel gibt mir ja die Freiheit mit mehreren Blättern innerhalb eines Dokuments zu arbeiten, was ich auch mache, wenn es der Bedienung und Übersicht hilf, statt 3 verschiedene Tabellendokumente zu haben (was das Problem dadurch nicht aus der Welt schafft - ein falsches Kopieren/Einfügen wäre da genauso möglich).
Daher war die Frage ja "gibt es eine Möglichkeit, die einzufügenden Daten zu kontrollieren?"
Ich habe mir schon was überlegt und es funktioniert auch ganz gut: gesperrte Zellen, Blatt schützen. Ist eigentlich eher ungünstig, das Blatt zu sperren, aber vermutlich gibt es nichts besseres.
Registriert seit: 11.04.2014
Version(en): Office 365
Hallo,
am besten zeigst du mal eine Beispieldatei, dann kann man konkrete Vorschläge machen.
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
Registriert seit: 22.02.2019
Version(en): 365
Hier die Beispieldatei
Beispiel Kopierfehler.xlsm (Größe: 27,84 KB / Downloads: 12)
Registriert seit: 11.04.2014
Version(en): Office 365
Hallo Sabotaz, vielen Dank für das Einstellen der Beispieldatei. Leider hat sich dadurch nicht viel geklärt. Zunächst einmal zu deinen Makros: welchen Sinn macht es, etwas zu kopieren und an der gleichen Stelle wieder einzufügen? Code: Sub Kopieren_Übersicht() ' ' Kopieren_Übersicht Makro '
' Sheets("Übersicht").Select Range("A2:F20").Select Range("F20").Activate Selection.Copy End Sub Sub Einfügen_Übersicht() ' ' Einfügen_Übersicht Makro '
' Sheets("Übersicht").Select Range("A2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub
Zusätzlich noch der Hinweis, dass die Select-Anweisung in aller Regel überflüssig ist. Das würde zum Beispiel als Kopier-Makro reichen: Code: Sub Kopieren_Übersicht() ' ' Kopieren_Übersicht Makro
Sheets("Übersicht").Range("A2:F20").Copy End Sub
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
Registriert seit: 22.02.2019
Version(en): 365
11.05.2024, 14:40
(Dieser Beitrag wurde zuletzt bearbeitet: 11.05.2024, 14:41 von Sabotaz.)
Danke, dass du dir die Datei anguckst. In einer Beispieldatei kann man mein Problem eben auch nicht besser verdeutlichen, als in einer Erklärung, daher habe ich es Anfangs gleich weggelassen...
Ich versuche es nochmal etwas genauer zu erklären:
Angenommen es gäbe 20 gleich aufgebaute Dateien wie meine Beispieldatei in einer Firma. Jede Datei wird von einer anderen Person betreut und ausgefüllt.
Nun kommt die Situation, dass Peter schon eine Weile damit arbeitet und Jens eine komplett frische Datei erhält. Peter stellt nun seine angelegten Inhalte aus seiner eigenen Datei seinem neuen Kollegen zur Verfügung und schickt ihm eine Kopie der Tabelle. Jens möchte sich gern aus dem Tabellenblatt "Übersicht" den Inhalt in seine eigene Datei übertragen. Macht er das manuell (Peters Datei öffnen, entsprechenden Bereich kopieren, in seiner Datei einfügen), werden die Formeln so verändert, dass sie auf Peters Datei verweisen und nicht auf die aktuell geöffnete von Jens.
Aus diesem Grund habe ich ein Makro aufgezeichnet, das für das Kopieren und Einfügen verwendet werden soll. Auf diese Weise bleiben die Formeln erhalten (so wie sie bei Peter waren), sobald sie wieder eingefügt werden und alles funktioniert, wie es soll.
Was jetzt noch das letzte eigentliche Problem ist: Der Inhalt der Zwischenablage kann auch in jedem anderen Tabellenblatt eingefügt werden und somit die Struktur der Datei zerstören.
Das will ich entweder technisch oder organisatorisch verhindern oder eben korrigieren.
Registriert seit: 13.04.2014
Version(en): 365
Hallo,
ich sehe in der Datei keine einzige Formel, wo liegt also das Problem?
Wenn Du schon mit dem Button Einfügen arbeitest, dann gib dem Makro doch gleich den Befehl mit, die Zwischenablage zu leeren.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
Registriert seit: 22.02.2019
Version(en): 365
Verstehe ich auch nicht, warum keine Formeln mehr drin stehen... Hab per SVERWEIS die Teilenummern und Grund usw eigentlich verknüpft. Kann es daran liegen, weil ich zuerst die Datei erstellt habe und dann als xlsm abgespeichert habe?
Egal. Es geht nicht um den Inhalt der Zwischenablage oder um den Aufbau der Datei oder die existierenden Module. Das ist soweit ok und deshalb nicht die Frage. Es geht lediglich um die Möglichkeit, dass man das Tabellenblatt 1 kopiert und ausversehen diesen Inhalt dann in Tabellenblatt 2 einfügen kann. Nur um diesen Fehler geht es aktuell. Nur darum, dass verhindert werden soll, dass aus dem einen Dokument der Inhalt von Tabellenblatt 1 den Inhalt des Tabellenblatts 2 überschreibt, wenn man ausversehen auf "Einfügen" klickt, während man sich im falschen Blatt aufhält.
Eine Beispieldatei kann das Problem nicht weiter verdeutlichen als die Erklärung selbst.
Registriert seit: 13.04.2014
Version(en): 365
Hallo,
dann sprich doch direkt die entsprechenden Tabellen an. Im Übrigen mangelt es wohl an einer Menge Grundlagen in VBA. Was passiert, wenn eine Tabelle mal mehr als 20 Zeilen hat? Deine Makros kopieren nämlich nur 20 Zeilen.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
|