Microsoft Excel

Herbers Excel/VBA-Archiv

Sverweis mit variierender Matrix

Betrifft: Sverweis mit variierender Matrix von: Arif
Geschrieben am: 03.09.2014 10:42:16

Hallo Community,

ich habe einen Code, der jeden Tag eine aktuelle Datei öffnet.
(Jeden Tag mit aktuellem Datum, Beispiel Format : 20140903_Demo.xlsx)

Im Nächsten Schritt soll täglich ein sVerweis auf die täglich neue Datei gezogen werden.
Ich habe versucht in den Sverweis die Variablen aus meinem vorherigen Code zu einzubauen, jedoch klappt das nicht wie von mir gedacht.

Als Matrix wollte ich im Sverweis "Format(Date, "yyyymmdd") & T " nehmen
(wobei T eine vorher definierte Variable ist für "_Demo.xlsx")
Was aber wie gesagt nicht geklappt hat.

Hat jemand eine Lösung dafür?

Mit freundlichen Grüßen

  

Betrifft: AW: Sverweis mit variierender Matrix von: Rudi Maintaire
Geschrieben am: 03.09.2014 11:00:36

Hallo,
wenn man deinen Code und die Tabelle nicht kennt, ist's schwierig.

Schema:

.FormulaR1C1 = "=vlookup(RC1,'[" &Format(Date, "yyyymmdd") & T &"]Tabelle1'!C1:C3,3,0)"
Gruß
Rudi


  

Betrifft: AW: Sverweis mit variierender Matrix von: Arif
Geschrieben am: 03.09.2014 11:12:52

Hallo,

mein Fehler, hier ein wenig detailliertere Infos.

Der Code der die Datei täglich öffnet lautet:

       Dim Pfad_LB, Teil_LB
       
       Pfad_LB = "C:\Test"        
       Teil_LB = "_Bestand.xlsx"
       
       Workbooks.Open Filename:=Pfad_LB & Format(Date, "yyyymmdd") & Teil_LB
Geöffnet wird durch dieses Makro die täglich aktuelle Datei mit Beständen (Name "*Datum*_Bestand.xlsx".(Nummer,Name,Menge etc.)

Ausgangssituation ist eine Arbeitsmappe(nennen wir sie mal "Mappe1") in der nur Artikelnummern in Spalte A stehen.
Ziel ist es mit einem Sverweis die Namen zu den jeweiligen Artikelnummern zu ziehen.

Ich hoffe dies gibt ausreichend Kontext um mir bei meinem Problem zu helfen.

Beispiel:
https://www.herber.de/bbs/user/92450.xlsx


  

Betrifft: AW: Sverweis mit variierender Matrix von: Arif
Geschrieben am: 03.09.2014 11:39:54




  

Betrifft: AW: Sverweis mit variierender Matrix von: Robert
Geschrieben am: 03.09.2014 11:52:26

Hallo Arif,

am einfachsten wäre vmtl im gleichen Makro den SVerweis entsprechend neu zu schreiben

ZielRange.FormulaR1C1 = "=VLOOKUP(RC[-1],'2. Arbeitsmappe(''DATUM''_BESTAND'!C1:C2,2,0)"
Als ZielRange entsprechend die Spalte mit den Produktnamen definieren.


  

Betrifft: AW: Sverweis mit variierender Matrix von: Arif
Geschrieben am: 05.09.2014 10:37:54

Ich verstehe die zu ersetzenden Bereiche noch nicht ganz, kannst du mir dies nochmal genau erläutern?

ZielRange.FormulaR1C1 = "=VLOOKUP(RC[-1],'2. Arbeitsmappe(''DATUM''_BESTAND'!C1:C2,2,0)"
Zielrange -ist denke ich klar, z.B. B2.

Arbeitsmappe - Da blicke ich nicht durch, der Dateiname ist täglich aktuell ( 20140905_Bestand.xlsx) Muss ich das in die Formel nicht als Variable einbauen?
Ich weiß nicht was ich mit "Arbeitsmappe" anfangen soll, theoretisch ist der Name
"Pfad_LB & Format(Date, "yyyymmdd") & Teil_LB"

Kannst du -oder irgendjemand- mir das noch einmal genau erläutern?


  

Betrifft: AW: Sverweis mit variierender Matrix von: Robert
Geschrieben am: 05.09.2014 13:36:12

Zielrange kann auch eine ganze Spalte sein (der vorteil der R1C1 schreibweise)

Aufbau ist ein SVerweis in englischer schreibweise. =Vlookup(Suchwert,Suchmatrix,Spaltenindex,0 für genaue Übereinstimmung)

1.Variable ist der Suchwert in R1C1 Schreibweise:
Beispiel: Linke Nachbarzelle der gleichen Reihe

RC[-1]

Danach kommt die Suchmatrix in R1C1 Schreibweise.
Beispiel: Spalten 1 - 3 von Tabelle1 aus Beispiel.xlsm
'[Beispiel.xlsm]Tabelle1'!C1:C3

Danach der Spaltenindex für den Zielwert und genaue Übereinstimmung ja/nein

Beispiel:
.FormulaR1C1 "=VLOOKUP(RC[-1],'[Beispiel.xlsm]Tabelle1'!C1:C3,2,0)"
Wenn du nun in Dateinamen Variablen Verwenden willst, musst du die Formel mit & "unterbrechen" und nach Einfügen der Variablen wieder fortführen:

Beispiel mit der Variable "Dateinummer" für die Auswahl der Quelldatei Beispiel11880.xlsm
Dateinummer = 1880
.FormulaR1C1 "=VLOOKUP(RC[-1],'[Beispiel" & DateiNummer & ".xlsm]Tabelle1'!C1:C3,2,0)"
Viele Grüße
Robert


  

Betrifft: AW: Sverweis mit variierender Matrix von: Arif
Geschrieben am: 05.09.2014 16:17:31

Hallo Robert,

ich denke der Groschen ist jetzt größtenteils gefallen, nur an der Matrix hapert es noch.

Mein sVerweis sieht bis jetzt so aus

.FormulaR1C1 "=VLOOKUP(R3C1,'[Beispiel" & Dateinummer & ".xlsm]Tabelle1'!C1:C3,3,0)"
Ich verstehe immer noch nicht wie ich den Dateinamen "Pfad_LB & Format(Date, "yyyymmdd") & Teil_LB" eingebaut bekomme - denn das ist ja der Dateiname-, und was hat es mit der Zahl 1880 auf sich?


  

Betrifft: AW: Sverweis mit variierender Matrix von: Robert
Geschrieben am: 08.09.2014 09:20:41

Hallo Arif,

Groschen ist anscheinend noch auf dem Weg / noch nicht ganz gefallen :)

Dateinummer = 1880
.FormulaR1C1 "=VLOOKUP(RC[-1],'[Beispiel" & DateiNummer & ".xlsm]Tabelle1'!C1:C3,2,0)"

Hier Wird in den Dateinamen eine Variable mit dem Namen "DateiNummer" eingebaut.
Je nachdem wie du "Dateinummer" vorher benennst, ändert sich die Datei.
z.B. mit
DateiNummer = Format(Date, "yyyymmdd")
Wird als Dateinummer das Aktuelle Datum Festgelegt
Im Anschluss wird mit
.FormulaR1C1 "=VLOOKUP(RC[-1],'[Beispiel" & DateiNummer & ".xlsm]Tabelle1'!C1:C3,2,0)"

die Datei "Beispiel20140908.xlsm" benutzt (eben entsprechend dem aktuellen Datum)

Nun zu dir Spezifisch:

Zunächst muss geklärt sein, was von deinem Dateinamen denn jetzt als Variable und was als Text übergeben wird.

Du sagst das hier wäre dein Dateiname:
"Pfad_LB & Format(Date, "yyyymmdd") & Teil_LB"

Sind Pfad_LB und Teil_LB Variablen? oder heißt das File tatsächlich so (z.B. "Pfad_LB20140908TeilLB.xlsx")

Viele Grüße
Robert


  

Betrifft: AW: Sverweis mit variierender Matrix von: Arif
Geschrieben am: 08.09.2014 10:21:48

Hallo Robert,

vielen Dank für deine Hilfe.
Eventuell habe ich mich unklar ausgedrückt, wodurch wir ein wenig aneinander vorbei gesprochen haben.
Als Referenz hierzu kann ggf. dieser Beitrag genommen werden :

https://www.herber.de/forum/archiv/1376to1380/t1379278.htm#1379278


Ich baue den Dateinamen quasi aus 3 Bausteinen auf, um täglich die aktuelle Datei zu öffnen:

Pfad_LB ist die Variable für den Dateipfand - bleibt fix-
Teil_LB ist der Zusatz, den die Datei jeden Tag hat - ebenfalls fix-
Format(Date, "yyyymmdd") ist das aktuelle Datum.


Das Resultat hieße dann:

"C:\Testverzeichnis\20140908_Beispiel.xlxs"

Jene täglich neue Datei soll dann eben die aktuelle Matrix im sVerweis bilden.


  

Betrifft: AW: Sverweis mit variierender Matrix von: Robert
Geschrieben am: 08.09.2014 11:09:41

Das bedeutet ja in dem Fall, dass du 3 Variablen hast, die den Dateinamen bilden.

.FormulaR1C1 "=VLOOKUP(RC[-1],'[" & PfadLB & Format(Date, "yyyymmdd") & TeilLB & "]Tabelle1'!C1:C3,2,0)"
z.B. mit

PfadLB = "C:\OrdnerdeinerWahl\Liste_"
TeilLB = "_V3.xlsx"

Wird Folgende Datei benutzt:
C:\OrdnerdeinerWahl\Liste_20140908_V3.xlsx
Grüße


 

Beiträge aus den Excel-Beispielen zum Thema "Sverweis mit variierender Matrix"