Unterschriften (Bild) per Makro einfügen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

aqua
**
Beiträge: 34
Registriert: Do, 23.07.2015 07:25

Unterschriften (Bild) per Makro einfügen

Beitrag von aqua »

Guten Tag
ich hab ein kleines Problem und komm nicht wirklich weiter.
Ich möchte eingescannte Unterschriften per Button in ein Tabellendokument einfügen. Hab mir auch schon ein kleines Makro aufgezeichnet und mit nur einen Namen funktioniert es auch, nur es gibt mehrere Namen zur Auswahl und ich will ja nicht für jeden Namen einen einigen Button haben.

Code: Alles auswählen

sub Unterschrift
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$F$18"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "FileName"
args2(0).Value = "file:///C:/Users/Admin/Unterschriften/sign_xyz.jpg"
args2(1).Name = "FilterName"
args2(1).Value = "<Alle Formate>"
args2(2).Name = "AsLink"
args2(2).Value = false

dispatcher.executeDispatch(document, ".uno:InsertGraphic", "", 0, args2())


end sub


Auf dem Blatt "Tabelle1" in B6 steht der Name(was in meinen Makro auch noch fehlt....), dessen Unterschrift in "Tabelle" F18 eingefügt wird.

LG
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Unterschriften (Bild) per Makro einfügen

Beitrag von Stephan »

Auf dem Blatt "Tabelle1" in B6 steht der Name(was in meinen Makro auch noch fehlt....), dessen Unterschrift in "Tabelle" F18 eingefügt wird.
Was ist "der Name"? Der Pfad und Name einer Grafikdatei?

Falls ja ändere die Zeile:

Code: Alles auswählen

args2(0).Value = "file:///C:/Users/Admin/Unterschriften/sign_xyz.jpg"
in:

Code: Alles auswählen

args2(0).Value = ConvertToURL(ThisComponent.Sheets().getByName("Tabelle1").getCellRangeByName("B6").String)
Gruß
Stephan
aqua
**
Beiträge: 34
Registriert: Do, 23.07.2015 07:25

Re: Unterschriften (Bild) per Makro einfügen

Beitrag von aqua »

Hallo
Danke, ich habs ein wenig anders gelöst. Funktioniert auch soweit wie es soll.
Nur, ich hätte gerne das Tabellenblatt geschützt, aber wenn es geschützt ist funktioniert das einfügen des Bildes nicht mehr?!

Code: Alles auswählen

sub Unterschrift
rem ----------------------------------------------------------------------
rem define variables

  oDoc=thisComponent
  Sheet = oDoc.Sheets(0)
  Cell = Sheet.getCellByPosition(1,5)  
  NameUnterschrift = Cell.String
  
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$F$18"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "FileName"
args2(0).Value = "file:///C:/Users/Admin/Unterschriften/sign_" & NameUnterschrift & ".jpg"
args2(1).Name = "FilterName"
args2(1).Value = "<Alle Formate>"
args2(2).Name = "AsLink"
args2(2).Value = false

dispatcher.executeDispatch(document, ".uno:InsertGraphic", "", 0, args2())


end sub
aqua
**
Beiträge: 34
Registriert: Do, 23.07.2015 07:25

Re: Unterschriften (Bild) per Makro einfügen

Beitrag von aqua »

Super Danke :))
Antworten