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 / 198 / 2 / 0 ) » 20. Aug 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 / 239 / 24 / 29 ) » 20. Aug 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 / 198 / 2 / 0 ) » 20. Aug 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 / 34 / 26 / 9 ) » 20. Aug 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 / 198 / 2 / 0 ) » 20. Aug 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

Aktuelle Forenbeiträge

SELECT-OPTIONS: NO INTERVALS auch in Fenster Mehrfachselekti
vor 33 Minuten von DeathAndPain 7 / 7180
Lookup Tabelle in Methode lesen und erweitern
vor 42 Minuten von DeathAndPain 7 / 137
ABAP Editor gelöst
vor einer Stunde von DeathAndPain 7 / 123
Fehler bei F4-Hilfe
vor einer Stunde von DeathAndPain 5 / 103

Unbeantwortete Forenbeiträge

Mini-SAP Einstiegs Logo ändern
vor 21 Stunden von Tron 1 / 85
Absenderland in Transaktion BP setzen
Gestern von SAP_ENTWICKLER 1 / 73
Funktionsbaustein QPMK_MSTCHA_VERS_CREATE
vor einer Woche von SAP_ENTWICKLER 1 / 105
OLE 2 Excel Datum konvertieren
vor einer Woche von Kerstin 1 / 94