Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1940to1944
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
Werte von einer Tabelle in eine andere Kopieren
15.08.2023 10:29:17
Andreas Kischkel
Hallo Liebe Experten! Ich kenne mich eigentlich nicht mit VBA aus. Ich nehme bestehende VBA's und passe die durch probieren an. Jetzt habe ich ein Problem, dass ich Werte aus einer in eine andere Tabelle Kopieren möchte. Die Werte in der zu kopierenden Tabelle sind Formeln die Werte ausgeben. Ich habe einen VBA code, der immer die letzte Zeile in den jeweiligen Tabellen sucht, die eine Kopiert und die andere einfügt. Wenn ich aber versuche PasteSpecial Paste:=xlPasteValues einzugeben, er einen Fehler rausschmeißt. Ich werde eine Teil des Codes unten einfügen. Vielleicht hat ja jemand eine Idee wie ich das ganze vielleicht noch "smarter" programmieren kann.

Der code:
Sub din_haus_immobilien()

ActiveSheet.Unprotect

'ganze tabelle inklusive kommentare löschen

Range("B4:Z4").Select
'Range(Selection, Selection.End(xlToRight)).Select


Range(Selection, Selection.End(xlDown)).Select

Selection.ClearContents
Selection.ClearComments
Range("A4").Select

'anbieter din haus akt

Dim DinHaus As Worksheet
Dim immobilien As Worksheet

Dim letzteReiheDinHaus As Long
Dim letzteReiheImmobilien As Long

Set DinHaus = Worksheets("Dinslaken Haus")
Set immobilien = Worksheets("immobilien")

'letzte reihe din haus bild finden

letzteReiheDinHausBild = DinHaus.Cells(DinHaus.Rows.Count, "AM").End(xlUp).Row

'letzte reihe din haus link finden

letzteReiheDinHausLink = DinHaus.Cells(DinHaus.Rows.Count, "C").End(xlUp).Row

'letzte reihe din haus id finden

letzteReiheDinHaus = DinHaus.Cells(DinHaus.Rows.Count, "B").End(xlUp).Row

'letzte reihe din haus WFL finden

letzteReiheDinHaus = DinHaus.Cells(DinHaus.Rows.Count, "H").End(xlUp).Row

'letzte reihe din haus grundstück finden

letzteReiheDinHaus = DinHaus.Cells(DinHaus.Rows.Count, "G").End(xlUp).Row

'letzte reihe din haus bj finden

letzteReiheDinHaus = DinHaus.Cells(DinHaus.Rows.Count, "F").End(xlUp).Row

'letzte reihe din haus Anbieter finden

letzteReiheDinHaus = DinHaus.Cells(DinHaus.Rows.Count, "R").End(xlUp).Row

'letzte reihe din haus angeboten seit finden

letzteReiheDinHaus = DinHaus.Cells(DinHaus.Rows.Count, "D").End(xlUp).Row

'letzte reihe din haus deaktiviert finden

letzteReiheDinHaus = DinHaus.Cells(DinHaus.Rows.Count, "Q").End(xlUp).Row

'letzte reihe din haus verkauft jn finden

letzteReiheDinHaus = DinHaus.Cells(DinHaus.Rows.Count, "X").End(xlUp).Row







'letzte reihe immobilien Bild finden

letzteReiheImmobilien = immobilien.Cells(immobilien.Rows.Count, "Z").End(xlUp).Row + 1

'letzte reihe immobilien link finden

letzteReiheImmobilien = immobilien.Cells(immobilien.Rows.Count, "b").End(xlUp).Row + 1

'letzte reihe immobilien ID finden

letzteReiheImmobilien = immobilien.Cells(immobilien.Rows.Count, "C").End(xlUp).Row + 1

'letzte reihe immobilien wfl finden

letzteReiheImmobilien = immobilien.Cells(immobilien.Rows.Count, "D").End(xlUp).Row + 1

'letzte reihe immobilien grundstück finden

letzteReiheImmobilien = immobilien.Cells(immobilien.Rows.Count, "E").End(xlUp).Row + 1

'letzte reihe immobilien bj finden

letzteReiheImmobilien = immobilien.Cells(immobilien.Rows.Count, "F").End(xlUp).Row + 1

' reihe immobilien anbieter finden

letzteReiheImmobilien = immobilien.Cells(immobilien.Rows.Count, "G").End(xlUp).Row + 1

'letzte reihe immobilien angebot seit finden

letzteReiheImmobilien = immobilien.Cells(immobilien.Rows.Count, "H").End(xlUp).Row + 1

'letzte reihe immobilien deaktiviert finden

letzteReiheImmobilien = immobilien.Cells(immobilien.Rows.Count, "i").End(xlUp).Row + 1

'letzte reihe immobilien verkauft jn finden

letzteReiheImmobilien = immobilien.Cells(immobilien.Rows.Count, "J").End(xlUp).Row + 1







'kopieren Bild

DinHaus.Range("AM6:AM" & letzteReiheDinHaus).Copy _
immobilien.Range("Z" & letzteReiheImmobilien)


'kopieren link

DinHaus.Range("C6:C" & letzteReiheDinHaus).Copy _
immobilien.Range("B" & letzteReiheImmobilien)


'kopieren ID

DinHaus.Range("B6:B" & letzteReiheDinHaus).Copy _
immobilien.Range("C" & letzteReiheImmobilien)

'kopieren wfl

DinHaus.Range("H6:H" & letzteReiheDinHaus).Copy _
immobilien.Range("D" & letzteReiheImmobilien)

'kopieren grundstück

DinHaus.Range("G6:G" & letzteReiheDinHaus).Copy _
immobilien.Range("E" & letzteReiheImmobilien)

'kopieren bj

DinHaus.Range("F6:F" & letzteReiheDinHaus).Copy _
immobilien.Range("F" & letzteReiheImmobilien)

'kopieren Anbieter

DinHaus.Range("R6:R" & letzteReiheDinHaus).Copy _
immobilien.Range("G" & letzteReiheImmobilien)

'kopieren angeboten seit

DinHaus.Range("D6:D" & letzteReiheDinHaus).Copy _
immobilien.Range("H" & letzteReiheImmobilien)

'kopieren deaktiviert

DinHaus.Range("Q6:Q" & letzteReiheDinHaus).Copy _
immobilien.Range("I" & letzteReiheImmobilien)

'kopieren verkauft jn

DinHaus.Range("X6:X" & letzteReiheDinHaus).Copy _
immobilien.Range("J" & letzteReiheImmobilien)

End Sub

Die letzte Zeile ist das Problem, dass in "DinHaus.Range("X6:X" & letzteReiheDinHaus).Copy _" die Formel steht und ich aber nur den Wert in die neue Tabelle "immobilien" kopieren will.
Aber wie gesagt, vielleicht geht der ganze code auch smarter. Denn, das dauert schon ne weile bis der code durchlaufen ist und da sollen noch 10 Tabellen mit rein!!
Wie gesagt, ich habe den code nur angepasst, nicht selber geschrieben!!!

Herzliche Grüße, Andreas

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte von einer Tabelle in eine andere Kopieren
15.08.2023 10:31:02
onur
"Wenn ich aber versuche PasteSpecial Paste:=xlPasteValues einzugeben, er einen Fehler rausschmeißt. " - Meister Joda ? :)
AW: Werte von einer Tabelle in eine andere Kopieren
15.08.2023 10:33:03
onur
Abgesehen davon: Der Code ohne die ZUGEHÖRIGE Datei bringt nix ausser dauernde Rückfragerei - und darauf haben nur wenige Bock....
Werte von einer Tabelle in eine andere Kopieren
15.08.2023 10:53:31
Andreas Kischkel
hallo onur, die Datei ist zu groß um sie hier hochzuladen!! helfen da die betroffenen tabellen??
AW: Werte von einer Tabelle in eine andere Kopieren
15.08.2023 10:56:02
onur
Mach doch entweder eine abgespeckte Version daraus oder eine Beispielsdatei, die aber genauso aufgebaut ist und wo das Makro auch läuft.
Werte von einer Tabelle in eine andere Kopieren
15.08.2023 11:55:13
Andreas Kischkel
hm, ich habe jetzt lediglich die beiden betroffenen blätter in eine neue arbeitsmappe gepackt inklusive des vba code und trotzdem hat die date über 50.000 kb??? die original hat gerade mal 5.000 kb mehr und hat bestimmt 20 arbeitsblätter mehr. wie kriege ich das hin??
Anzeige
AW: Werte von einer Tabelle in eine andere Kopieren
15.08.2023 12:01:02
onur
Lösche mal auf allen Blättern alles von ganz unten (Scrollbalken ganz runter) letzte Zeile (am besten noch ein paar Zelen tiefer) bis nach oben zur letzten beschriebenen Zeile (komplett - nicht nur Inhalte).
Wahrscheinlich hast du irgendwo ganz unten mal eine Zelle formatiert gehabt, deswegen ist für Excel diese Zeile die Letzte.
Das sieht man immer, wenn man zur letzten beschriebenen Zeile geht und sieht, dass der Scrollbalken aber nicht ganz unten ist.
Werte von einer Tabelle in eine andere Kopieren
15.08.2023 13:27:37
Andreas Kischkel
oh man, ich verzweifele gerade, habe alles!! gelöscht! datei ist jetzt auf 2.100 kb geschrumpft, kriege die nicht kleiner. ist der vba code so groß??
Anzeige
AW: Werte von einer Tabelle in eine andere Kopieren
15.08.2023 13:29:02
onur
Speichern, schliessen, neu öffnen und speichern...
Werte von einer Tabelle in eine andere Kopieren
15.08.2023 15:45:23
Herbert Grom
Hallo Andreas,

deine Spaltenüberschriften passen aber nicht zusammen! In "Immobilien", wohin die Daten aus "Dinslaken Haus" übertragen werden sollen, hat es Spalten, die es "Dinslaken Haus" gar nicht gibt. Sag uns doch noch, welche Daten aus welchen Spalten nach "Immobilien" kopiert werden sollen, bzw. mach eine Beispieldatei, in der die Spaltenüberschriften zusammen passen.

Servus
Werte von einer Tabelle in eine andere Kopieren
15.08.2023 16:25:20
Andreas Kischkel
hi, es geht hier ja eigentlich exemplarisch um die daten in der spalte dinslaken haus - Verkauft j/n, die in die Spalte Immobilien - Verkauft? kopiert werden sollen, hier bekomme ich es einfach nicht hin, nur den Wert zu kopieren und nicht die formel aus der spalte zu kopieren ...
Anzeige
Werte von einer Tabelle in eine andere Kopieren
15.08.2023 16:48:40
Andreas Kischkel
hi, es geht hier ja eigentlich exemplarisch um die daten in der spalte dinslaken haus - Verkauft j/n, die in die Spalte Immobilien - Verkauft? kopiert werden sollen, hier bekomme ich es einfach nicht hin, nur den Wert zu kopieren und nicht die formel aus der spalte zu kopieren ...
Werte von einer Tabelle in eine andere Kopieren
15.08.2023 16:55:15
Herbert Grom
Z. B.:

   Dim lLastRow&, lRowIn&

Dim SourceSheet As Worksheet, TargetSheet As Worksheet

Set SourceSheet = Sheets("Dinslaken Haus") '* quelle
Set TargetSheet = Sheets("Immobilien") '* ziel

lLastRow = SourceSheet.Cells(Rows.Count, "B").End(xlUp).Row
lRowIn = TargetSheet.Cells(Rows.Count, "B").End(xlUp).Row + 1

TargetSheet.Cells(lRowIn, "J").Value = SourceSheet.Cells(lLastRow, "X").Value


Anzeige
Werte von einer Tabelle in eine andere Kopieren
15.08.2023 19:21:58
Andreas Kischkel
erst einmal vielen dank für die mühe!!!!!
Sub din_haus_immobilien()

ActiveSheet.Unprotect

'ganze tabelle inklusive kommentare löschen

Range("B4:Z4").Select
'Range(Selection, Selection.End(xlToRight)).Select


Range(Selection, Selection.End(xlDown)).Select

Selection.ClearContents
Selection.ClearComments
Range("A4").Select

'anbieter din haus akt

Dim DinHaus As Worksheet
Dim immobilien As Worksheet

Dim letzteReiheDinHaus As Long
Dim letzteReiheImmobilien As Long

Set DinHaus = Worksheets("Dinslaken Haus")
Set immobilien = Worksheets("immobilien")

'neue dim
Dim lLastRow&, lRowIn&
Dim SourceSheet As Worksheet, TargetSheet As Worksheet

Set SourceSheet = Sheets("Dinslaken Haus") '* quelle
Set TargetSheet = Sheets("Immobilien") '* ziel

lLastRow = SourceSheet.Cells(Rows.Count, "X").End(xlUp).Row
lRowIn = TargetSheet.Cells(Rows.Count, "J").End(xlUp).Row + 1

......


DinHaus.Range("D6:D" & letzteReiheDinHaus).Copy _
immobilien.Range("H" & letzteReiheImmobilien)

'kopieren deaktiviert

DinHaus.Range("Q6:Q" & letzteReiheDinHaus).Copy _
immobilien.Range("I" & letzteReiheImmobilien)

'kopieren verkauft jn

TargetSheet.Cells(lRowIn, "J").Value = SourceSheet.Cells(lLastRow, "X").Value

DinHaus.Range("X6:X" & letzteReiheDinHaus).Copy _
immobilien.Range("J" & letzteReiheImmobilien)
.......


ich weiß nicht so recht wo und wie ich das einsetzen muss?
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Anzeige

Infobox zum Thema

EXCEL - Werte mit VBA von einer Tabelle in eine andere Kopieren


Inhaltsverzeichnis


Die Fragestellung


Du möchtest mit VBA bestimmte Werte aus einer Excel-Tabelle (Tabelle1) in eine andere Tabelle (Tabelle2) kopieren.


Erläuterung des Problems {#erläuterung-des-problems}


Das Kopieren von Daten zwischen verschiedenen Tabellen in Excel ist eine häufige Aufgabe, die manuell zeitaufwendig sein kann, insbesondere wenn es um große Datenmengen oder komplexe Datenstrukturen geht.


Lösung des Problems {#lösung-des-problems}


Hier ist ein einfaches VBA-Skript, das den Inhalt eines definierten Bereichs von einer Tabelle in eine andere kopiert:

Sub CopyValuesToAnotherSheet()
    Dim sourceSheet As Worksheet
    Dim targetSheet As Worksheet
    Dim sourceRange As Range
    Dim targetRange As Range

    ' Definiere die Quell- und Zieltabellen
    Set sourceSheet = ThisWorkbook.Worksheets("Tabelle1")
    Set targetSheet = ThisWorkbook.Worksheets("Tabelle2")

    ' Definiere den zu kopierenden Bereich
    Set sourceRange = sourceSheet.Range("A1:B10") ' Anpassen an den tatsächlichen Bereich

    ' Definiere, wo die Daten eingefügt werden sollen
    Set targetRange = targetSheet.Range("A1") ' Anpassen an die Startzelle im Zielblatt

    ' Kopiere Werte vom Quellbereich zum Zielbereich
    sourceRange.Copy Destination:=targetRange

    ' Optional: Formeln in Werte umwandeln, falls nötig
    ' targetRange.Resize(sourceRange.Rows.Count, sourceRange.Columns.Count).Value = _
    '     targetRange.Resize(sourceRange.Rows.Count, sourceRange.Columns.Count).Value

    ' Aufräumen
    Set sourceSheet = Nothing
    Set targetSheet = Nothing
    Set sourceRange = Nothing
    Set targetRange = Nothing
End Sub

Dieses Skript nimmt an, dass du die Werte aus dem Bereich A1:B10 von "Tabelle1" in den Bereich beginnend bei A1 von "Tabelle2" kopieren möchtest. Es verwendet die .Copy-Methode, die nicht nur die Werte, sondern auch Formate und Formeln kopiert. Wenn du nur die Werte ohne Formeln oder Formate übertragen möchtest, kannst du die auskommentierte Option verwenden, die die Formeln in Werte umwandelt.


Anwendungsbeispiele aus der Praxis


  • Berichtserstellung: Übertragen von Daten in eine Berichtsvorlage.
  • Datenkonsolidierung: Zusammenführen von Daten aus verschiedenen Arbeitsblättern in ein Hauptblatt.

Tipps


  • Überprüfe die Bereichsangaben und passe sie entsprechend den tatsächlichen Daten an.
  • Wenn du nur Werte ohne Formate oder Formeln kopieren möchtest, verwende die .Value-Eigenschaft anstelle der .Copy-Methode.

Verwandte Themenbereiche


  • VBA-Programmierung
  • Datenmanipulation in Excel
  • Automatisierung von Routineaufgaben

Zusammenfassung


Das Kopieren von Werten zwischen Tabellen in Excel kann effizient mit einem VBA-Makro automatisiert werden. Dies spart Zeit und reduziert Fehler, die bei manuellen Kopiervorgängen auftreten können. Das obige Skript bietet eine Grundlage, die für spezifische Anforderungen angepasst werden kann, um Daten zwischen Arbeitsblättern zu übertragen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige