Excel OLE2 Blatt schützen Thema ist als GELÖST markiert

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Excel OLE2 Blatt schützen

Beitrag von Kerstin (Specialist / 199 / 2 / 0 ) » 20.08.2019 10:44

Hallo,

ich erstelle eine Excel-Datei via OLE2 und möchte einige Spalten gegen überschreiben schützen.
Mein Coding sieht so aus. Die Codingbeispiele in den einschlägigen Foren sehen imho auch so aus. Leider funktioniert es nicht. Der Report bleibt beim Aufbau der Datei hängen.

Code: Alles auswählen.

** Excel-Makro 
*    Columns("H:L").Select
*    Selection.Locked = False
*    Selection.FormulaHidden = False
*    Columns("A:G").Select
*    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

* geschützte Spalten
    CALL METHOD OF
        excel
        'RANGE' = item
      EXPORTING
        #1      = 'A1'
        #2      = 'G999'.
    SET PROPERTY OF item 'Locked' = 1 .

* eingabebereite Spalten 
    CALL METHOD OF
        excel
        'RANGE' = item
      EXPORTING
        #1      = 'H1'
        #2      = 'L999'.
    SET PROPERTY OF item 'Locked' = 0 .

* Blatt schützen
    CALL METHOD OF
        sheet
        'PROTECT'
      EXPORTING
        #01       = ''  
        #02       = 1 
        #03       = 1
        #04       = 1.
Kann mir jemand weiter helfen?

Viele Grüße
Kerstin


Re: Excel OLE2 Blatt schützen

Beitrag von ST22 (Specialist / 247 / 28 / 30 ) » 20.08.2019 11:14

Kann es sein, dass du Range schreiben musst, statt nur GROSSBUCHSTABEN.
Ebenso Cells usw.

https://codezentrale.de/tag/excelole/

Re: Excel OLE2 Blatt schützen

Beitrag von Kerstin (Specialist / 199 / 2 / 0 ) » 20.08.2019 11:19

Hallo,
nein, das ist es sicher nicht. An anderen Stellen in meinem Programm bzw. auch in den Foren findet man beide Schreibweisen.
Gruß
Kerstin

Re: Excel OLE2 Blatt schützen

Beitrag von qyurryus (ForumUser / 43 / 32 / 10 ) » 20.08.2019 12:08

Ich habe mal aus Neugier den Fall nachgestellt. Bei mir klappt es, wenn ich das aktive Sheet explizit in die "sheet"-Variable setze, bevor "protect" aufgerufen wird.

Code: Alles auswählen.

...
get property of excel 'ActiveSheet' = sheet.
call method of sheet 'Protect'.
...
Die Export-Paramter solltest du übrigens alle komplett weglassen können, da es ja die Default-Werte sind. (siehe Offizielle Dokumentation )

Re: Excel OLE2 Blatt schützen

Beitrag von Kerstin (Specialist / 199 / 2 / 0 ) » 20.08.2019 12:35

Ich habe den Fehler gefunden. Im Anschluss hatte ich noch eine Spaltenformatierung im Programm. Dort hat er sich wahrscheinlich aufgehängt. Ich habe die Passage jetzt direkt vor dem Speichern eingebaut und nun funzt es.

Danke an alle
Gruß
Kerstin

Seite 1 von 1