Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1592to1596
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

VBA SVERWEIS andere Arbeitsmappe

VBA SVERWEIS andere Arbeitsmappe
21.11.2017 18:44:34
FAUBEA
Hallo liebes Community,
folgende Anforderung:
ab Feld C8 stehen meine Bezugsdaten, die länge der Tabelle ist frei.
In D8 und E8 möchte ich Informationen aus einer anderen Excel Arbeitsmappe nun einfügen, die auf meine Bezugsdaten in C8 basieren.
Die andere Excel Arbeitsmappe liegt immer am selben Speicherort und sollte nicht manuell geöffnet und geschlossen werden müssen, sondern alles per Makro.
Ihr Experten habt hierfür bestimmt eine ganz simple Lösung. :)
Vielen lieben Dank im Voraus

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA SVERWEIS andere Arbeitsmappe
21.11.2017 18:53:33
Daniel
Hi
ja, ganz einfach:
Per Marko die SVerweis-Formel mit externen Zellbezug in die Zelle schreiben und bei Bedarf hinterher die Formeln durch ihren Wert ersetzen.
Gruß Daniel
AW: VBA SVERWEIS andere Arbeitsmappe
21.11.2017 19:24:01
FAUBEA
Danke für deine Antwort.
Und wie könnte so etwas aussehen? :)
AW: VBA SVERWEIS andere Arbeitsmappe
21.11.2017 19:41:44
Daniel
HI
naja, das eingeben einer Formel kannst du doch mit dem Recorder aufzeichnen!
um in einer Zelle eine Formel durch ihren Wert zu ersetzen schreibt man dann einfach (Zelladresse bitte anpassen):
Range("A1").Formula = Range("A1").Value

das funktioniert auch mit größeren Zellbereichen, dh wenn man mehrere Formeln hat, kann man es für alle Formeln in einem Schritt machen, sofoern die Formeln einen lückenlosen Zellblock bilden:
Range("A1:B2").Formula = Range("A1:B2").Value
oder du machst es mit KOPIEREN - INHALTE EINFÜGEN WERTE, das kannst du wieder mit dem Recorder aufzeichnen.
Gruß Daniel
Anzeige
AW: VBA SVERWEIS andere Arbeitsmappe
21.11.2017 19:49:20
FAUBEA
Ja aber wie öffne ich die zweite Arbeitsmappe mit den Daten und wie verweise ich auf eine andere Arbeitsmappe, das klappt leider nicht über den Recorder
AW: VBA SVERWEIS andere Arbeitsmappe
21.11.2017 19:55:11
Daniel
HI
du musst die Datei nicht öffnen.
du trägst einfach die Formel mit dem Externen Zellbezug in die Zelle ein und zeichnest das mit dem Recoder auf.
in Zelle muss im Prinzip diese Formel (Zellbezüge und Dateipfad und -name anpassen):
=SVerweis(C8;'C:\Ordner1\...\OrdnerX[Dateiname.xlsx]TabelleX'!A:B;2;falsch)
beachte die Hochkommas, das erste am Anfang und das zweite nach dem Tabellenblattnamen vor dem Ausrufezeichen.
der Dateiname muss in eckige Klammern gesetzt werden.
Gruß Daniel
Anzeige
AW: VBA SVERWEIS andere Arbeitsmappe
21.11.2017 20:24:14
FAUBEA
Super, das wusste ich nicht, dass das so geht.
Bin gerade am rumprobieren. Sieht so aus:
Sub SVERWEIS()
' SVERWEIS Makro
Range("D8").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-1],'C:\xx\xx\xx\[Infodaten.xlsx]Tabelle1'!C[-3]:C[-1],2,FALSE)"
Range("F8").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-1],'C:\xx\xx\xx\[Infodaten.xlsx]Tabelle1'!C[-5]:C[-3],3,FALSE)"
End Sub
So jetzt kommt es aber vor, dass mal ein Feld leer ist, z.B. C9, dann steht #NV drin, das könnte ich zwar über suchen und ersetzen auch ersetzen, aber gibt es dafür auch eine Lösung?
Und wie lass ich das bis zum letzter Zeile durchrattern, wenn z.B. in C100 noch etwas drin steht?
Und wie füge ich keine Formel, sondern nur den Inhalt ein?
Vielen Dank für deine Geduld :)
Anzeige
AW: VBA SVERWEIS andere Arbeitsmappe
21.11.2017 20:33:28
Daniel
Hi
wenn man das #NV nicht haben will, löst man das direkt in der Formel:
=WennFehler(SVerweis(...);"")
oder auch, um es nur bei leerem C9 zu vermeiden:
=Wenn(C9="";"";SVerweis(C9;...))
Die Formel kann man auch in mehrere Zellen gleichzeitig schreiben:
Range("D8:D100").FormulaR1C1 = "=VLookUp(RC[-1];....)" 
wenn die letzte befüllte Zeile variabel sein kann und erst noch ermittelt werden muss:

Range("D8:D" & Cells(Rows.Count, 3).End(xlup).Row).FormulaR1C1 = "=VLookUP(...)

wie du hinterher die Formel durch die Werte ersetzt, habe ich dir schon erklärt.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige