ABAP nach Excel mit Formel, aber wie?

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

ABAP nach Excel mit Formel, aber wie?

Beitrag von DeMa (ForumUser / 13 / 0 / 0 ) »
Hallo zusammen,

ich habe ein kleines Testprogramm geschrieben. Ziel soll sein, dass er in Excel die Daten überträgt und auch eine Formel (Wenn-Dann-Bedingung).

Das Excelblatt, als auch die Daten überträgt er, jedoch nicht die Formel.

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report ZDEMA_TEST84
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zdema_test84.
INCLUDE ole2incl.
DATA: excel    TYPE ole2_object,
      workbook TYPE ole2_object,
      sheet    TYPE ole2_object,
      zelle    TYPE ole2_object.
DATA: zeile  TYPE i. "Zeile. Wird zur Laufzeit gesetzt
DATA: spalte TYPE i VALUE 1. "immer in Spalte 1
DATA: sy_tabix LIKE sy-tabix.

TYPES: BEGIN OF ty,
         value(30) TYPE c,
       END OF ty.
DATA:wa TYPE ty.
DATA:itab TYPE TABLE OF ty.

START-OF-SELECTION.

  wa-value = '1'.
  APPEND wa TO itab.
  wa-value = '=wenn(A3="2";"X";"")'.
  APPEND wa TO itab.

  CREATE OBJECT excel 'excel.application'.
  SET PROPERTY OF excel 'visible' = 1.
  CALL METHOD OF excel 'Workbooks' = workbook.
  CALL METHOD OF workbook 'Add'.
  CALL METHOD OF excel 'Worksheets' = sheet
  EXPORTING #1 = 1.

  CALL METHOD OF sheet 'Activate'.
  SET PROPERTY OF sheet 'Name' = 'Test1'.

  LOOP AT itab INTO wa.
    sy_tabix = sy-tabix. "Call method of sheet setzt sy-tabix neu
    zeile = sy-tabix.
    CALL METHOD OF sheet 'Cells' = zelle
                EXPORTING #1 = zeile
                          #2 = spalte.
    IF sy_tabix = '1'.
      SET PROPERTY OF zelle 'Value' = wa-value.
    ELSE.
      SET PROPERTY OF zelle 'FormulaR1C1' = wa-value.
    ENDIF.
  ENDLOOP.
Hat jemand eine Idee, wie ich die Formel nach Excel übertragen kann?

vg
Marcel

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: ABAP nach Excel mit Formel, aber wie?

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
Hallo Marcel,

ich bin leider auch nicht viel weiter gekommen. Aber
1. die PROPERTY der Zelle für die Bedingung heißt 'Formula' oder man kann auch 'Value' nehmen.
2. die logischen Ausdrücke in der Bedingung werden durch Kommata getrennt, nicht durch Semikolons. (Ich weiß, ich weiß in Excel nimmt man Semikolon, aber in ABAP Kommata).
3. Wenn du den logischen Ausdruck auf A1=1 umbiegen willst um zu testen, solltest du die Hochkomma vor 1 weglassen. Also

Code: Alles auswählen.

wa-value = '=wenn(A1=1;"X";"")'.
Wenn du das anpasst wirst du aber leider enttäuscht sein, denn Excel setzt vor das 'WENN' ein '@' und quittiert diese Änderungen mit #NAME?.

Der Witz ist, wenn man in Excel in der Bearbeitungszeile die Eingaben nicht ändert sondern einfach mit Enter bestätigt, frisst er die Formel. Und es funzt.

Vorhin waren wir noch am Abgrund, jetzt sind wir ein Stückchen weiter. 😳 Aber
vielleicht findet sich ja noch jemand anderes mit einer besseren Lösung.

Re: ABAP nach Excel mit Formel, aber wie?

Beitrag von Xilukarim (ForumUser / 58 / 11 / 5 ) »
Hallo,

als erstes ist es sehr nützlich, die ganze Sache in VBA auszuprobieren, und in den Überwachungsausdrücken mal nach den Eigenschaften einer Zelle zu sehen, wenn da eine Formel drinsteht. FormulaR1C1 scheint eine "Buchstabenunabhängige" Darstellung zu sein, "=A1+B1" sieht da z.B. so aus: "=RC(-2)+RC(-1)". In FormulaLocal werdet ihr mehr Glück haben, da stehen die Formeln so drin, wie ihr sie auch eintippt, da werden wahrscheinlich auch die Semikolons genommen. Ich schätze mal, wenn man Enter drückt, geht die Eingabe nochmal für den Parser der lokalen Sprache und erkennt das dann richtig.

VG
Xilukarim
ECC 6.07
Netweaver 7.40

Re: ABAP nach Excel mit Formel, aber wie?

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
Jups, Xilukarim, du hast recht, mit FormulaLocal funzt es. Dann kann man auch die Semikolons stehen lassen.

Re: ABAP nach Excel mit Formel, aber wie?

Beitrag von DeMa (ForumUser / 13 / 0 / 0 ) »
Das hört sich nach einer Lösung für mein Problem an.
Jedoch kenn ich mich nicht so gut in VBA aus.
Was würde das für das Beispiel oben heißen? Was muss ich da anders machen?

Vielen Dank für eure Hilfe.

Re: ABAP nach Excel mit Formel, aber wie?

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
Statt

Code: Alles auswählen.

SET PROPERTY OF zelle 'FormulaR1C1' = wa-value.
diesen Code

Code: Alles auswählen.

SET PROPERTY OF zelle 'FormulaLocal' = wa-value.

Re: ABAP nach Excel mit Formel, aber wie?

Beitrag von DeMa (ForumUser / 13 / 0 / 0 ) »
Das hat funktioniert.

Vielen Dank.

Seite 1 von 1

Vergleichbare Themen

2
Antw.
1931
Views
Umwandeln von einer Formel in ABAP Coding
von naphro » 06.06.2007 10:37 • Verfasst in ABAP® Core
3
Antw.
4187
Views
OLE und ABAP: Aufruf von Excel-VBA Prozeduren aus ABAP
von OnkelSAP » 26.05.2010 09:45 • Verfasst in ABAP Objects®
19
Antw.
5241
Views
dyn. Formel aus Tabelle ?!
von Matthias_L. » 10.03.2005 08:59 • Verfasst in ABAP® Core
2
Antw.
1702
Views
ABAP vs excel
von Bajdu » 06.07.2006 15:54 • Verfasst in Basis
0
Antw.
1872
Views
BW Fortschreibungsregel, Formel und Währungsumrechnung
von manuk » 11.05.2006 09:39 • Verfasst in Sonstige Module

Über diesen Beitrag



Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1515
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8128