von KDO » Di, 07.10.2008 12:45
Hallo,
Du denkst viel zu kompliziert.
Ich habe mir mal einen kleine Dialog gestrickt, der 2 Textfelder enthält, die Ihren Inhalt aus den Tabellenfelder B2 und C2 beziehen.
Das Makro habe ich im Dokument gespeichert. Hier der Quelltext:
Code: Alles auswählen
REM ***** BASIC *****
Dim DLG as Object, oTB1 as Object, oTB2 as Object 'Definition der Dialogvariablen (Gilt im ganzen Modul!)
Dim oDoc as Object 'Definition der Dokumentvariablen (Gilt im ganzen Modul!)
Sub Init_Dialog
oDoc = thisComponent
GlobalScope.BasicLibraries.LoadLibrary("Tools")
DLG = LoadDialog("Standard", "Test_Dialog", oDoc.DialogLibraries)
oTB1 = DLG.GetControl("TextField1")
oTB2 = DLG.GetControl("TextField2")
oTB1.Model.Text = oDoc.Sheets(0).GetCellRangeByName("B2").String 'Holt den Inhalt der Zelle B2 und schreibt den Text in TextField1
oTB2.Model.Text = oDoc.Sheets(0).GetCellRangeByName("C2").String 'Holt den Inhalt der Zelle C2 und schreibt den Text in TextField2
DLG.execute() ' Dialog anzeigen
End Sub
sub TB1_Change
oDoc.Sheets(0).GetCellRangeByName("B2").String = oTB1.Model.Text 'Schreibt den Textinhalt von TextField1 direkt in Celle B2
end sub
sub TB2_Change
oDoc.Sheets(0).GetCellRangeByName("C2").String = oTB2.Model.Text 'Schreibt den Textinhalt von TextField2 direkt in Celle C2
end sub
Die Sub "TB1_Change" verbindest Du mit der Aktion "Text modifiziert" von TextField1 und "TB2_Change" mit TextField2.
Die Änderung in dem jeweiligen Textfeld wird direkt in die Zelle geschrieben.
Ich hoffe das hilft dir weiter
Klaus Osigus
P.S. Wenn Du möchtest, kann ich dir auch das Beispieldokument als Anhang zusenden.
Hallo,
Du denkst viel zu kompliziert. :wink:
Ich habe mir mal einen kleine Dialog gestrickt, der 2 Textfelder enthält, die Ihren Inhalt aus den Tabellenfelder B2 und C2 beziehen.
Das Makro habe ich im Dokument gespeichert. Hier der Quelltext:
[code]
REM ***** BASIC *****
Dim DLG as Object, oTB1 as Object, oTB2 as Object 'Definition der Dialogvariablen (Gilt im ganzen Modul!)
Dim oDoc as Object 'Definition der Dokumentvariablen (Gilt im ganzen Modul!)
Sub Init_Dialog
oDoc = thisComponent
GlobalScope.BasicLibraries.LoadLibrary("Tools")
DLG = LoadDialog("Standard", "Test_Dialog", oDoc.DialogLibraries)
oTB1 = DLG.GetControl("TextField1")
oTB2 = DLG.GetControl("TextField2")
oTB1.Model.Text = oDoc.Sheets(0).GetCellRangeByName("B2").String 'Holt den Inhalt der Zelle B2 und schreibt den Text in TextField1
oTB2.Model.Text = oDoc.Sheets(0).GetCellRangeByName("C2").String 'Holt den Inhalt der Zelle C2 und schreibt den Text in TextField2
DLG.execute() ' Dialog anzeigen
End Sub
sub TB1_Change
oDoc.Sheets(0).GetCellRangeByName("B2").String = oTB1.Model.Text 'Schreibt den Textinhalt von TextField1 direkt in Celle B2
end sub
sub TB2_Change
oDoc.Sheets(0).GetCellRangeByName("C2").String = oTB2.Model.Text 'Schreibt den Textinhalt von TextField2 direkt in Celle C2
end sub
[/code]
Die Sub "TB1_Change" verbindest Du mit der Aktion "Text modifiziert" von TextField1 und "TB2_Change" mit TextField2.
Die Änderung in dem jeweiligen Textfeld wird direkt in die Zelle geschrieben. :D
Ich hoffe das hilft dir weiter
Klaus Osigus
P.S. Wenn Du möchtest, kann ich dir auch das Beispieldokument als Anhang zusenden.