Registriert seit: 21.03.2016
Version(en): 2007
Hallo zusammen,
ein Kollege von mir hatte den Wunsch, dass Excel automatisch Inhalte von einem Tabellenblatt kopiert und in ein anderes Tabellenblatt einfügt. Ich stelle mir das ungefähr so vor, dass ich eine Art Maske erstelle, bei welcher die Inhalte eingetragen werden und mit einer Schaltfläche dann quasi in das andere Tabellenblatt kopiert werden. Dabei muss immer im Tabellenblatt, in welchem die Inhalte sollen, nach der ersten Leeren Zeile gesucht werden und diese soll dann entsprechend ausgefüllt werden. Es soll also wie eine Art Datenbank funktionieren. Leider kenne ich mich nicht allzu gut mit VBA aus, weswegen ich hier Hilfe suche. Den Code für das Kopieren und Einfügen konnte ich mir durch Makro Aufzeichnen schon ein bisschen anschauen, aber der Rest ist mir noch relativ unklar.
Schonmal Danke im voraus für eure Hilfe!
Grüße Dennis
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• Denne
Registriert seit: 21.03.2016
Version(en): 2007
22.03.2016, 11:41
(Dieser Beitrag wurde zuletzt bearbeitet: 22.03.2016, 11:41 von Denne.)
Hallo Uwe,
Danke für die schnelle Antwort!
Die Lösung ist super und funktioniert hervorragend, Vielen Dank!
Nur noch eine Frage am Ende, wie bekomme ich es hin, dass es den Bereich, den ich bei der Range angebe komplett 1zu1 übernimmt? Es erfolgt ja immer bei jeder neuen Zeile ein Umbruch, dadruch werden die Daten dann falsch (da Buchungssätze übernommen werden sollen). Die Range habe ich angepasst, wie ich das dann aber genau 1zu1 kopieren kann, habe ich bis jetzt noch nicht hinbekommen.
Danke vorab!
Grüße Dennis
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Dennis, wenn Du Deinen Code zeigst, könnte man mehr dazu sagen. Gruß Uwe
Registriert seit: 21.03.2016
Version(en): 2007
Hallo Uwe, hier die beiden Codes: (Für das Tabellenblatt mit dem Inhalt) Code: Private Sub Workbook_Open() Tabelle1.Select Tabelle1.Range("A2:J7") = "" End Sub
(Für die Schaltfläche) Code: Sub Schaltfläche1_KlickenSieAuf() With Tabelle3.Range("A2:J7") .Copy Tabelle15.Cells(1).End(xlUp).Offset(2).PasteSpecial _ Paste:=xlPasteAll, Transpose:=True .ClearContents End With End Sub
Im Prinzip habe ich deinen übernommen, nur ein bisschen angepasst. Danke vorab! Grüße Dennis
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Dennis,
Du kopierst mehrere Zeilen und Spalten. Im jetzigen Code werden diese transponiert im Zielblatt eingefügt. Wie möchtest Du es denn haben?
Gruß Uwe
Registriert seit: 21.03.2016
Version(en): 2007
Hallo Uwe, ich hänge dir mal am besten die Excel Datei an, die ich von meinem Kollegen bekommen habe (und unbearbeitet ist). Er möchte, dass die Buchungssätze komplett übertragen werden (bis auf das Format), die er dort eingibt (eine Maske hat er aber noch nicht gemacht, deswegen versuche ich es mit dem ersten Buchungssatz).
Vielen Dank für deine Mühe! Grüße Dennis
Buchhaltung.xlsx (Größe: 21,04 KB / Downloads: 11)
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Dennis,
da kann ich leider nicht weiterhelfen.
Gruß Uwe
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Dennis, Dein Bereich ist ja immer 6 Zeilen lang. So richtig hab ich jetzt nicht verstanden, wie das Ziel aussehen soll. 1:1 bedeutet doch eigentlich, genau so. Also aus den 6 kopierten Zeilen werden beim Einfügen auch wieder 6 Zeilen. Oder nicht? Wenn ja, dann brauchst Du nur mal den code für einen Bereich aufzeichnen und dann Deine Paste ersetzen, Du willst ja die Formate nicht mitnehmen. Die Formeln eventuell auch nicht? Du fügst hier mit xlPastAll alles ein, da schaust Du, was beim Aufzeichnen kommt, und Transponieren hat ja Uwe schon angemerkt, das muss weg. Code: Tabelle15.Cells(1).End(xlUp).Offset(2).PasteSpecial _ Paste:=xlPasteAll, Transpose:=True
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 21.03.2016
Version(en): 2007
Hallo Andre,
Danke für die Antwort!
Beim Verwenden von xlPasteAll wird aber das Format mitkopiert, was ich verhindern wollte. Bei mir war nur das Problem, dass Excel immer einen Umbruch gemacht hat. Die Lösung des Problems war so simpel, dass ich mich richtig geärgert habe, da es so offensichtlich war :19:
Ich wollte ja, dass die Werte nicht untereinander, sonder nebeneinander stehen. Das Problem war, dass Transpose auf True gestellt war und deswegen dieser Umbruch, den ich evtl. etwas schlecht beschrieben habe, zustande kam. Den Wert auf False gesetzt und siehe da, es funktioniert wie ich es wollte.
Trotzdem Danke für Hilfe, wünsche euch beiden Frohe und erholsame Feiertage!
Grüße Dennis
|