Hallo,
ich habe eine Oo.org 1.1.2 (Calc) Tabelle mit 2 Blättern.
Auf dem Tabellenblatt 1 ist u.a. ein Kombinationsfeld.
Auf dem Tabellenblatt 2 ist eine Liste mit Ersatzteilen:
Wischergummi
Reifen
Heckscheibe usw.
Die Daten stehen alle untereinander. Nun möchte ich, das
ich im Kombinationsfeld auf dem Tabellenblatt 1 durch einfaches
anklicken einen Wert aus dem Tabellenblatt 2 übernehmen kann.
Mein Versuch die Daten aus dem Tabellenblatt 2 in die
Eigenschaften vom Kombinationsfeld unter Listen-Einträge einzutippen,
war zwar erfolgreich. Wenn ich aber das Kombinationsfeld in eine
andere Tabelle übernehmen möchte, werden die zuvor mühevoll
eingetippten Daten gelöscht.
MfG
mike6
Kombinationsfeld in verbindung mit einer Liste
Moderator: Moderatoren
Du müstest die Listeneinträge dynamisch in das Kombinationsfeld laden, hier ist ein Beispiel:
Dieses Makro muß dem Ereignis "bei Fokuserhalt" des Kombinationsfelds zugeordnet werden.
Gruß
Stephan
Code: Alles auswählen
Sub Load_Values_List()
Dim oDoc As Object
Dim oSheet As Object
Dim oForm As Object
Dim oComboBox As Object
Dim oCellRangeSource As Object
Dim aSourceDataArray()
Dim aDataArrayRow()
Dim aSource() As String
Dim I As Integer
Set oDoc = ThisComponent
'das Tabellenblatt wo das Kombinationsfeld ist
Set oSheet = oDoc.Sheets.GetByName("Demo_En")
Set oForm = oSheet.DrawPage.Forms.GetByName("Standard")
'das Kombinationsfeld
Set oComboBox = oform.getByName("ComboBox1")
'die einzutragenen Werte (hier stehen sie auf dem selben
'Tabellenblatt, aber das muß nicht sein
Set oCellRangeSource = oSheet.getCellRangeByName("B14:B20")
'extract the data from the range
aSourceDataArray() = oCellRangeSource.getDataArray()
Redim Preserve aSource(UBound(aSourceDataArray())) As String
'
For I = LBound(aSource()) To UBound(aSource())
aDataArrayRow() = aSourceDataArray(I)
aSource(I) = aDataArrayRow(0)
Next I
'hier werden die Werte an das Kombinationsfeld übergeben
oComboBox.StringItemList = aSource()
End Sub
Gruß
Stephan
Hi Mike6,
die Lösung von Stephan ist die eine, - ok, zugegeben, man benötigt etwas Basic-Know-How. Und für Versionen bis 1.1.1 auch kaum anders lösbar.
Aber du hast doch Version 1.1.2?
Dort kannst du doch direkt eine Verbindung zu einem Tabellenbereich erstellen, aus dem die (Listen-) Einträge ausgelesen werden sowie eine Zelle bestimmen, in welche das Ergebnis (der selektierte Eintrag) eingetragen wird.
Hierzu rufst du das Eigenschafts-Menü des Kombinationsfeldes feldes auf, wählst den "Reiter" Daten und gibst in die erste Zeile (verknüpfte Zelle) die Zelladresse ein, in welche das Ergebnis der Wahl überttragen werden soll. Also zum Beispiel: A2 oder auch Tabelle2.a3 . In das Feld "Quellzellenbereich " kannst du jetzt die Adressrange eingeben, wo die Listeneinträge stehen. Also zum Beispiel C4:C9 , oder auch mit Tabellennamen vorweg.
Schon hast du dein gewünschtes Ergebnis - ganz ohne Programmierung.
Tia - manchmal gibt es schon echte Fortschrite.
Gruss
Thomas
die Lösung von Stephan ist die eine, - ok, zugegeben, man benötigt etwas Basic-Know-How. Und für Versionen bis 1.1.1 auch kaum anders lösbar.
Aber du hast doch Version 1.1.2?
Dort kannst du doch direkt eine Verbindung zu einem Tabellenbereich erstellen, aus dem die (Listen-) Einträge ausgelesen werden sowie eine Zelle bestimmen, in welche das Ergebnis (der selektierte Eintrag) eingetragen wird.
Hierzu rufst du das Eigenschafts-Menü des Kombinationsfeldes feldes auf, wählst den "Reiter" Daten und gibst in die erste Zeile (verknüpfte Zelle) die Zelladresse ein, in welche das Ergebnis der Wahl überttragen werden soll. Also zum Beispiel: A2 oder auch Tabelle2.a3 . In das Feld "Quellzellenbereich " kannst du jetzt die Adressrange eingeben, wo die Listeneinträge stehen. Also zum Beispiel C4:C9 , oder auch mit Tabellennamen vorweg.
Schon hast du dein gewünschtes Ergebnis - ganz ohne Programmierung.
Tia - manchmal gibt es schon echte Fortschrite.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic