Seite 1 von 1
Listenfeld
Verfasst: Mi, 07.01.2004 16:00
von Loxlay
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

Verfasst: Mi, 07.01.2004 18:11
von openmind
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
Verfasst: Do, 08.01.2004 09:28
von Loxlay
Hi!
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" )
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.
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
Verfasst: Do, 08.01.2004 12:57
von openmind
Loxlay hat geschrieben:Wahrscheinlich lag es daran, das ich drei Sheets Standardmäßig habe.
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.