Seite 1 von 1

Schleifen nur in Makros?

Verfasst: Di, 09.09.2008 08:18
von da_jackster
Hallo Leute,

ich suche gerade nach einer einfachen Möglichkeit, Felder durchzugehen und den Inhalt in eine bestimmte Form zu bringen. Meiner Meinung nach lässt sich das, was ich machen möchte nur mit Schleifen anstellen:

Das ist die Ausgangsform (hier nur ein Beispiel):

11 | START | ALLES | HAT | EIN | STOP
12 | START | ENDE | NUR | DIE | WURST | STOP
13 | START | HAT | ZWEI |STOP

Und so soll(te) es mal aussehen:

11 | ALLES
11 | HAT
11 | EIN
12 | ENDE
12 | NUR
12 | DIE
12 | WURST
13 | HAT
13 | ZWEI

Wäre an sich vieleicht ja kein großes Problem aber wie man oben sehen kann, können zwischen START und STOP variabel viele Werte liegen. Und da sind wir beim Kernpunkt: Wie erkläre ich Calc, dass er die Werte so lange "in Form" bringt, bis er auf ein STOP trifft? Geht das wirklich nur über Makros? Hat jemand zufällig nen gutes Tutorial zur Hand oder ein ähnliches Makro? Ich bin in Basic nicht der Beste! :?

Re: Schleifen nur in Makros?

Verfasst: Di, 09.09.2008 10:30
von Karolus
Hallo
Infos zur Basic-Programmierung findest du im ersten Post der Basic-abteilung
Folgendes Makro überträgt die Daten vom 1. Tabellenblatt ins 2.Blatt nach deinem angegebenen Muster, die Ende-Bedingungen sind: Der Text "STOP" in der Schleife über die Zeile, und eine leere Zelle in der ersten Spalte der äusseren Schleife.

Code: Alles auswählen

Sub Datensaetze_transformieren
odoc = thiscomponent
insheet = odoc.sheets(0) '1.Tabellenblatt
outsheet = odoc.sheets(1) '2.Tabellenblatt
isp = 2 'startindex 3.Spalte
do until insheet.getcellbyposition(0,iz).string = ""
	do until insheet.getcellbyposition(isP,iz).string = "STOP"
		outsheet.getcellbyposition(0,oz).formula =_
		insheet.getcellbyposition(0,iz).string
		outsheet.getcellbyposition(1,oz).formula =_
		insheet.getcellbyposition(isP,iz).string
		isP = isP + 1
		oz = oz + 1
	loop  
	isP = 2 'zurücksetzen Startindex
	iz = iz + 1 'hochzählen Zeilenindex
loop 

End Sub
Gruß Karo

Re: Schleifen nur in Makros?

Verfasst: Di, 09.09.2008 11:32
von da_jackster
Genau das habe ich gebraucht! Fettes Danke! :-)

Nur noch eine Frage: Kann man das Makro nicht auch an einen Button oder sowas dranhängen damit es dann "auf Knopfdruck" aktiviert wird? So ist es grad etwas umständlich!

Re: Schleifen nur in Makros?

Verfasst: Di, 09.09.2008 11:57
von Karolus
Hallo
http://www.ooowiki.de/MakrosMitEinemKlick
Du kannst auch eine Schaltfläche ins Dokument setzen über (->Ansicht->Symbolleisten->Formular-Steuerelemente) und dieses noch im Entwurfsmodus im Kontextmenü ->Kontrollfeld-'Ereignisse'--beim Auslösen dem Makro zuweisen.

Gruß Karo