Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1136to1140
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Match funktion

Match funktion
Sonnenpeter
Hallo,
mit
Sub FindSpalteInAndererArbeitsmappeMitFormel()
Range("A3").FormulaR1C1 = _
"=MATCH(R[-2]C,'C:\Dokumente und Einstellungen\Sonne\Desktop\Grunddaten\[Grunddaten.xlsm] _
Tabelle1'!R2,0)"
End Sub
Kann ich die Datenspalte einer ungeöffneten Arbeitsmappe finden.
Jetzt versuche ich das ganze mit WorksheetFunction.Match
Sub FindSpalteInAndererArbeitsmappeMitWorksheetFunctionMatch()
tester = "'C:\Dokumente und Einstellungen\Sonne\Desktop\Grunddaten\[Grunddaten.xlsm]Tabelle1'! _
R2"
DatCol = Application.WorksheetFunction.Match(118, tester, 0)
End Sub
Ich nehme an, dass ich 'C:\Dokumente und Einstellungen\Sonne\Desktop\Grunddaten\[Grunddaten.xlsm]Tabelle1'!R2 nicht richtig übergebe.
Nur wie stelle ich das an?
Gruß SP
AW: Match funktion
13.02.2010 16:38:31
Reinhard
Hallo Peter,
ungetestet vielleicht so:
DatCol = Application.WorksheetFunction.Match(118, Range(tester), 0)
Gruß
Reinhard
AW: Match funktion
13.02.2010 16:41:54
Gerd
Hallo Peter,
dann musst Du die Datei vermutlich öffnen.
Gruß
Gerd
AW: Match funktion
13.02.2010 17:11:29
Sonnenpeter
Hallo Gerd,
ich will das öffnen der Datei vermeiden.
Vergleich liest auch aus der geschlossenen Arbeitsmappe. Kann Natürlich sein, dass da mit VBA nichts geht?
Gruß SP
AW: Match funktion
13.02.2010 17:09:12
Sonnenpeter
Hallo Reinhard,
leider nein :-(
Gruß SP
AW: Match funktion
13.02.2010 17:12:47
Reinhard
Hallo Peter,
sorry, hab das "ungeöffnet" völlig überlesen.
Frage noch offen.
Gruß
Reinhard
...Erst mal das und dann wäre interessant...
13.02.2010 19:26:17
Luc:-?
...zu wissen, Peter,
was denn in dieser Zelle R2 steht — 118? Wenn ja und alles fkt, liefert das Konstrukt 1 sonst 'Fehler 2042' → also #NV.
Kann aber auch sein, dass das mit geschlossener Mappe nicht so ohne weiteres klappt, aber es gäbe da auch Möglichkeiten...
Gruß Luc :-?
Anzeige
AW: ...Erst mal das und dann wäre interessant...
13.02.2010 20:19:48
Sonnenpeter
Hallo Luc,
in Zelle R2 (Zeile 2) stehen Zahlen die gesucht werden sollen z.B. 118 kann aber auch ne 1 oder ne 75 sein. Die Werte kommen alle nur einmal vor.
Die Tabellenblattformel
Sub FindSpalteInAndererArbeitsmappeMitFormel()
Range("A3").FormulaR1C1 ="=MATCH(R[-2]C,'C:\Dokumente und Einstellungen\Sonne\Desktop\ _
Grunddaten\[Grunddaten.xlsm]Tabelle1'!R2,0)"
End Sub
funktioniert einwandfrei, dachte dann, dass ich es auch komplett mit VBA lösen könnte.
Gruß SP
Was soll das für einen Sinn haben, nach...
13.02.2010 21:29:53
Luc:-?
...unterschiedl Zahlen in nur einer Zelle zu suchen, Peter,
da reicht doch auch ein simpler Vgl wie If Range("R2") = 118 Then oder willst du ein Wertefeld (Array) mit einer einzelnen Zelle vgl? Dann müsste alles umgekehrt notiert* wdn! Das ist aber aus deinem Text nicht unbedingt zu erkennen...
*If IsError(...Match(Range("...R2"), Array(1, 75, 118), 0)) Then — aber wie gesagt, dass muss so nicht fktn. Kann mich erinnern, das schon mal anders gelöst zu haben, und dafür kann es diesen Grund gegeben haben... ;-)
Gruß Luc :-?
PS: Warum immer noch VBA bescheiden, du bist doch schon seit Jahren dabei...! ;-)
Anzeige
AW: Was soll das für einen Sinn haben, nach...
14.02.2010 10:26:30
Sonnenpeter
Hallo Luc,
ich möchte gerne aus der geschlossenen Datei auslesen wo in welcher Spalte einer der kompletten Zeile der Suchwert hinterlegt ist.
Nichts anderes tut die Formel
Range("A3").FormulaR1C1 ="=MATCH(R[-2]C,'C:\Dokumente und Einstellungen\Sonne\Desktop\ _
Grunddaten\[Grunddaten.xlsm]Tabelle1'!R2,0)" wobei R2 für Zeile 2 steht. Das funktioniert ja auch.
Ich suche jetzt ein VBA-Lösung mit Match.
Hoffe, dass ich ich mich einigermaßen klar ausgedrückt habe. Schau Dir den ersten Beitrag noch mal an-
Gruß SP
Habe mich von der Verwendung der R1C1-...
14.02.2010 14:00:36
der
...Adressierung verwirren lassen, Peter...
Das mache ich nämlich NIE!!!
Aber das nutzt dir nichts, denn es ist so wie vermutet → Es geht SO NICHT! Jedenfalls nicht mit reinen VBA-Mitteln. Aus einer geschlossenen Datei kannst du nur mit xleigenen Methoden etwas auslesen. Diese können in VBA nur mittels Evaluate oder evtl noch über ein Execute eines Xl4Makros genutzt wdn. Man kann zwar in VBA mit GetObject (d.i. eine udFkt für VBA, die sich wohl auch im Herber-Archiv finden lassen müsste) Gleiches erreichen, aber das öffnet die andere Mappe verborgen im Hintergrund (nur im VBE-Projektexplorer zu sehen). Folge: Man kann diese Mappe dann nur wieder schließen, indem man die ganze xlSitzung beendet.
Gruß+schöSo, Luc :-?
Anzeige
AW: Habe mich von der Verwendung der R1C1-...
14.02.2010 18:55:32
der
Hallo Luc,
Du weist doch das ich ein Amateur bin, ich Excel doch nur so nebenbei zum Spaß und als Arbeitserleichterung.
Vielen Dank für Deine Unterstützung, wenn ich eine Lösung habe stelle ich diese ein.
Gruß SP
Schon! Aber doch auch schon recht lange... ;-) orT
14.02.2010 19:43:47
Luc:-?
Gruß Luc :-?
AW: Match funktion
13.02.2010 17:20:33
Gerd
Hallo Peter,
probiere es mal so oder so ähnlich (hab 's jetzt nicht getestet).
Sub FindSpalteInAndererArbeitsmappeMitFormel()
Range("A3").Value = _
Evaluate("=MATCH(R[-2]C,'C:\Dokumente und Einstellungen\Sonne\Desktop\Grunddaten\[ _
Grunddaten.xlsm] _
Tabelle1'!R2,0)")
End Sub
Gruß Gerd
AW: Match funktion
13.02.2010 19:01:33
Sonnenpeter
Servus Gerd,
ist ja auch eine Formellösung, ich suche eine VBA-Lösung.
Trotzdem Danke.
Ich stelle noch mal auf offen, es findet sich vielleicht doch noch eine VBA-Lösung.
Gruß SP
Anzeige
AW: Match funktion
13.02.2010 20:30:29
Peter
Hallo SP
so sollte es funktionieren...
Sub FindSpalteInAndererArbeitsmappeMitWorksheetFunctionMatch()
ChDir "C:\Dokumente und Einstellungen\Sonne\Desktop\Grunddaten\"
tester = Workbooks("Grunddaten.xlsm").Worksheets("Tabelle1"). _
Range("R2")
DatCol = Application.WorksheetFunction.Match(118, tester, 0)
End Sub
Gruß
Peter
AW: Match funktion
13.02.2010 20:30:38
Peter
Hallo SP
so sollte es funktionieren...
Sub FindSpalteInAndererArbeitsmappeMitWorksheetFunctionMatch()
ChDir "C:\Dokumente und Einstellungen\Sonne\Desktop\Grunddaten\"
tester = Workbooks("Grunddaten.xlsm").Worksheets("Tabelle1"). _
Range("R2")
DatCol = Application.WorksheetFunction.Match(118, tester, 0)
End Sub
Gruß
Peter
Anzeige
AW: Match funktion
13.02.2010 20:47:26
Sonnenpeter
Hallo Peter,
Danke für Dein Engagement, leider funzt es nicht. Bei tester wird ein Fehler ausgeworfen "Funktion oder Variable erwartet".
Gruß SP

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige