loop-schleife durch zellen

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

Moderator: Moderatoren

kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

loop-schleife durch zellen

Beitrag von kannenklaus »

hallo zusammen,

ich versuche gerade eine do-loop-schleife zu basteln, die solange durch die zellen der spalte 1 läuft bis diese leer sind. der folg. code klappt nicht, weil er darüberhinaus sucht. freue mich auf eine konstruktive antwort.

Code: Alles auswählen

Sub test
Dim start as Double
Dim oDok as Object
Dim oShQuelle as Object
Dim oShZiel as Object
Dim oCell as Object
'Dim BOID as Double
oDok=ThisComponent
oShQuelle=oDok.sheets.getByName("Tab_Stopot_2")
start=0
 oCell=oShQuelle.getCellByPosition(0,start)
		
	    Do while not IsEmpty(oCell)
	   oCell=oShQuelle.getCellByPosition(0,start)
	        msgbox oCell.formula

	        msgbox (start,0,"Wert von Start")
	        start = start + 1

	    Loop


end Sub
freundliche grüße
klaus
Frieder D.
****
Beiträge: 115
Registriert: Di, 10.01.2012 10:51
Kontaktdaten:

Re: loop-schleife durch zellen

Beitrag von Frieder D. »

Hallo kannenklaus

Mit IsEmpty(oCell) überprüft man, ob eine Variable den Wert "Empty" (=Variable wurde noch nie ein Wert,ein String,oder ein Object zugewiesen.) hat.
Das ist aber bei dir nicht der Fall, da die Variable oCell ein Object hält.
Statt dessen müsstest du schauen, ob die Zelle einen String enthält.

Code: Alles auswählen

Do while oCell.String <> ""
Gruß Frieder
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: loop-schleife durch zellen

Beitrag von Karolus »

Hallo

Code: Alles auswählen

     Do
          oCell=oShQuelle.getCellByPosition(0,start)
          msgbox oCell.formula
          msgbox (start,0,"Wert von Start")
          start = start + 1
     Loop until ocell.string = ""
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

Re: loop-schleife durch zellen

Beitrag von kannenklaus »

hallo frieder,

danke für deine schnelle meldung. bei deinem vorschlag kommt es wie bei mir dazu, dass auch leere zellen angesteuert werden. eigentlich will ich das genau verhindern.

viele grüße
klaus
Frieder D.
****
Beiträge: 115
Registriert: Di, 10.01.2012 10:51
Kontaktdaten:

Re: loop-schleife durch zellen

Beitrag von Frieder D. »

Hallo
kannenklaus hat geschrieben:hallo frieder,
danke für deine schnelle meldung. bei deinem vorschlag kommt es wie bei mir dazu, dass auch leere zellen angesteuert werden. eigentlich will ich das genau verhindern.
Da die ursprüngliche Schleife Kopfgesteuert war, läuft sie natürlich bis einschließlich der ersten leeren Zelle.
Allerdings war deine Schleife eine Endlosschleife, da die Bedingung nie erreicht werden konnte.(Absturz vorprogrammiert.)

Mit der Schwanz gesteuerten Schleife von Karolus kannst du das natürlich vermeiden.


Gruß Frieder
kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

Re: loop-schleife durch zellen

Beitrag von kannenklaus »

hallo frieder und karolus,

danke für euren tipps. nun klappt es.

viele grüße
klaus
Frieder D.
****
Beiträge: 115
Registriert: Di, 10.01.2012 10:51
Kontaktdaten:

Re: loop-schleife durch zellen

Beitrag von Frieder D. »

Hallo klaus,

Es Währe interessant zu wissen, für was du deine Schleife brauchst.
Da Schleifen über Zellen in OO oder LO sehr zeitaufwendig sind,
sollte man versuchen sie wo möglich zu umgehen.
Für die meisten Zwecke gibt es elegantere Lösungen.
Und wo schleifen absolut nicht zu vermeiden sind,
kann mann die Geschwindigkeit meistens um ein vielfaches Steigern,
indem man den Inhalt der Zellen in ein Array einließt (mit getdataArray() ),
und dann eine Schleife über das Array macht.

Gruß Frieder
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: loop-schleife durch zellen

Beitrag von Stephan »

Mit der Schwanz gesteuerten Schleife ...
Na ob das stimmt ... ich glaub das Gegenteil von kopfgesteuerter Schleife ist eher eine fußgesteuerte Schleife ... selbst wenn das Gegenteil eines kopfgesteuerten Mannes manchmal ein ... gesteuerter Mann sein mag :wink:


Gruß
Stephan
Antworten