textfeldeingabe in zelle übernehmen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: textfeldeingabe in zelle übernehmen

Re: textfeldeingabe in zelle übernehmen

von keksi1970 » Fr, 22.02.2008 23:48

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

Re: textfeldeingabe in zelle übernehmen

von keksi1970 » Mi, 20.02.2008 23:28

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.

Re: textfeldeingabe in zelle übernehmen

von turtle47 » Mi, 20.02.2008 22:37

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

textfeldeingabe in zelle übernehmen

von keksi1970 » Mi, 20.02.2008 21:58

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

Nach oben