Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Daten in anderer Excel Datei suchen und übertragen

Betrifft: Daten in anderer Excel Datei suchen und übertragen von: Mexsalem
Geschrieben am: 12.11.2012 11:27:42

Hallo,

ich möchte mich wieder an Euch wenden, da mir eine Lösung für folgendes Problem Lösung nicht glückt.

In meiner Tabelle wird ein Suchbegriff in eine Zelle ("B4") eingegeben. Daraufhin soll der Suchbegriff in einer anderen (geschlossenen!) Excel-Datei gesucht werden, dessen Dateiname variiert und daher in einem Datei-Dialog ausgewählt werden soll. Schön wäre, wenn man ein Verzeichnis vordefinieren könnte (z.B. C:\Temp).

Der Suchbegriff steht in der Spalte "B" der anderen Excel-Datei (es müssen also nicht alle Zellen der Tabelle durchsucht werden), er kommt jedoch mehrfach vor.

In der Zeile des gefundenen Suchbegriffs befinden sich in den Spalten C;D;K;N;P;R die Daten, die auf meine Tabelle übertragen/eingelesen werden sollen.

Die gefundenen Daten sollen ab der Position "Import" (= definierter Name für Zelle "A63") wie folgt eingefügt werden.

meine Tabelle        Quelldatei
Spalte A               Spalte N
Spalte B               Spalte D
Spalte C               Spalte K
Spalte D               Spalte R
Spalte E               Spalte P
Spalte J               Spalte C
Da wird also ein wenig durcheinander gewürfelt :-)

Viele Grüße
Mexsalem

  

Betrifft: AW: Daten in anderer Excel Datei suchen und übertragen von: Mexsalem
Geschrieben am: 12.11.2012 14:48:29

Ergänzung:

Zum Datenimport aus einer geschlossenen Arbeitsmappe hatte ich das Makro von Thomas Ramel im Forum gefunden.

Ich schaffe es nur nicht, den variablen Dateinamen mittels Datei-Dialog zu integrieren und den Bereich durch den Suchbegriff zu definieren, sowie die ganze Spaltenwürfelei zu realisieren.

Gruss
Mexsalem

Private Sub Übertragung_Click()
    ' Die Routine arbeitet mit der Funktion GetDataClosedWB zusammen
    Dim Pfad            As String
    Dim Dateiname       As String
    Dim Blatt           As String
    Dim Bereich         As String
    Dim Ziel            As Range
    Pfad = "c:\temp"
    Dateiname = "Test.xls"           ' aus welcher Datei soll er holen?
    Blatt = "Tabelle1"               ' von welcher Tabelle soll er holen?
    Bereich = ??????????             ' aus welchem Bereich soll er holen?
    Set Ziel = ActiveSheet.[Import]  ' Bei welcher Zelle soll er anfangen, reinzukopieren?       _
 
    If GetDataClosedWB(Pfad, Dateiname, Blatt, Bereich, Ziel) Then
        MsgBox "Daten importiert"
    End If

End Sub

Public Function GetDataClosedWB(SourcePath As String, _
    SourceFile As String, sourceSheet As String, _
        SourceRange As String, TargetRange As Range) As Boolean
    'Holt einen Bereich aus einer _geschlossenen_ Arbeitsmappe
    'Nur in VBA zu verwenden; nicht aus einer Tabellenzelle heraus
    '© t.ramel@mvps.org
    ' wird durch die HoleDaten aufgerufen
    Dim strQuelle       As String
    Dim Zeilen          As Long
    Dim Spalten         As Byte
    On Error GoTo InvalidInput
    strQuelle = "'" & SourcePath & "[" & SourceFile & "]" & sourceSheet & "'!" & Range( _
SourceRange).Cells(1, 1).Address(0, 0)
    Zeilen = Range(SourceRange).Rows.Count
    Spalten = Range(SourceRange).Columns.Count
    With TargetRange.Cells(1, 1).Resize(Zeilen, Spalten)
        .Formula = "=IF(" & strQuelle & "="""",""""," & strQuelle & ")"
        .Value = .Value
    End With
    GetDataClosedWB = True
    Exit Function
InvalidInput:
    MsgBox "Die Quelldatei oder der Quellbereich ist ungültig!", vbExclamation, "Get data from  _
closed Workbook"
    GetDataClosedWB = False
End Function



  

Betrifft: Frage noch offen von: Mexsalem
Geschrieben am: 16.11.2012 22:25:56

Hallo,

mein Problem ist leider noch nicht gelöst. Hat jemand einen Ansatz, wie man der Lösung näherkommt ?

Viele Grüße
Mexsalem


 

Beiträge aus den Excel-Beispielen zum Thema "Daten in anderer Excel Datei suchen und übertragen"