Registriert seit: 06.03.2018
Version(en): 2010
Hallo Leute,
vorab: Ich kenne mich leider in der VBA-Theorie nicht aus und zeichne nur auf. Manchmal klappt das, manchmal nicht...
Jetzt habe ich ein Problem und Kopfschmerzen:
Ich möchte aus einer Datenquelle A die Daten aus den Zeilem A2 bis L2 (da in der ersten Zeile nur Überschriften stehen) in eine Zieldatei einfügen. Und zwar da immer in die erste freie Zeile (auch da von A bis L). Kann mir jemand helfen?
Momentan sieht das so aus:
Windows("Datenquelle.XLSX").Activate
ActiveWorkbook.Close SaveChanges:=False
Cells.Select
Selection.Copy
Windows("Zieldatei.xlsm").Activate
Sheets("DATA").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A1").Select
Danke vorab!
00202
Nicht registrierter Gast
Hallo, :19:
entweder mit Wertzuweisung (
Sub Main()),
oder wenn auch
Formate benötigt werden mit kopieren (
Sub Main_1()):
Code:
Option Explicit
Public Sub Main()
ThisWorkbook.Sheets("Data").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Resize(, 12).Value = Workbooks("Datenquelle.xlsx").Sheets("Quelle").Range("A2:L2").Value
End Sub
Public Sub Main_1()
Workbooks("Datenquelle.xlsx").Sheets("Quelle").Range("A2:L2").Copy ThisWorkbook.Sheets("Data").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Resize(, 12)
Application.CutCopyMode = True
End Sub
Tabellenblatt- und
Dateiname musst Du natürlich ggf.
anpassen.
Registriert seit: 16.04.2014
Version(en): xl2016/365
Hola,
und warum fragst du hier, wo dir im anderen Forum doch schon geholfen wird?
http://www.vba-forum.de/forum/View.aspx?...StammdateiGruß,
steve1da
Registriert seit: 06.03.2018
Version(en): 2010
06.03.2018, 13:42
(Dieser Beitrag wurde zuletzt bearbeitet: 06.03.2018, 13:43 von Handwerker.)
Ich verstehe leider wenig bis garnichts von VBA und weiß nicht, was ich wo eintragen soll im Code. Bin leider totaler Anfänger. Daher meine Fragen,
Bekomme einen Indexfehler 9, dass es außerhalb des Bereichs ist.
Ich kapier das einfach nicht und verliere meine Nerven dabei. Das kann ich mir bei all dem anderen Stress nicht erlauben. Trotzdem Danke
00202
Nicht registrierter Gast
Hallo, :19:
der Dateiname und die beiden Tabellenblattnamen müssen stimmen.
Registriert seit: 06.03.2018
Version(en): 2010
Ich habe ja eine Datenquelle. Die heißt meinetwegen "Datenquelle.XLSX". Die hat nur ein Arbeitsblatt "Sheet1"
In der Zieldatei namens "Zieldatei.XLSX", habe ich ein Arbeitsblatt was "Data" heißt. Da soll das hin.
Wo ist der Fehler im Code bei dem Indexfehler?
00202
Nicht registrierter Gast
Hallo, :19:
in meinem Beispiel habe ich das Makro in der Zieldatei. Willst Du das von einer dritten Datei aus machen? Sind die Dateien offen?
In folgendem Beispiel musst Du einfach beide Dateien offen haben und dann auf den jeweiligen Button klicken.
Registriert seit: 06.03.2018
Version(en): 2010
06.03.2018, 14:01
(Dieser Beitrag wurde zuletzt bearbeitet: 06.03.2018, 14:02 von Handwerker.)
Hallo Danke für das Feedback,
jetzt kopiert er das zwar von der Datenquelle in das Zielblatt, aber nur eine Zeile aus der Datenquelle (A2:L2). Ich möchte aber dass alles kopiert bis zum letzten Eintrag ganz unten.
Dann kommt das nächste Arbeitsblatt, welches dann in die erste freie Zeile von der Zieldatei kopieren soll.
00202
Nicht registrierter Gast
(06.03.2018, 14:01)Handwerker schrieb: jetzt kopiert er das zwar von der Datenquelle in das Zielblatt, aber nur eine Zeile aus der Datenquelle (A2:L2).
Hallo, :19:
genau das wolltest Du doch bzw. hast Du am Anfang geschrieben. Wenn Du alles bis zur letzten Zeile kopieren willst, dann so: :21:
Code:
Public Sub Main_1()
With Workbooks("Datenquelle.xlsx").Sheets("Quelle")
.Range("A2:L" & .Cells(.Rows.Count, 1).End(xlUp).Row).Copy ThisWorkbook.Sheets("Data").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
End With
Application.CutCopyMode = True
End Sub
Registriert seit: 06.03.2018
Version(en): 2010
Klappt erstmal! Vielen Dank für deine Hilfe!!