Daten aus einer Excel-Datei in eine andere übertragen
Schritt-für-Schritt-Anleitung
Um Daten aus einer Excel-Datei in eine andere zu übertragen, kannst du ein VBA-Makro verwenden. Folge diesen Schritten:
- Öffne die Datei
Einzel_8er.xls
, in die du das Makro einfügen möchtest.
- Drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Gehe zu
Einfügen
> Modul
, um ein neues Modul zu erstellen.
- Füge den folgenden Code ein:
Option Explicit
Sub Uebertragen()
Dim oWB_EX As Workbook, varRow
Dim rngData As Range, rngRows As Range
Dim booIsOben As Boolean
' Pfad zur Datei Extern + Variable
Call Check_Oben("D:\RSC\2011\Teilnehmer.xls", oWB_EX, booIsOben)
If oWB_EX Is Nothing Then Exit Sub
' Datenbereich
Set rngData = ThisWorkbook.Sheets("Tabelle 1").Range("BE11:BH18")
With oWB_EX
With .Sheets("Liste") ' Tabelle Extern
For Each rngRows In rngData.Rows
' Suche Namen aus BH in Spalte B
varRow = Application.Match(rngRows.Cells(1, 4), .Columns(2), 0)
' Name gefunden?
If IsNumeric(varRow) Then
' Wert aus BE übertragen
.Cells(varRow, 7) = rngRows.Cells(1, 1)
End If
Next
End With
.Save ' Datei speichern
' War Datei nicht offen?
If Not booIsOben Then
.Close False ' schließen
End If
End With
End Sub
Sub Check_Oben(strFileFullName$, ByRef oWB_EX As Workbook, ByRef booIsOben As Boolean)
Dim strFileName$, oWB As Workbook
strFileName = Right$(strFileFullName, Len(strFileFullName) - InStrRev(strFileFullName, "\"))
For Each oWB In Workbooks
If oWB.Name = strFileName Then
Set oWB_EX = oWB
End If
Next
If oWB_EX Is Nothing Then
If Dir(strFileFullName) <> "" Then
Set oWB_EX = Workbooks.Open(strFileFullName)
If oWB_EX.ReadOnly Then
oWB_EX.Close False
Set oWB_EX = Nothing
End If
End If
Else
booIsOben = True
End If
If oWB_EX Is Nothing Then
MsgBox "Datei konnte nicht gefunden oder bearbeitet werden.", vbCritical
End If
End Sub
- Schließe den VBA-Editor und gehe zurück zu Excel.
- Führe das Makro aus, indem du
ALT + F8
drückst, das Makro auswählst und auf Ausführen
klickst.
Häufige Fehler und Lösungen
-
Fehler 1004: Dieser Fehler tritt häufig auf, wenn der Pfad zur Datei nicht korrekt ist. Überprüfe den Pfad in der Zeile Call Check_Oben("D:\RSC\2011\Teilnehmer.xls", oWB_EX, booIsOben)
und stelle sicher, dass die Datei existiert.
-
Datei kann nicht gefunden werden: Wenn du die Fehlermeldung erhältst, dass die Datei nicht gefunden werden kann, überprüfe, ob der Dateiname und der Pfad korrekt angegeben wurden.
Alternative Methoden
Falls du kein VBA verwenden möchtest, kannst du auch die Funktion SVERWEIS
nutzen, um ähnliche Ergebnisse zu erzielen:
- Öffne die Datei
Teilnehmer.xls
.
- Gehe zu
Liste
, wähle die Zelle G2 aus.
- Verwende die SVERWEIS-Formel:
=SVERWEIS(B2; '[Einzel_8er.xls]Tabelle 1'!$BH$11:$BE$18; 2; FALSCH)
- Ziehe die Formel nach unten, um sie auf die anderen Zeilen anzuwenden.
Praktische Beispiele
Wenn du beispielsweise die Zahlen aus den Zellen BE11:BE18
der Datei Einzel_8er.xls
in die Spalte G der Datei Teilnehmer.xls
übertragen möchtest, kannst du das oben beschriebene Makro verwenden. Achte darauf, dass die Namen in Spalte B der Datei Teilnehmer.xls
mit denen in Spalte BH der Datei Einzel_8er.xls
übereinstimmen.
Tipps für Profis
- Verwende
Option Explicit
, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Tippfehler zu vermeiden.
- Kommentiere deinen Code gut, damit du jederzeit nachvollziehen kannst, was jeder Abschnitt macht.
- Teste dein Makro in einer Kopie deiner Dateien, um Datenverlust zu vermeiden.
FAQ: Häufige Fragen
1. Muss die Datei Teilnehmer.xls
offen sein, um das Makro auszuführen?
Nein, das Makro öffnet die Datei automatisch, wenn sie nicht bereits geöffnet ist.
2. Was mache ich, wenn ich den Laufzeitfehler 1004 weiterhin erhalte?
Überprüfe die Dateipfade und stelle sicher, dass die angegebene Datei existiert und nicht von einem anderen Prozess blockiert wird.
3. Kann ich das Makro für andere Dateien verwenden?
Ja, du musst lediglich die Dateipfade und Namen im Code anpassen, um es für deine spezifischen Anforderungen zu nutzen.