Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

[VBA] Index & Vergleich aus geschlossener Datei
#31
Hey Schauan & andere,

ich habe nachfolgendes Script, welches nun doch mit Excel4Macro arbeitet. Sollte also doch funktionieren?
Code:
Option Explicit

Private Sub CommandButton1_Click()
Dim strPfad$, strTabelle$, sSuchbereich$, sAusgabe$
Dim strSuchWert$
Dim Suchwert As String
Dim Ausgabe1 As String
Dim Ausgabe2 As String
Suchwert = Worksheets("Tabelle1").Range("Suchwert")

If Suchwert <> "" Then
   strSuchWert = Suchwert
   
   If IsNumeric(strSuchWert) Then
    strSuchWert = Replace(strSuchWert, ",", ".")
   Else
    strSuchWert = Chr(34) & strSuchWert & Chr(34)
   End If
           
   strPfad = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\")
     
   strPfad = "'" & strPfad & "[Test.xls]"
       
   strTabelle = "Tabelle1" & "'!"
     
   sAusgabe = Range("A1:B65536").Address(ReferenceStyle:=xlR1C1)
   
   sSuchbereich = Range("F1:F65536").Address(ReferenceStyle:=xlR1C1)
   
   On Error Resume Next
 
   Worksheets("Tabelle1").Range("Ausgabe_1") = ExecuteExcel4Macro( _
   "INDEX(" & strPfad & strTabelle & sAusgabe & ",MATCH(" & strSuchWert & "," & strPfad & strTabelle & sSuchbereich & ",0),1)" _
   )
   If Err.Number <> 0 Then Worksheets("Tabelle1").Range("Ausgabe_1") = ""
   Err.Clear
   
    Worksheets("Tabelle1").Range("Ausgabe_2") = ExecuteExcel4Macro( _
   "INDEX(" & strPfad & strTabelle & sAusgabe & ",MATCH(" & strSuchWert & "," & strPfad & strTabelle & sSuchbereich & ",0),2)" _
   )
   If Err.Number <> 0 Then Worksheets("Tabelle1").Range("Ausgabe_2") = ""
   On Error GoTo 0
Else
   Worksheets("Tabelle1").Range("Ausgabe_1") = "": Worksheets("Tabelle1").Range("Ausgabe_2") = ""
End If
End Sub

Fraglich halt, ob ich hier wie in meiner Ausgangsformel meinen Index-Vergleich mit mehreren Suchkriterien verwenden kann  Confused

Code:
INDEX(Blatt!I715:AF854;VERGLEICH(Standort;Blatt!D715:D854;0);VERGLEICH(Vormonat;Blatt!I8:AF8;0))

LG
Antworten Top
#32
Hallöchen,

Zitat:Fraglich halt, ob ich hier wie in meiner Ausgangsformel meinen Index-Vergleich mit mehreren Suchkriterien verwenden kann

Das Ergebnis müsstest Du ja nun schon gesehen haben. Und?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#33
Nö. Ich bekomm's nicht hin .. :16:
Hast du einen Tipp?
Antworten Top
#34
Hallöchen,

dachte ich mir. Nicht umsonst schrieb ich

Zitat:Deswegen die Alternativvorschläge.
Im Online-Excel ist einer ganz genau beschrieben. Das kann man alles nachbauen, da steht, was man dazu für Beispieldateien mit welchen Daten füllen soll usw.

Da könntest Du erst mal grundlegend die Funktion von ADO anschauen und dann schauen wir, wie wir es für Dich hinbekommen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#35
Ok, aber ADO ist doch wieder etwas völlig anderes. Das von mir eben gepostete Script verstehe ich wenigstens halbwegs  :19:
Kannst du mir dabei nicht helfen?
Antworten Top
#36
Hallo jules,

Du arbeitest ja schon mit VBA. Was ist der Grund, die externe Datei nicht zu öffnen?

Gruß Uwe
Antworten Top
#37
Hi Uwe,

genau genommen handelt es sich um zwei externe Dateien, dessen (gesuchte) Werte in meine Hauptmappe eingefügt werden sollen. Die Hauptmappe besteht als 8-10 einzelnen, geschlossenen Mappen aus denen verschiedene Werte gezogen werden. Die meisten hierbei wie gehabt über Excel4Macro mit bestimmter Zeilen/Spalten angabe. Nur bei den letzten zwei Dateien ist eine Suche mit mehreren Bedingungen notwendig, da sich die Datei öfters updated und sich die Zeilen/Spalten verschieben. Es wäre mühsam die Dateien vorab zu öffnen und im Hintergrund laufen zu lassen. Des weiteren arbeiten auch andere Kollegen mit der Datei. Ohne sie zu öffnen wäre es kompakter  und es schleichen sich weniger Fehler ein.

VG
Antworten Top
#38
Da es anscheinend mit einer geschlossenen Datei nicht möglich ist .. 
hat jemand eine Idee, wie ich meine Abfrage durchführen kann, indem die Datei sich im Hintergrund öffnet?  Huh
Antworten Top
#39
Hallo Jules,

da hat keiner was gesagt, dass es nicht möglich ist. Ich hatte aber weiter oben schon auf fehlenden Input hingewiesen. Solange der Aufbau Deiner Datei nicht 100% klar ist, kann man auch nur auf die Theorie verweisen und nichts konkretes programmieren.

Ansonsten, wenn Deine Formel bei geöffneter Datei funktioniert, ist es doch relativ easy. Das sind dann diese 3 Schritte:

'beide Dateien öffnen
Workbooks.Open …
Workbooks.Open …
'Formel berechnen
ThisWorkbook.Calcukate
'Dateien schließen
ActiveWorkbook.Close
ActiveWorkbook.Close

Die Dateien sollten sich bei rückwärtiger Reihenfolge entsprechend aktivieren und geschlossen werden können. Sicherer wäre aber in jedem Fall, die Dateien konkret anhand ihres Namens zu schließen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#40
Grüß dich mein Lieber,

danke für deine Antwort.
Ich versteh langsam nur noch Bahnhof :)
Beispiel Mappen hatte ich hier hochgeladen. Vielleicht sagt dir das etwas mehr?

Grüße
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste