Hallo Stephan,
vielen Dank für Deine Antwort.
Nach dem ich die Deklaration der Variablen in die Sub verschoben habe, die auch den Dialog aufruft, hat Deine „Sub farbwechsel(rueck)“ wunderbar funktioniert. - Danke!
D. h. die Hintergrund-Farbe des Kombinationsfelds ändert sich mit dem entsprechenden Menü-Eintrag, wie gewünscht.
Jetzt muss ich noch nachvollziehen und verstehen, was genau „rueck.Source.Model“ bedeutet, damit ich mein eigentliches Vorhaben umsetzen kann.
„rueck“ ist wohl eine Rückgabe-Variable?
Mein Hauptziel ist es, in ein Textfeld im Dialog einen frei wählbaren Text einzugeben. Diese Texteingabe soll nach einer Auswahl im Kombinationsfeld und durch die Betätigung eines Button in eine bestimmt Zelle im Calc-Dokument eingefügt werden. Die entsprechende Spalte wird durch die Eintragsauswahl im Kombinationsfeld definiert bzw. bestimmt.
Diese Vorgehen erschien für mich als BASIC-Einsteiger noch etwas zu kompliziert. Daher mein „Umweg“/“Zwischenschritt“ mit dem Farbwechsel und der „angedeuteten“ Anzeige, die leider so auch nicht funktioniert hat. Wo liegt hier mein Fehler?
Code: Alles auswählen
...
oOOMEDlg003.getModel().getByName("lbl_Anzeige").Label = "Rot" 'ev Anzeige im Beschriftungsfeld über Eigenschaft Label
oOOMEDlg003.getModel().getByName("lbl_Anzeige").Title = "Rot" 'ev Anzeige im Beschriftungsfeld über Eigenschaft Title
oOOMEDlg003.getModel().getByName("txt_Anzeige").Text = "Rot" 'ev Anzeige im Textfeld über Eigenschaft Text
...
Ich habe gehofft so mehr zu verstehen, wie die einzelnen Befehle und Befehlsketten logisch aufgebaut sind und funktionieren.
Fehlt mir in diesem Zusammenhang noch ein „Service“, den ich für die Funktion noch einbinden müsste?
z. B. in der folgenden Form:
Code: Alles auswählen
…
oComboBox = CreateUnoService(„com.sun.star.awt.???“)
…
Das Einfügen von einem Textinhalt in eine Zelle habe ich folgendermaßen hinbekommen:
Code: Alles auswählen
Sub ZellenInTabellenEinfuegen
' Dieses Makro in einer geöffnetten Tabelle starten
oCalc = ThisComponent
oSheet = oCalc.sheets(0)
' (Spalte,Zeile)
oCell = oSheet.getCellByPosition(5,0) '(0,0) = A1; (5,0) = F1
oCell.string = "Beispieltext 1"
oCell = oSheet.getCellRangeByName("$C$1")
oCell.string = "Beispieltext 2"
End Sub
(Variablen werden vorher beim Dialog-Aufruf deklariert.)
Zusammengefasst meine Frage:
Wie kann ich den Inhalt bzw. die Benutzer-Eingabe eines „Textfelds“ in eine bestimmt Zelle schreiben? Dabei hängt die korrekte Spalte der Zelle von der entsprechenden Auswahl in einem „Kombinationsfeld“ ab.
Vorab vielen Dank
Viele Grüße