Das Clever-Excel-Forum.de - Treffen
... 14.-16. September 2018 im Allgäu ...

Inhalte von einem Tabellenblatt in ein anderes mit VBA kopieren und einfügen
#1
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
to top
#2
Hallo Dennis,

schau mal hier: http://www.clever-excel-forum.de/Thread-...e-im-Excel

Gruß Uwe
[-] Folgende(r) 1 Benutzer sagt Danke an Kuwer für diesen Beitrag:
  • Denne
to top
#3
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
to top
#4
Hallo Dennis,

wenn Du Deinen Code zeigst, könnte man mehr dazu sagen. ;-)

Gruß Uwe
to top
#5
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
to top
#6
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
to top
#7
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



.xlsx   Buchhaltung.xlsx (Größe: 21,04 KB / Downloads: 7)
to top
#8
Hallo Dennis,

da kann ich leider nicht weiterhelfen.

Gruß Uwe
to top
#9
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-2016)
to top
#10
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
to top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste