Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.06.2024 19:56:24
17.06.2024 19:39:46
Anzeige
Archiv - Navigation
1408to1412
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

Excel VBA - Datein einlesen und inhalt kopieren

Excel VBA - Datein einlesen und inhalt kopieren
17.02.2015 14:05:53
Daniel
Hallo zusammen,
Ich erstelle ein Tool zur Auswertung von Exceltabellen.
Momentan stehe ich vor folgendem Problem:
Um eine Exceldatei auszuwerten muss ich zurzeit die zu auswertende Datei öffnen, STRG-A, STRG-C und dann in ein Tabellenblatt vom Tool STRG-V'en
Ich würde nun gerne ein Makro haben, welches automatisch eine Datei (Report_0615.xlsx) öffnet, Inhalt vom Tabellenblatt1 A1:O500 kopiert und in ein vorhandenes Blatt meines Tools einfügt. (Leistungsdialog.xlsm, "XY Report"). Danach Report_0615.xlsx am besten wieder automatisch schließen. Wenn ich nun einen anderen Report, zum Beispiel von der Vorwoche Report_0515.xlsx einlesen möchte, soll automatisch aus Leistungsdialog.xlsm, "XY Report" alles zuvor eingefügte gelöscht werden.
Ich bin im Thema VBA kompletter Anfänger. Habe nur ein paar Makros zum filtern aufgezeichnet und dann mit Grundkentnissen aus dem Informatikgrundkurs damals in der Schule verändert. Habe schon mein Problem gegoogelt, jedoch keine exakte lösung gefunden. Einfaches kopieren vorhandener Codes hat mir meist die Kopie meines Tools zerschossen, da einfach nicht das gemacht wurde, was ich wollte.
Ich hoffe ihr habt soweit mein Problem verstanden und bedanke mich schon einmal im Voraus.
Viele Grüße
Daniel

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

Betreff
Datum
Anwender
Anzeige
AW: Excel VBA - Datein einlesen und inhalt kopieren
17.02.2015 18:08:47
Frank
Hallo Daniel,
warum googelst Du, wenn Du doch hier ein Fachforum hast? Zum Thema 'Datei öffnen' findest Du hier etliche Treffer. Den Makrorecorder kannst Du auch bedienen, wie Du schreibst. Mehr braucht man eigentlich nicht.
Datei öffnen:
Set wkb = Workbooks.Open("Pfad+Name", ReadOnly:=True)

Pfad + Name als Variable:
https://www.herber.de/forum/messages/1409191.html
Inhalte kopieren:

for i=1 to 500
for j=1 to 15
Workbooks("Leistungsdialog.xlsm").Sheets("XY Report").cells(i,j).value=wbk.sheets(1). _
cells(i,j).value
next
next

Letzteres ist langsam und geht auch anders und schneller,hat aber den Vorteil, sicher zu funktionieren und nur die Werte zu kopieren. Ansonsten gibt es leicht mal Probleme mit Formelbezügen.
Inhalt einer Zelle löschen:
Workbooks("Leistungsdialog.xlsm").Sheets("XY Report").cells(Zeile,Spalte).value=""
Grüsse,
Frank

Anzeige
AW: Excel VBA - Datein einlesen und inhalt kopieren
17.02.2015 18:24:32
Oberschlumpf
Hi Daniel
versuch mal (ungetestet)
1. Füge, wenn noch nicht geschehen, im VBE ein allgemeines Modul hinzu
(nennt sich in der Regel "Modul1", wenn du nicht weißt, was das ist)
2. Füge in dieses Modul nun diesen Code ein

'Teil 1
Option Explicit
Sub sbImport()
'Teil 1.1
Dim lstrFile As String
Dim lshThis As Worksheet, lshOther As Worksheet
'Teil 2
lstrFile = Application.GetOpenFilename("Excel Dateien (*.xlsx), *.xlsx")
If lstrFile = "Falsch" Then Exit Sub
'Teil 3
Workbooks.Open lstrFile
'Teil 4
Set lshThis = ThisWorkbook.Sheets("XY Report")
Set lshOther = ActiveWorkbook.Sheets(1)
'Teil 5
lshThis.Cells.Clear
lshOther.Range("A1:O500").Copy lshThis.Range("A1")
ActiveWorkbook.Close False
End Sub
Erklärung zum Code:
Teil 1
Man wird "gezwungen", alle Variablen zu deklarieren.
Besonders von Vorteil, wenn man Tippfehler erzeugt, das nicht sofort erkennt und sich dann wundert, warum etwas nicht funktioniert
Teil 1.1
Alle im Code verwendeten Variablen werden deklariert
Teil 2
Es öffnet sich ein Datei-Öffnen-Dialog, der dich auffordert, eine xlsx-Datei auszuwählen.
Klickst du auf Abbrechen oder ähnlich, wird mit Exit Sub der Code sofort abgebrochen.
Teil 3
Die von dir ausgewählte Datei wird geöffnet.
Teil 4
Die Variable lshThis erhält alle Funktionen,Methoden,Eigenschaften von deiner Tabelle mit dem Namen "XY Report"
Die Variable lshOther erhält alle Funktionen,Methoden,Eigenschaften von der 1. Tabelle aus der geöffneten Datei
Wichtig!
Wenn die von dir hier genannte Tabelle gar nicht "XY Report" heißt, musst du natürlich im Code den richtigen Tabellennamen eintragen.
Teil 5
Der Inhalt der Tabelle "XY Report" wird komplett gelöscht.
Der Bereich "A1:O500" aus der 1. Tabelle der geöffneten Datei wird kopiert + auch in den Bereich "A1:O500" in die Tabelle "XY Report" eingefügt.
Die zuvor von dir geöffnete Tabelle wird ungespeichert automatisch geschlossen...wie gewünscht
Hilfts?
Wenn nicht, zeig uns die 2 Dateien per Upload....gerne mit Bsp-Daten, aber zeig sie uns per Upload.
Ciao
Thorsten

Anzeige
AW: Excel VBA - Datein einlesen und inhalt kopieren
17.02.2015 18:44:04
Daniel
Hallo Frank, hallo Oberschlumpf,
vielen Dank für eure Hilfe. Ich werde morgen im Büro beide Ansätze ausprobieren, und mich dann nochmal melden.
Grüße Daniel

AW: Excel VBA - Datein einlesen und inhalt kopieren
18.02.2015 10:27:57
Daniel
Vielen Dank Thorsten,
dein Code ist für meinen Zweck perfekt. Klappt ohne Probleme!
Grüße Daniel

333 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige