Discussion:
Formel per VBA ändern
(zu alt für eine Antwort)
Raimo Becker
2005-01-12 10:31:02 UTC
Permalink
Hallo zusammen,

ich habe ein Problem mit den SVERWEISEN; wie kann ich mit dem
VBA-Formel-Befehl
am Ende die Spaltenzuweisung ändern. Ich will also bei
SVERWEIS(I18;blabla!§xx:$yy$;spalte)
nur die spalte ändern. leider kann ich die Form nicht verändern, da das Tool
schon genutzt wird.
Ich hatte an irgendwas mit
Cells (x,y).Formula ="VLOOKUP(I18;blabla!§xx:$yy$;"&" spalte & ")"
wobei mit der Anfangsteil mit den Bezügen aber nicht flöten gehen darf.
geht das irgenwie, das die formel eingelesen wird aber nur die variable
spalte geändert wird??

Danke im voraus
Raimo
stefan onken
2005-01-12 12:37:03 UTC
Permalink
hallo Raimo,
Post by Raimo Becker
Hallo zusammen,
ich habe ein Problem mit den SVERWEISEN; wie kann ich mit dem
VBA-Formel-Befehl
am Ende die Spaltenzuweisung ändern. Ich will also bei
SVERWEIS(I18;blabla!§xx:$yy$;spalte)
nur die spalte ändern. leider kann ich die Form nicht verändern, da das Tool
schon genutzt wird.
Ich hatte an irgendwas mit
Cells (x,y).Formula ="VLOOKUP(I18;blabla!§xx:$yy$;"&" spalte & ")"
wobei mit der Anfangsteil mit den Bezügen aber nicht flöten gehen darf.
geht das irgenwie, das die formel eingelesen wird aber nur die variable
spalte geändert wird??
Danke im voraus
Raimo
probiers mal so:

formel = Range("D1").FormulaLocal
MsgBox Left(formel, InStrRev(formel, ";")) &"3)"
'Range("D1").FormulaLocal = Left(formel, InStrRev(formel, ";")) & "3)"

Die Zelladresse D1 an deine Bedingungen anpassen.
InStrRev gibt es erst ab XL2000, man kann sie für XL97 aber nachbilden. Die
Funktion sucht "von hinten" nach dem ersten Semikolon.
Wichtig ist der Unterschied zwischen Formula und FormulaLocal. Letzteres
gibt die deutsche Schreibweise zurück (Also SVERWEIS, mit Semikola) . Bei
Verwendung von Formula müsstest du per InStrRev nach einem Komma suchen.


Gruß
stefan
Raimo Becker
2005-01-12 12:59:08 UTC
Permalink
Post by stefan onken
hallo Raimo,
Post by Raimo Becker
Hallo zusammen,
ich habe ein Problem mit den SVERWEISEN; wie kann ich mit dem
VBA-Formel-Befehl
am Ende die Spaltenzuweisung ändern. Ich will also bei
SVERWEIS(I18;blabla!§xx:$yy$;spalte)
nur die spalte ändern. leider kann ich die Form nicht verändern, da das Tool
schon genutzt wird.
Ich hatte an irgendwas mit
Cells (x,y).Formula ="VLOOKUP(I18;blabla!§xx:$yy$;"&" spalte & ")"
wobei mit der Anfangsteil mit den Bezügen aber nicht flöten gehen darf.
geht das irgenwie, das die formel eingelesen wird aber nur die variable
spalte geändert wird??
Danke im voraus
Raimo
formel = Range("D1").FormulaLocal
MsgBox Left(formel, InStrRev(formel, ";")) &"3)"
'Range("D1").FormulaLocal = Left(formel, InStrRev(formel, ";")) & "3)"
Die Zelladresse D1 an deine Bedingungen anpassen.
InStrRev gibt es erst ab XL2000, man kann sie für XL97 aber nachbilden. Die
Funktion sucht "von hinten" nach dem ersten Semikolon.
Wichtig ist der Unterschied zwischen Formula und FormulaLocal. Letzteres
gibt die deutsche Schreibweise zurück (Also SVERWEIS, mit Semikola) . Bei
Verwendung von Formula müsstest du per InStrRev nach einem Komma suchen.
Gruß
stefan
wenn ich das "for Each cell " mache müsste es klappen!

Danke schön
Raimo
stefan onken
2005-01-12 13:37:03 UTC
Permalink
hi Raimo,
Post by Raimo Becker
wenn ich das "for Each cell " mache müsste es klappen!
Danke schön
Raimo
bitte gerne.
"Für den Hinterkopf": SVERWEIS hat ja einen weiteren Parameter, der hinter
dem Spaltenindex stehen kann. In dem Fall müsste man InStrRev einen Startwert
übergeben.

Lesen Sie weiter auf narkive:
Loading...