Anzeige
Archiv - Navigation
932to936
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
932to936
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sprach ID auslesen von SAP

Sprach ID auslesen von SAP
05.12.2007 16:26:25
SAP
Hallo Gurus,
folgendes Problem:
Ich muss aus SAP heraus eine Excel-Datei erstellen. In einer Zelle wird eine Formel
eingetragen. Problem: Die Anwender haben mal deutsch mal englische Excel-Version.
Deshalb möchte ich je nach LanguageID die Formel mal mit IF() mal mit WENN() aufbauen.
Soweit bin ich schon:
* start Excel
CREATE OBJECT h_excel 'EXCEL.APPLICATION'.
SET PROPERTY OF h_excel 'Visible' = 1. "0=dunkel, 1=hell
CALL METHOD OF h_excel 'LanguageSettings' = h_language.
GET PROPERTY OF h_language 'Application' = id. "ok
GET PROPERTY OF h_language 'Creator' = int2. "ok
GET PROPERTY OF h_language 'Parent' = idy. "ok
Mein Problem liegt hier:
GET PROPERTY OF h_language 'LanguageID' =enum_langid. "nok
Frage: Wie muss ich enum_langid definieren, damit ich die Daten von Excel korrekt erhalte?
Hab schon viel rumprobiert, aber es soll nicht klappen.
Für eure Hilfe wäre ich sehr dankbar.
Gruß
roytop

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sprach ID auslesen von SAP
06.12.2007 16:38:00
SAP
Hi Roytop,
Falls du die Formel, sowieso mit VBA in die Zelle einträgst, erübrigt sich eine Übersetzung, die wird bei der Anzeige automatisch von der entspr. Excel-Version gemacht.
Also nach dem Schema:

CELLS(1,1).Formula = "=SUM(B1:B20)"


GreetZ Renee

AW: Sprach ID auslesen von SAP
06.12.2007 17:23:00
SAP
Hallo Renee,
das geht mit SAP nicht direkt über VBA. Die Formel erstelle ich folgendermaßen:
CONCATENATE '=IF(' l_sx ';(' l_rx '/' l_qx '+' l_sx ')*(100-' l_ux ')/100;' l_tx '*(100-' l_ux ')/100)' INTO p_netto_formel.
Wird also als Text zusammengesetzt und die Variablen werden dann hier mitgegeben:
CALL METHOD OF h_excel 'Cells' = h_zl EXPORTING #1 = i #2 = j.
SET PROPERTY OF h_zl 'FormulaLocal' = val.
------------------------------------------------------
Mittlerweile hab ich noch eine Möglichkeit herausgefunden die Sprache abzugreifen:
Application.International(xlCountryCode)
Der CountryCode gibt mir ne 1 für engl. Version.
Leider krieg ich das in SAP nicht hin!
GET PROPERTY OF h_excel 'International' = idz. "ok
CALL METHOD OF idz 'International' = idy. "nok
GET PROPERTY OF idz 'xlCountryCode' = xlcountrycode. "nok
GET PROPERTY OF idy 'xlCountryCode' = xlcountrycode. "nok
idz ist definiert als: DATA: idz TYPE ole2_object.
Das klappt auch nicht den xlCountryCode auszulesen in SAP.

Anzeige
AW: Sprach ID auslesen von SAP
06.12.2007 19:14:00
SAP
Hi,
versuch mal, statt der benannten Konstanten den eigenlichen Wert zu übergeben.
xlCountryCode entspricht dem Wert 1 (Long).
mfg Dan

AW: Sprach ID auslesen von SAP
07.12.2007 14:07:08
SAP
Hallo Dan,
eigentlich möchte ich die Constante einlesen.
Ich dachte je nach Excel Sprachversion ist die Konstante xlCountryCode mal 1(engl) bzw. 49 (deutsch) ?
Oder lieg ich daneben?

AW: Sprach ID auslesen von SAP
07.12.2007 15:05:00
SAP
Hi Roy,
Eine Konstante ist eine Konstante ist eine Konstante!
Wenn du denn Wert deiner EXCEL-Landesversion oder das Ländersetting auslesen willst:

longVersion = Application.International(xlCountryCode)
longCtrySetting = Application.International(xlCountrySetting)


...wobei ich immer noch nicht verstehe, was der Zusammenhang mit SAP und der Länderversion von EXCEL mit Formeln zu tun hat, die du per VBA in Zellen schreibst. Wie gesagt alle Excel verstehen ENGLISCH in der .Formula Eigenschaft. (VBA wird ja auch nicht in deutsch übersetzt)
GreetZ Renee

Anzeige
AW: Sprach ID auslesen von SAP
07.12.2007 15:16:25
SAP
Hi,
ohne einen Verweis auf die Excelbibliothek ist die benannte Konstante xlCountryCode völlig nutzlos,
hinter dieser Konstanten xlCountryCode verbirgt sich der Long-Wert 1, der Rückgabewert kann dann,
je nach Sprache unterschiedlich sein, z.B. 49 für Deutsch.
Sie dir dazu mal Application.International in der Hilfe an.
mfg Dan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige