Hallo zusammen!
Ich möchte das ein Makro den Mitarbeiternamen, den ich aus einem Listenfeld auswähle, in die Zelle schreibt wo sich der Curser gerade befindet.
Wie ich Daten in die aktuelle Curserposition schreibe weiß ich, aber ich weiß nicht, wie ich den Ausgewählten Namen aus der Liste bekomme, um ihn einer Variable zuweise um diese dann auszugeben.
Kann mir einer von euch sagen, wie ich im Makro an den Ausgewählten Namen komme ?
Danke schon mal im Vorraus
Listenfeld
Moderator: Moderatoren
Kann ich sagen. Eine die Möglichkeit einer Mehrfachselektion macht die Sache ein weniger komplizierter als man meinen könnte:
Code: Alles auswählen
Sub Textit
Dim oDocument as Object
Dim oFormular as Object
Dim oList as Object
Dim selektion as Variant
Dim count as Integer
' writer document holen
oDocument = thisComponent
' Formular holen
oFormular = oDocument.DrawPage.Forms.getByName( "Standard" )
' Listenfeld holen
oList = oFormular.getByName( "testListenfeld" )
' Selektionen in einem Array aus Integern
' welche die Positionen der selektierten
' bezeichnen (Mehrfachauswahl möglich)
selektion = oList.SelectedItems
' Loop durch alle selektierten Einträge
for count = LBound(selektion) to UBound(selektion)
' Wert des Eintrages in dListenFeld
' auslesen und anzeigen
MsgBox oList.StringItemList( selektion(count) )
Next count
End Sub
Meine Installation: AMD Athlon XP 1600+, 512 MB RAM, SuSE Linux 8.2, OpenOffice 1.1
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/
Hi!
Danke schon mal, das sieht ja sehr vielversprechend aus
Nur bei mir mekert er in der Zeile:
und sagt mir "Eigenschaft oder Methode nicht gefunden".
Wahrscheinlich lag es daran, das ich drei Sheets Standardmäßig habe.
Ich habe also noch das erste Sheet mit angegeben und so lief es dann.
Danke schon mal, das sieht ja sehr vielversprechend aus
Nur bei mir mekert er in der Zeile:
Code: Alles auswählen
oFormular = oDocument.DrawPage.Forms.getByName( "Standard" )
Wahrscheinlich lag es daran, das ich drei Sheets Standardmäßig habe.
Ich habe also noch das erste Sheet mit angegeben und so lief es dann.
Code: Alles auswählen
Sub Textit
Dim oDocument as Object
Dim oFormular as Object
Dim oList as Object
Dim Sheet as Object
Dim selektion as Variant
Dim count as Integer
' writer document holen
oDocument = thisComponent
' Sheet holen
Sheet = oDocument.Sheets.GetByIndex(0)
DrawPage = Sheet.DrawPage
' Formular holen
oFormular = DrawPage.Forms.getByName("Standard")
' Listenfeld holen
oList = oFormular.getByName( "ListBox" )
' Selektionen in einem Array aus Integern
' welche die Positionen der selektierten
' bezeichnen (Mehrfachauswahl möglich)
selektion = oList.SelectedItems
' Loop durch alle selektierten Einträge
for count = LBound(selektion) to UBound(selektion)
' Wert des Eintrages in dListenFeld
' auslesen und anzeigen
MsgBox oList.StringItemList( selektion(count) )
Next count
End Sub
Nö. Es lag daran, dass ich zu blöd war um zu merken, dass du von einem Calc-Dokument sprichst. Da findest sich die DrawPage im Sheet und nicht im Dokument iwe Du richtigt bemerkts hast.Loxlay hat geschrieben:Wahrscheinlich lag es daran, das ich drei Sheets Standardmäßig habe.
Meine Installation: AMD Athlon XP 1600+, 512 MB RAM, SuSE Linux 8.2, OpenOffice 1.1
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/