Formel Sverweis in VBA



Excel-Version: Excel 95
nach unten

Betrifft: Formel Sverweis in VBA
von: Marko Albrecht
Geschrieben am: 11.04.2002 - 14:27:49

Hallo,
ich hoffe mir kann bei meinem, nachfolgend beschriebenen, Problem geholfen werden.

Das Problem ist , daß in der nachstehenen Formel(Wenn, Istfehler, Sverweis) VBA ein Hochkomma in die Formel schreibt und die Formel dadurch nicht Ihre Funktion erfüllt.

Die Bezugszelle der Formel Sverweis wird sozusagen in Hochkommata gesetzt, nur das Exel dann die Formel nicht richtig erkennt.

VBA Formel:

essen = 12
For i = 6 To 150 Step 1
Range("D" & i).Select
ActiveCell.Formula = "=IF(ISERROR(VLOOKUP(B" & i & ",'[Shop_VK-Zahlen 03.04.02.xls]Tabelle1'!R1C2:R82C70," & essen & ",FALSE)),0,VLOOKUP(B" & i & ",'[Shop_VK-Zahlen 03.04.02.xls]Tabelle1'!R1C2:R82C70," & essen & ",FALSE))"
Next i


Excel Formel:
=WENN(ISTFEHLER(SVERWEIS('B6';'[Shop_VK-Zahlen 03.04.02.xls]Tabelle1'!$B$1:$BR$82;12;FALSCH));0;SVERWEIS('B6';'[Shop_VK-Zahlen 03.04.02.xls]Tabelle1'!$B$1:$BR$82;12;FALSCH))


Vielen Dank im Vorraus.

Marko Albrecht

nach oben   nach unten

Re: Formel Sverweis in VBA
von: Benoit
Geschrieben am: 11.04.2002 - 15:12:53

Hast Du probiert, diese Hochkommas zu "sondern":

statt

ActiveCell.Formula = "=IF(ISERROR(VLOOKUP(B" & i & ",'[Shop_VK-Zahlen 03.04.02.xls]Tabelle1'!R1C2:R82C70," & essen & ",FALSE)),0,VLOOKUP(B" & i & ",'[Shop_VK-Zahlen
03.04.02.xls]Tabelle1'!R1C2:R82C70," & essen & ",FALSE))"

ActiveCell.Formula = "=IF(ISERROR(VLOOKUP(B" & i & "," & "'" & [Shop_VK-Zahlen 03.04.02.xls]Tabelle1" & ""' & "!R1C2:R82C70," & essen & ",FALSE)),0,VLOOKUP(B" & i & "," & "'" & "[Shop_VK-Zahlen
03.04.02.xls]Tabelle1" & "'" & "!R1C2:R82C70," & essen & ",FALSE))"
ich gebe zu, es sieht übel aus,
aber dann werden diese Hochkommas separat interpretiert.

Vielleich muss Du sogar die Hochkomma doppeln: "''" (hier mit Leerzeichen dazwischen zu richtig verstehen: " ' ' ")

Viel Spass beim probieren
Benoit

nach oben   nach unten

Re: Formel Sverweis in VBA
von: Marko Albrecht
Geschrieben am: 11.04.2002 - 15:20:42

Hallo Benoit,

ich glaube Du hast mich falsch verstanden oder ich drück mich nicht richtig aus.

Die Hochkammata um die es geht sind die, die (siehe Exel Formel) vor und hinter der Zellenbezeichnung ...Sverweis('B6'... stehen.
Diese Hochkammata verhindern das korrekte arbeiten der Formel.

trotzdem Vielen Dank für Deine Hife

MArko Albrecht


nach oben   nach unten

Re: Formel Sverweis in VBA
von: Alan Hathway
Geschrieben am: 11.04.2002 - 15:55:15

Das ganze habe ich nicht verstanden - gebe ich zu, aber der Ansatz von Benoit ist m.E. doch richtig

Du sagst

Excel Formel:
=WENN(ISTFEHLER(SVERWEIS('B6'; ...............

Aber Du schreibst

ActiveCell.Formula = "=IF(ISERROR(VLOOKUP(B" & i & ",......

Dann fehlt Dir mit Sicherheit ein Hochkomma (oder wie das Ding heisst) nach VLOOKUP( und vor B

Kuck es Dir hochmals genau an.
(Wenn Du ein " in einem Feld/Formel brauchst, musst Du doppeln

ActiveCell.Value="ABC""DEF" produziert ABC"DEF (Achte auf der Anzahl von ")

Alan Hathway

nach oben   nach unten

Re: Formel Sverweis in VBA
von: Marko Albrecht
Geschrieben am: 11.04.2002 - 16:04:07

Hallo Alan,

Ihr habt alle beide recht aber es geht nicht um die Anführungszeichen " sondern um die Hochkommata '.

ActiveCell.Formula = "=IF(ISERROR(VLOOKUP(B" & i & ",......

das B hinter der Klammer ist die Spalte
das i liefert die Zeile über eine Schleife

Falsche Excel Formel =WENN(ISTFEHLER(SVERWEIS('B6'; ...............
Richtige Excel Formel =WENN(ISTFEHLER(SVERWEIS(B6; ...............

vielen Dank

Gruss
Marko Albrecht


nach oben   nach unten

Re: Formel Sverweis in VBA
von: Maik
Geschrieben am: 11.04.2002 - 16:08:48

Hi

sollte dann gehen
ActiveCell.Formula = "=IF(ISERROR(VLOOKUP(" & Chr(66) & i & "," & Chr(39) & "[Shop_VK-Zahlen 03.04.02.xls]Tabelle1" & Chr(39) & "!R1C2:R82C70," & essen & ",FALSE)),0,VLOOKUP(" & Chr(66) & i & "," & Chr(39) & "[Shop_VK-Zahlen 03.04.02.xls]Tabelle1" & Chr(39) & "!R1C2:R82C70," & essen & ",FALSE))"
gruss maik

nach oben   nach unten

Re: Formel Sverweis in VBA
von: Benoit
Geschrieben am: 11.04.2002 - 16:20:06

Meine Gute! Ich habe ja wohl etwas übersehen!

Deine Formel verweist auf 2 verschiedene Zellenbeschreibungen:
erstens das "RC"-Modell, das vom Aufzeichnung des Makros vergeben wurde,
und zweitens das "A1"-Modell, das von Dir eingetragen wurde.
Und genau da, nehme ich an, liegt das Problem.

Statt ...B" & i & "...
Schreibe eher ...R" & i & "C2" & "...
um den "RC"-Modell zu verfolgen.

Dann sollten keine Hochkommatas mehr erscheinen.

Viel Spass beim Probieren
Benoit

nach oben   nach unten

Benoit weiß bescheid :-)
von: Maik
Geschrieben am: 11.04.2002 - 16:38:58

.

nach oben   nach unten

Re: Formel Sverweis in VBA
von: Marko ALbrecht
Geschrieben am: 11.04.2002 - 16:58:29

Hallo Benoit,

VIELEN DANK,daß war es, jetzt funktioniert die Formel.

Du weisst bestimmt auch wie ich mit R...C... eine Zelle direkt ansprechen kann, äquivalent dem Range Befehl?


Nochmals vielen Dank

Marko Albrecht


nach oben   nach unten

Re: Formel Sverweis in VBA
von: Benoit
Geschrieben am: 11.04.2002 - 17:20:37

Das RC-Beschreibungsmodell (Row-Column) ist ein Mischung von relativ und absolute Adressierung, wird aber nur im Application.formulaR1C1 verwendet

R1C1 zielt auf der Zelle A1 der Tabelle oder des definiertes Bereiches, zum Beispiel die selektierte Zelle,
R[1]C1 zielt auf der Zelle der erste Spalte und nächste Zelle der Tabelle oder des definiertes Bereiches,
RC[1] zielt gleiche Zeile, nächste Spalte,
usw.

Viel Spass beim Probieren
Benoit


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Formel Sverweis in VBA"