Clever-Excel-Forum

Normale Version: [VBA] Index & Vergleich aus geschlossener Datei
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5
Hallöchen,

Datei öffnen, Rechnen und Schließen kann man sicher nicht nur auf einem Bahnhof :15:

Ansonsten,
Zitat:Beispiel Mappen hatte ich hier hochgeladen.
glaub ich nicht. Jedenfalls nicht in diesem Thread, oder hab ich da was übersehen ?
Gern nochmal im Anhang Smile

Hier sollen Werte in "Daten.xlsx" gesucht werden, welche in Mappe1 stehen. Der gefundenen Wert soll dann in Mappe1 erscheinen.
Hi Jules,

ich habe etwas "gefllickt", bin kein Profi, aber es funktioniert! :)
Musst noch den Ordner entsprechend anpassen!

Da kommt von Andre oder andere Profis hier bestimmt was besseres! :)


LG
Alexandra
Wie klasse bist du denn??   :18: :19:

Das funktioniert doch schon prima! Ich habe das Makro aus der Daten-Datei in Mappe1 gepackt, da ich nur schwerlich an der Daten-Datei etwas ändern kann. Funktioniert aber auch so.

Jetzt teste ich mal mit meinen Original Daten.. Ich bin gespannt.

1000 Dank, jetzt schon!

-
Falls jemand der "Profis" noch Anmerkungen hat, gern
Hallöchen,

hier mal der Ansatz mit ADO. Als Abfragebereich habe ich den Bereich Tabelle1$D5:AF23 festgelegt.
Bei der Abfrage gibt es zwei Punkte zu beachten. Zum einen enthält die Spalte, wo die zweite Abfragebedingung steht, keine Überschrift. Da müsste was hin. Ich habe hier mal "Willi" als Überschrift genommen / eingetragen un ddie Datendatei damit gespeichert. Zum anderen sind die Daten als Spaltenüberschriften ungünstig. Ich habe daher eine Zeilenbereich abgefragt und für März 19 die Feldnummer 19 genommen (Spalte D = Feld 0). Wenn Du die Spaltennummer anhand des gesuchten Monats berechnen kannst, wäre das gut. Ansonsten :22:

Code:
Public Sub AdoTest()
'Variablendeklaration, Objekte fuer LateBinding
Dim oAdoConnection As Object, oAdoRecordset As Object
Dim sAdoConnectString As String, sPfad As String, sQuery As String
Dim oZielStartRange As Range
'Bei Fehler weiter mit Fehlerbehandlung
On Error GoTo Fehler
'Datendatei - hier im gleichen Pfad wie diese Datei
sPfad = ThisWorkbook.Path & "\Daten.xlsx"
'Zielbereich festlegen
Set oZielStartRange = ThisWorkbook.Worksheets("Ziel").Range("b2")
'Conection setzen
Set oAdoConnection = CreateObject("ADODB.CONNECTION")
'Connectionstring bilden
sAdoConnectString = "Provider=Microsoft.ACE.OLEDB.12.0;" _
      & "Extended Properties=""Excel 12.0;HDR=YES"";" _
      & "Data Source=" & sPfad & ";"
'Connection oeffnen
oAdoConnection.Open sAdoConnectString
'Abfrage bilden - Pseudospaltenname "Willi" in Datendatei eingefuegt
sQuery = "Select * from [Tabelle1$D5:AF23] where Standort='M?nchen' and Willi='CoS (%)'"
'Recordset setzen
Set oAdoRecordset = CreateObject("ADODB.RECORDSET")
'Mit dem Recordset ... oeffnen und ein Feld auslesen
With oAdoRecordset
    .Source = sQuery
    .ActiveConnection = oAdoConnection
    .Open
    MsgBox .Fields(19).Value 'Feldnummer (Spalte) ggf. berechnen?
'Ende Mit dem Recordset
  End With
'Sprungmarke zum beenden
Aufraeumen:
  'Bei Fehler weiter
  On Error Resume Next
  'Verbindung schliessen und ruecksetzen
  oAdoRecordset.Close
  oAdoConnection.Close
  Set oAdoRecordset = Nothing
  Set oAdoConnection = Nothing
  'Makro verlassen
  Exit Sub
'Sprungmarke fuer Fehlerbehandlung
Fehler:
  MsgBox "Fehler: " & Err.Description
  Resume Aufraeumen
End Sub
Seiten: 1 2 3 4 5