Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Werte aus anderer Datei auslesen

Werte aus anderer Datei auslesen
04.09.2015 11:31:08
Mario
Hallo,
Ich bin Auszubildender und habe noch recht wenig Erfahrung mit Excel. Es wäre nett wenn ihr mir helfen könntet folgendes Problem zu lösen.
Ich möchte einen Wert aus deiner anderen Datei auslesen.
Excel soll in H:\Dokumente\Fuhrpark\Datei1.xls nach der Zeile suchen, in dem ein bestimmtes Kürzel z.B.(KS JG654) steht. Der Wert steht irgendwo in Spalte C.
Dieses Kürzel steht in H:\Dokumente\Fuhrpark\Datei2.xls in A2.
Der ermittelte Wert soll dann in Datei2 angezeigt werden
Mit freundlich Grüßen
Mario von Gemünden

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte aus anderer Datei auslesen
04.09.2015 12:37:27
Matthias
Hallo Mario,
kopiere dir bitte folgenden Code in ein Modul deiner Datei2:
Sub Daten_suchen()
Dim wkb As Workbook
Dim geoeffnet As Boolean
Dim wkbName As String, wkbPath As String, Kuerzel As String
Dim rZelle As Range
wkbName = "Datei1.xls"
wkbPath = "H:\Dokumente\Fuhrpark"
' feststellen, ob Datei schon geöffnet
For Each wkb In Application.Workbooks
If wkb.Name = wkbName And wkb.Path = wkbPath Then geoeffnet = True
Next wkb
' entsprechend reagieren
If geoeffnet Then
Workbooks(wkbName).Activate
Else
Workbooks.Open Filename:=wkbPath & "\" & wkbName, UpdateLinks:=0
End If
Kuerzel = ThisWorkbook.Worksheets("Tabelle1").Range("A2").Value
' Kürzel suchen
Set rZelle = Workbooks(wkbName).Worksheets("Tabelle1").Range("C:C").Find(Kuerzel, LookIn:= _
xlValues, LookAt:=xlWhole)
If Not rZelle Is Nothing Then
MsgBox "Gefundener Wert: " & rZelle.Value & "   Zelle: " & rZelle.Address
' Wert in Zelle schreiben:
ThisWorkbook.Worksheets("Tabelle1").Range("A3").Value = _
Workbooks(wkbName).Worksheets("Tabelle1").Range(rZelle.Address).Value
Else
MsgBox "Wert nicht gefunden."
End If
If geoeffnet Then
Thisworkbook.Activate
Else
' Datei1 schließen
Application.DisplayAlerts = False
Workbooks(wkbName).Close
Application.DisplayAlerts = True
End If
End Sub
Es wird zunächst geprüft ob Datei1 schon geöffnet ist, wenn Nein dann wird dies getan. Anschließend wird dein Kürzel wie gewünscht darin gesucht und als MsgBox dir Wert und Ort wiedergegeben.
Sei dir aber bewusst, dass so nur das 1. Auftreten des Kürzels gefunden wird. Kann es mehrfach vorkommen, muss man den Code ändern.
lg Matthias

Anzeige
AW: Werte aus anderer Datei auslesen
04.09.2015 13:59:35
Alfons
Hallo,
starte das mal in der Datei2:





Public Sub DateiLesen()

Dim wkbQuelle As Workbook

Dim wksZiel As Worksheet

Dim strSB As String


'Set wkbQuelle = Workbooks.Open("H:\Dokumente\Fuhrpark\Datei1.xls")

Set wkbQuelle = Workbooks.Open("C:\Dokumente und Einstellungen\bla_2\Desktop\StraßeC.xls")

Set wksZiel = ThisWorkbook.Worksheets("Tabelle1")



'alte Ergebnisse löschen

'wksZiel.Range("G5").CurrentRegion.Clear

strSB = wksZiel.Range("A2") 'der Suchbegriff


With wkbQuelle.Worksheets("Tabelle1").Range("A1")

'Spalte C filtern

.AutoFilter Field:=3, Criteria1:=strSB

'die dann sichtbaren Zellen nach G5 kopieren

.CurrentRegion.SpecialCells(xlCellTypeVisible).Copy wksZiel.Range("G5")

End With



wkbQuelle.Close SaveChanges:=False



Set wkbQuelle = Nothing

Set wksZiel = Nothing

End Sub


Gruß
Alfons
http://vba1.de
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Werte aus anderer Datei auslesen in Excel


Schritt-für-Schritt-Anleitung

Um Werte aus einer anderen Datei auszulesen, kannst du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, die du in deiner Excel-Datei (z.B. in der Datei2.xls) umsetzen kannst:

  1. Öffne die VBA-Entwicklungsumgebung:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf dein Projekt im Projekt-Explorer und wähle Einfügen > Modul.
  3. Füge den folgenden Code ein:

Sub Daten_suchen()
    Dim wkb As Workbook
    Dim geoeffnet As Boolean
    Dim wkbName As String, wkbPath As String, Kuerzel As String
    Dim rZelle As Range

    wkbName = "Datei1.xls"
    wkbPath = "H:\Dokumente\Fuhrpark"

    ' feststellen, ob Datei schon geöffnet
    For Each wkb In Application.Workbooks
        If wkb.Name = wkbName And wkb.Path = wkbPath Then geoeffnet = True
    Next wkb

    ' entsprechend reagieren
    If geoeffnet Then
        Workbooks(wkbName).Activate
    Else
        Workbooks.Open Filename:=wkbPath & "\" & wkbName, UpdateLinks:=0
    End If

    Kuerzel = ThisWorkbook.Worksheets("Tabelle1").Range("A2").Value

    ' Kürzel suchen
    Set rZelle = Workbooks(wkbName).Worksheets("Tabelle1").Range("C:C").Find(Kuerzel, LookIn:= xlValues, LookAt:=xlWhole)

    If Not rZelle Is Nothing Then
        MsgBox "Gefundener Wert: " & rZelle.Value & "   Zelle: " & rZelle.Address
        ' Wert in Zelle schreiben:
        ThisWorkbook.Worksheets("Tabelle1").Range("A3").Value = Workbooks(wkbName).Worksheets("Tabelle1").Range(rZelle.Address).Value
    Else
        MsgBox "Wert nicht gefunden."
    End If

    If geoeffnet Then
        ThisWorkbook.Activate
    Else
        ' Datei1 schließen
        Application.DisplayAlerts = False
        Workbooks(wkbName).Close
        Application.DisplayAlerts = True
    End If
End Sub
  1. Führe das Makro aus:
    • Gehe zurück zu Excel und führe das Makro aus, um die gewünschten Daten aus der anderen Datei zu lesen.

Häufige Fehler und Lösungen

  • Datei nicht gefunden: Vergewissere dich, dass der Dateipfad und der Dateiname korrekt sind.
  • Kürzel nicht gefunden: Stelle sicher, dass das Kürzel in der anderen Datei wirklich vorhanden ist. Der Code sucht nur das erste Auftreten.
  • Makro läuft nicht: Überprüfe, ob die Makros in deinen Excel-Einstellungen aktiviert sind.

Alternative Methoden

Du kannst auch die SVERWEIS-Funktion verwenden, um Daten aus einer anderen Tabelle zu ziehen. Das ist besonders nützlich, wenn du keine Programmierkenntnisse hast. Hier ein einfaches Beispiel:

=SVERWEIS(A2; [Datei1.xls]Tabelle1!$A:$C; 3; FALSCH)

Diese Formel sucht den Wert in A2 und gibt den entsprechenden Wert aus Spalte C der Datei1.xls zurück.


Praktische Beispiele

Angenommen, in Datei2.xls steht in A2 das Kürzel KS JG654. Der VBA-Code sucht in Datei1.xls in Spalte C nach diesem Kürzel und gibt den gefundenen Wert in A3 von Datei2.xls aus.

Ein weiteres Beispiel ist die Verwendung von Filtern in VBA:

With wkbQuelle.Worksheets("Tabelle1").Range("A1")
    .AutoFilter Field:=3, Criteria1:=strSB
    .CurrentRegion.SpecialCells(xlCellTypeVisible).Copy wksZiel.Range("G5")
End With

Hierbei werden gefilterte Daten in die Zelle G5 kopiert.


Tipps für Profis

  • Nutze Option Explicit, um sicherzustellen, dass alle Variablen deklariert werden, was dir hilft, Fehler zu vermeiden.
  • Wenn du häufig Daten aus anderen Dateien ausliest, speichere relevante Dateipfade in Variablen, um die Wartbarkeit deines Codes zu verbessern.
  • Du kannst auch Excel-Add-Ins verwenden, um den Prozess des Auslesens von Daten aus anderen Dateien zu vereinfachen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Vorkommen eines Kürzels suchen?
Du kannst eine Schleife verwenden, um alle Vorkommen zu finden und zu speichern.

2. Funktioniert das auch mit Excel Online?
VBA ist nicht in Excel Online verfügbar. Du musst die Desktop-Version verwenden.

3. Wie kann ich Daten aus mehreren Dateien gleichzeitig einlesen?
Du kannst eine Schleife erstellen, die durch eine Liste von Dateinamen iteriert und den oben beschriebenen Code für jede Datei ausführt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige