Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
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
Inhaltsverzeichnis

Per VBA komplettes Tabellenblatt mit Versatz kopieren

Per VBA komplettes Tabellenblatt mit Versatz kopieren
06.03.2024 14:35:06
martinexcel1996
Servus zusammen,

ich möchte gern per VBA ein Tabellenblatt aus einer anderen Datei einfügen. Das hab ich dank Code aus dem Archiv soweit hinbekommen (siehe unten)
Allerdings besteht noch das Problem, dass das kopierte Tabellenblatt einem automatischen Export aus einem anderen Programm entstammt. Darum wird die erste Spalte von Excel nicht als Zahl erkannt, weshalb ich dann den SVerweis nicht nutzen kann.

Gibt es entweder eine Möglichkeit, die erste Spalte direkt per VBA in Zahlen umzuwandeln,
oder die Möglichkeit das Tabellenblatt mit einer Spalte Versatz, also erst ab Zelle B1 statt A1 einfügen zu lassen. So dass Zelle A1 aus der Quelldatei in meinem Tabellenblatt in B1 eingetragen wird usw.?


Dann könnte ich in A1 einfach "=WERT(B1) eintragen. Wäre zwar etwas gepfuscht, würde aber soweit funktionieren, da dieses Blatt sowieso nur im Hintergrund die Daten bereitstellen soll, auf die anderen Tabellenblätter dann einfach per SVerweis zugreifen können.
Diese Daten sollen aber wöchentlich geupdatet werden, darum würde ich das einlesen und das "In Zahl umwandeln" gerne irgendwie automatisieren.

Viele Grüße
Martin

Sub Importieren()


Dim QWB As Workbook, ZWB As Workbook
Dim QWS As Worksheet, ZWS As Worksheet
Dim quelldatei As Variant

Worksheets("Import").Range("B6:B1000").ClearContents

quelldatei = Worksheets("Link").Cells(4, 6) ' hier liegt der Hyperlink zur Quelldatei

'Wenn die Datei erst geöffnet werden muss
Set ZWB = ThisWorkbook ' Ziel, Workbook mit diesem Makro
Set ZWS = Worksheets("Import") ' Ziel
Set QWB = Workbooks.Open(ordner) ' Quelle, aus der die Tabelle41 kopiert werden soll
Set QWS = QWB.Worksheets("Tabelle1") ' Quelle
QWS.Cells.Copy ZWS.Cells(1, 1) ' oder before
QWB.Close ' Wenn die Datei wieder geschlossen werden soll
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per VBA komplettes Tabellenblatt mit Versatz kopieren
06.03.2024 14:59:05
UweD
Hallo

so?


...

QWS.Cells.Copy ZWS.Cells(1, 1) ' oder before

With ZWS.Columns(1)
.NumberFormat = "General"
.Value = .Value
End With
QWB.Close ' Wenn die Datei wieder geschlossen werden soll



LG UweD
AW: Per VBA komplettes Tabellenblatt mit Versatz kopieren
06.03.2024 15:05:51
martinexcel1996
Ja funktioniert!
Vielen Dank!

Nur der Neugier wegen, weil ich grade versuche mir VBA etwas besser beizubringen:
Wäre das Einfügen des kompletten Tabellenblatts mit Versatz auch möglich?

VG
Martin
AW: Per VBA komplettes Tabellenblatt mit Versatz kopieren
06.03.2024 16:07:06
UweD
Hallo nochmal

durch den Befehl "QWS.Cells.Copy ZWS.Cells(1, 1)"

Kopierst du aus dem Quellblatt alle Zellen nach Zielblatt Zelle 1(Zeile),1(Spalte) (also A1)


Da kannst du natürlich einen Offset beim kopieren angeben.

Aber, da du ja alle Zellen kopierst, inkl. den Leeren rechts oder unten, passen die bei Versatz nichts aufs neue Blatt
Umgehen kannst du das, indem du z.B. nur deinen benutzten Bereich kopierst.

so z.B.
    QWS.UsedRange.Copy ZWS.Cells(5, 2)



Dein benutzter Bereich wird nach beginnend in B5 (Zeile5, Spalte2) kopiert.

LG UweD
Anzeige
AW: Per VBA komplettes Tabellenblatt mit Versatz kopieren
07.03.2024 10:21:22
martinexcel1996
Ah ja, das war tatsächlich auch mein erster Ansatz, hat aber nicht funktioniert. Lag dann wohl daran, dass ich das komplette Tabellenblatt kopiere.
Danke für den Tipp!!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige