Seite 1 von 1

Daten speichern

Verfasst: So, 21.06.2009 12:37
von Kongotier
Hallo,

ich komme nicht weiter und hoffe das jemand eine Lösung kennt. Ich möchte z.B. in Tabelle 1 in A1 bis A6 Daten eintragen, diese sollen mit einer Schaltfläche nach Tabelle 2 in A3, B3, C3, D3, gespeichert werden und in Tabelle 1 gelöscht werden. Bei der nächsten Eingabe in Tabelle 1 sollen die Daten in Tabelle 2 in eine neue Zeile geschrieben werden. Sollte das nur mit Programierkenntnissen möglich sein möcht ich Euch darum bitten mir ein Beispielmakro zu erstellen , welches ich versuche auf mein Bedarf zu erweitern.

Für Eure Bemühungen sage ich schon mal im Vorraus vielen Dank

Gruß Kongotier

Re: Daten speichern

Verfasst: So, 21.06.2009 12:58
von keksi1970
Hi,

die Makrolösung

Code: Alles auswählen

Sub Main
oDoc = THisComponent 
oSheet1 = oDoc.sheets(0) '1.TabellenBlatt
oSheet2 = oDoc.sheets(1) '2.TabellenBlatt

'nu gehts los

'wir gucken in Tabelle 2, welche Zeile nu dran ist : Schleife läuft bis zur 1.freien Zelle in Spalte A
zaehler = 0 '1.Zeile
do while oSheet2.getcellbyPosition(0,zaehler).string <> "" 'SpalteA 1.Zeile Inhalt ist nicht leer
	zaehler = zaehler +1 ' Zeile um eins erhöhen
loop

'Nu haben wir die 1. Freie Zeile und lesen die Anzahl der Eintragungen in Tabelle 1 aus
Zaehler2 = 0
Do while oSheet1.getcellbyPosition(0,Zaehler2).string <> "" ' läuft bis in Spalte A zeile Zaehler2 nix mehr steht
	'Und tragen das ausgelesene in Tabelle 2 ein
	If oSheet1.getcellbyPosition(0,Zaehler2).type = 1 then ' Zelltyp bestimmen, 1 für Zahl, 2 für Text
		oSheet2.getcellbyPosition(Zaehler2,zaehler).value = oSheet1.getcellbyPosition(0,Zaehler2).value	
	Else
		oSheet2.getcellbyPosition(Zaehler2,zaehler).string = oSheet1.getcellbyPosition(0,Zaehler2).string
	End If
	'Und löschen den Inhalt
	oSheet1.getcellbyPosition(0,Zaehler2).string = ""
	'und erhöhen die auszulesende Zeile
	Zaehler2 = Zaehler2 +1
loop
End Sub
un malst du einen Button und ordnest ihm das Ereignis Zu.


solltest du dich näher damit beschäftigen wollen :

http://www.dannenhoefer.de/faqstarbasic/Zellen.html

LG
Andreas

Re: Daten speichern

Verfasst: So, 21.06.2009 13:27
von Kongotier
Hallo Andreas,
erst mal vielen Dank für die schnelle Antwort.
Da ich keine Programierkenntnisse habe, sehe ich bei dem Makro leider zu wenig durch. Wo finde ich den Bezug auf die erste Dateneingabe in Tabelle 1 Zelle A3 und was muß ich im zweiten Teil ändern, damit die Daten von Tabelle1 A4 in Tabelle2 B3 geschrieben werden ? Habe leider keine Ahnung davon, kann nur versuchen einen Sinn in den Zeilen zu sehen und diese dann erweitern.

Gruß Kongotier

Re: Daten speichern

Verfasst: So, 21.06.2009 13:56
von keksi1970
gut, also langsam :D

mit oSheet1 = oDoc.Sheets(0) erhälst du Zugriff auf die 1. Tabelle
mit oSheet2 = oDoc.Sheets(1) erhälst du Zugriff auf die 2. Tabelle
nun folgt der Zugriff auf die Zelle A1 in Tabelle1
oSheet.getcellbyposition(0,0)

mit oSheet.getcellbyposition(0,0).string erhältst du den Text aus der Zelle A1 der 1. Tabelle
mit oSheet.getcellbyposition(0,0).value erhältst du die Zahl aus der Zelle A1 der 1. Tabelle

da du nicht immer den selben Wert aus Tabelle:A1 in Tabelle2:A1 schreiben willst, gibt es die Möglichkeit :
oSheet2.getcellbyposition(0,0).string = oSheet.getcellbyposition(0,0).string (A1 nach A1)
oSheet2.getcellbyposition(1,0).string = oSheet.getcellbyposition(0,1).string (A2 nach B1)
oSheet2.getcellbyposition(2,0).string = oSheet.getcellbyposition(0,2).string (A3 nach C1)
oSheet2.getcellbyposition(3,0).string = oSheet.getcellbyposition(0,3).string (A4 nach D1)

das habe ich abgekürzt, in dem ich die Zellnummer(die auch gleichzeitig die SPaltennummer in Tabelle2 ist)
in der variablen Zaehler2 speichere und diese nach jedem schreibvorgang um 1 erhöhe
oSheet2.getcellbyposition(zaehler2,0).string = oSheet.getcellbyposition(0,zaehler2).string
zaehler2 = zaehler2 +1

LG
Andreas

Re: Daten speichern

Verfasst: So, 21.06.2009 14:00
von Kongotier
Hallo Andreas,

nochmals Danke, ich denke damit komme ich klar, werde es heut abend mal versuchen.

Gruß Kongotier