textfeldeingabe in zelle übernehmen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

keksi1970
*****
Beiträge: 464
Registriert: So, 27.01.2008 11:47
Wohnort: DU

textfeldeingabe in zelle übernehmen

Beitrag von keksi1970 »

und nochmal ich

also Problembeschreibung :

ich starte einen Dialog und gebe in ein Textfeld einen Namen ein, der in eine bestimmte Zelle geschrieben werden soll. so weit krieg ichs hin. Sollte aber in dieser Zelle schon etwas stehen, soll der Wert automatisch in das Textfeld übernommen werden, allerdings so, dass ich, wenn ich diesen Namen ändere, gleichzeitig die Zelle geändert werden soll und auch die Vorgabe im Textfeld.

also:

a1 ="" // textfeld = "" //Textfeldänderung in Andreas
a1="Andreas" // Textfeld ="Andreas" ///Textfeldänderung in Peter
a1="Peter" // Textfeld="Peter"

ich hoffe ich habe mich verständlich ausgedrückt

Gruss Andreas
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: textfeldeingabe in zelle übernehmen

Beitrag von turtle47 »

Hallo Andreas (endlich hast Du einen richtigen Namen) :lol: ,

versuche es mal hiermit:

Code: Alles auswählen

Sub Start_Dlg
	Dialoglibraries.Loadlibrary("Zelle_A1")'Achtung Bibliothek anpassen
	MyDlg= CreateUnoDialog(Dialoglibraries.Zelle_A1.Dlg_A1) 'Achtung Bibliothek und Dialogname anpassen
	Auslesen
	MyDlg.execute()
End Sub

Sub Auslesen
	oDoc = thisComponent
	mySheet = oDoc.Sheets(0)
	mycell = mysheet.getCellRangeByName("A1")
	myString1 = mycell.string
	MyDlg.getControl("TextField1").Text = myString1
End Sub

Sub Schreiben
	odoc=thisComponent
	MyCtrl=MyDlg.getControl("TextField1")
	MyText = MyCtrl.Model.Text
	mySheet = oDoc.Sheets(0)
	mycell = mysheet.getCellRangeByName("A1")	
	mycell.string=MyText	
End Sub
Weise dem Textfield unter Ereignisse > Text modifiziert das Makro Schreiben zu.
Wenn Du in das Textfeld dann was hineinschreibst wird es sofort in Zelle A1 angezeigt.

Hilft das weiter?

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
keksi1970
*****
Beiträge: 464
Registriert: So, 27.01.2008 11:47
Wohnort: DU

Re: textfeldeingabe in zelle übernehmen

Beitrag von keksi1970 »

einwandfrei :)

vielen Dank

ich hatte es so probiert :

Code: Alles auswählen

MyDlg.execute()
name = MyDlg.getmodel.getbyname("Name").text 
oZielzelle = oDoc.sheets(zaehlen).getCellRangeByName("a1") 
oZielzelle.string = name
und jedesmal, wenn ich die Zelle a1 der Variablen zugeordnet habe, konnt ich in dem Dialog nix mehr ändern :D

noch ne Frage :

Warum funktioniert dieser code nicht

Code: Alles auswählen

Sub weiter 
zaehlen = zaehlen +1 

ansicht
End Sub

Sub back 
zaehlen = zaehlen -1 
ansicht
End Sub

sub ansicht

if zaehlen < "0" then 
zaehlen = "0"
end if
[b]if zaehlen > "14" then
zaehlen = "14"
end if[/b]
odoc = thiscomponent
myView = oDoc.CurrentController
   mySheet = oDoc.Sheets(zaehlen)
   myView.setActiveSheet(mySheet)
   
end sub
Ziel soll sein,per Schaltfläche in meinem Dialog die Ansicht auf das aktuelle Tabellenblatt zu richten. BACK funktioniert einwandfrei, aber bei WEITER zaehlt das Makro Blatt 0+1, Blatt 1+1 und danach ist jedesmal Blatt 15 an der Reihe

wenn ich jedoch

Code: Alles auswählen

If zaehlen = 15 then
zaehlen = 0
end if
schreibe funktioniert das einwandfrei, nach dem letzten Tabellenblatt springt die Ansicht beim Drücken der Schaltfläche wieder zum 1.
keksi1970
*****
Beiträge: 464
Registriert: So, 27.01.2008 11:47
Wohnort: DU

Re: textfeldeingabe in zelle übernehmen

Beitrag von keksi1970 »

HI, ich weiß ich nerve

aber folgendes würde ich gerne verwirklichen

Ich habe :
30 Tabellenblätter
Zellen c8:c15 teilweise ausgefüllt

mein Dialog soll folgendes können :

auf eine Schaltfläche klicken (vorwärts/rückwarts) funktioniert bedingt, s.o.

die Zellen von Tabelle1.C8:c15 einlesen und anzeigen (bei index0)
beim Weiterschalten Tabelle2.c8:c15 einlesen und anzeigen usw.

sollte ich eine angezeigte Zelle innerhalb meines Dialogs ändern, sollte richtigerweise die aktuell angezeigte Tabelle verändert werden und anschliessend neu eingelesen werden,

Ich weiß nicht, wo ich die Schleife ansetzen soll, so dass ich beim Makrostart sofort die aktuelle Daten der Tabelle innerhalb meines Dialogs habe

Liebe Grüße Andreas
Antworten