Wie fülle ich automatisch leere Zellen in einer Tabelle?

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: Wie fülle ich automatisch leere Zellen in einer Tabelle?

Re: Wie fülle ich automatisch leere Zellen in einer Tabelle?

von OnkelFritz » So, 19.06.2011 09:03

Hallo Carsten, Hallo Karo,

das funktioniert 1A!
Vielen, vielen Dank dafür!

Ich hatte mich schon an sowas "ähnlichem" versucht, aber "ähnlich" reicht halt nunmal nicht...
Ihr habt meinen Tag gerettet... :D

Viele Grüße

Onkel Fritz

Re: Wie fülle ich automatisch leere Zellen in einer Tabelle?

von daswaldhorn » Sa, 18.06.2011 19:53

Hallo Karo,
Karolus hat geschrieben:Quarck - beginne die for-Schleife mit
For m = 1 to ...
So einfach kann das Leben sein :-)

Gruß, Carsten

Re: Wie fülle ich automatisch leere Zellen in einer Tabelle?

von Karolus » Sa, 18.06.2011 19:31

Hallo
Aufgrund des "m - 1" muss die Auswahl in der ersten Zeile gefüllte sein, sonst kommt es zu einer Fehlermeldung.
Quarck - beginne die for-Schleife mit
For m = 1 to ...

Gruß Karo

Re: Wie fülle ich automatisch leere Zellen in einer Tabelle?

von daswaldhorn » Sa, 18.06.2011 19:21

Hallo Fritz,
OnkelFritz hat geschrieben:...und das trägt immerhin schon mal das Datum der obersten Zelle in die leeren Zellen ein:...

...Weiß zwar nicht wieso...
Weil deine Variable "x" nicht genutzt wird, ist die immer Null, somit kommt der immer der oberste Wert in deine Liste.

Mit diesem Code sollte es klappen:

Code: Alles auswählen

Sub LeereZellenSuchen()
  oSelect = ThisComponent.CurrentSelection
  oColumn = oselect.Columns
  oRow = oSelect.Rows
  For n = 0 To oColumn.getCount - 1
    For m = 0 To oRow.getCount - 1
      oCell = oselect.getCellByPosition(n, m)
      Select Case oCell.String
      Case ""
      oCell.Formulalocal = oselect.getCellByPosition(n, m - 1).Formulalocal
      End Select
    next
  next
End Sub
Aufgrund des "m - 1" muss die Auswahl in der ersten Zeile gefüllte sein, sonst kommt es zu einer Fehlermeldung.

Gruß, Carsten

Re: Wie fülle ich automatisch leere Zellen in einer Tabelle?

von OnkelFritz » Sa, 18.06.2011 19:18

Hallo lorbass,

zum einen, weil ich versucht hatte das Makro aus diesem Thema an mein Problem anzupassen, und zum anderen, weil
ich beschäftige mich seit kuzem mit OOo / Calc
und ich deshalb nicht weiß, dass das in das
zutreffenden Unterforum OOo Basic und Java
gehört...

Trotzdem vielen Dank für die Antwort.

Onkel Fritz

Re: Wie fülle ich automatisch leere Zellen in einer Tabelle?

von lorbass » Sa, 18.06.2011 19:07

Warum hängst du deine Frage an ein längst erledigtes Thema, statt ein neues im zutreffenden Unterforum OOo Basic und Java zu eröffnen?

Gruß
lorbass

Re: Wie fülle ich automatisch leere Zellen in einer Tabelle?

von OnkelFritz » Sa, 18.06.2011 17:12

Hallo,

ich beschäftige mich seit kuzem mit OOo / Calc und habe natürlich gleich mal ein großes Problem:
ich habe Tabellen mit meist so um die 20.000 Datensätzen und u.a. der Spalte "Datum".
In dieser Spalte fehlen leider immer sehr viele Daten, die ich gerne mit dem Datum der darüber liegenden Zelle automatisch füllen würde.
Das ganze sieht in etwa so aus:

16.6.2011
16.6.2011
16.6.2011
= leer, hier soll der 16.6.2011 rein
16.6.2011
15.6.2011
15.6.2011
= leer, hier soll der 15.6.2011 rein
= leer, hier soll der 15.6.2011 rein
15.6.2011
14.6.2011
= leer, hier soll der 14.6.2011 rein

Ich wühle mich jetzt schon den zweiten Tag durch Foren und Suchmaschinen, komme aber leider nicht weiter...
Habe aktuell an dem Makro von Jürgen (weiter oben, vielen Dank dafür) rumgebastelt und das trägt immerhin schon mal das Datum der obersten Zelle in die leeren Zellen ein:

Code: Alles auswählen

    Sub LeereZellenSuchen()
    oSelect=ThisComponent.CurrentSelection
    oColumn=oselect.Columns
    oRow=oSelect.Rows
    For n= 0 To oColumn.getCount-1
    For m = 0 To oRow.getCount-1
    oCell=oselect.getCellByPosition (n, m)
    mycell=oselect.getCellByPosition(n, x)
    Select Case oCell.String
    Case ""
    oCell.String = mycell.String
    End Select
    next
    next
    End Sub
Weiß zwar nicht wieso und das ganze ist wohl auch nicht sehr professionell, aber es passiert wenigstens was :lol:

Probiere jetzt auch schon seit Stunden mit "GotoEndOfUsedArea" usw. herum, aber das will alles nicht so wie ich...

Würde mich riesig freuen wenn einer der Profis hier eine Idee hätte.
Vielen Dank dafür!

Onkel Fritz

Re: Wie fülle ich automatisch leere Zellen in einer Tabelle?

von turtle47 » Sa, 13.03.2010 17:22

Hallo,
Apothekenperf hat geschrieben:Hat jemand eine Idee, woher dieses Apostroph kommt
Ja, weil Du einen String übergibst.
Apothekenperf hat geschrieben:und wie ich es wegekomme ?
Ersetze

Code: Alles auswählen

oCell.String = "1" 
durch

Code: Alles auswählen

oCell.Value = "1" 
Viel Erfolg.

Jürgen

Re: Wie fülle ich automatisch leere Zellen in einer Tabelle?

von komma4 » Mo, 25.06.2007 23:51

[Unsinn gelöscht]

Re: Wie fülle ich automatisch leere Zellen in einer Tabelle?

von turtle47 » Mo, 25.06.2007 22:22

Hallo Wolfgang und Karolus,

ich hoffe Karolus ist mir jetzt nicht böse, denn ich habe die Sache zu meiner Übung noch etwas verfeinert,
möchte Euch das Ergebnis aber nicht vorenthalten.
Das Makro sucht jetzt automatisch die letzte beschriebene Zeile.
Man braucht das Makro nicht mehr zu verändern, wenn die zu bearbeitenden Tabellenblätter
unterschiedlich lang sind.

Code: Alles auswählen

Sub zeiletoTabblatt2
dim z
	odoc=thiscomponent
	oSheet = ThisComponent.CurrentController.getActiveSheet()'aktives Tabellenblatt
	oCellCursor = oSheet.createCursor()
	oCellCursor.GotoEndOfUsedArea(True)
	oCellCursor.GotoEndOfUsedArea(True)
	
	'sucht automatisch letzte beschriebene Zeile
	letzte_Zeile = oCellCursor.getRangeAddress.EndRow 
	
	'Berechnung: Letzte beschriebene Zeile mal 2 plus 1
	y = letzte_Zeile *2 +1
	myrows=osheet.getrows
	for z = 1 to (y) step 2
	
    ' Und jetzt einfügen: Index und Anzahl.
   myrows.insertbyindex(z,1)
  next

End Sub
Jürgen

Re: Wie fülle ich automatisch leere Zellen in einer Tabelle?

von Karolus » Mo, 25.06.2007 21:31

Hallo Wolfgang
Du möchtest Zeilen einfügen, und zwar an jeder 2. Stelle:

Code: Alles auswählen

 Sub zeilenenfueg
dim z
odoc=thiscomponent
  mysheet=odoc.sheets(0)' 1.Blatt
  myrows=mysheet.getrows
for z = 1 to 21 step 2 'Hier als oberen Wert das Doppelte der vorhandenen Zeilen plus1
' Und jetzt einfügen: Index und Anzahl.
  myrows.insertbyindex(z,1)
  next
End Sub
Alles, ausser der 'for...' Zeile und 'next' ist aus Dannenhöfer:http://www.dannenhoefer.de/faqstarbasic/

Gruß Karo

Re: Wie fülle ich automatisch leere Zellen in einer Tabelle?

von turtle47 » Mo, 25.06.2007 20:52

Hallo Karolus,

guckst Du hier:
http://www.ooo-portal.de/index.php?modu ... topic=2718

Oder hast Du einen Doppelgänger? 8)

Jürgen

Re: Wie fülle ich automatisch leere Zellen in einer Tabelle?

von Karolus » Mo, 25.06.2007 20:47

Hallo
@Jürgen
Bist du dir sicher das es von mir ist ? - ich nicht.

@Wolfgang
Auf Ianns Makroseite http://homepages.paradise.net.nz/hillview/OOo/ findest du u. a. folgendes: http://homepages.paradise.net.nz/hillvi ... pecial.sxc zum Suchen und Ersetzen spezieller Zellinhalte.

Gruß Karo

Re: Wie fülle ich automatisch leere Zellen in einer Tabelle?

von turtle47 » So, 24.06.2007 21:29

Hallo Wolfgang,

hier ein Makro von Karolus aus einem anderen Forum:

Code: Alles auswählen

Sub LeereZellenSuchen()
oSelect=ThisComponent.CurrentSelection
oColumn=oselect.Columns
oRow=oSelect.Rows
For n= 0 To oColumn.getCount-1
For m = 0 To oRow.getCount-1
oCell=oselect.getCellByPosition (n, m)
Select Case oCell.String
Case ""
oCell.String = "Otto" ' "Hier Deinen Text eingeben"
End Select
next
next
End Sub
Makro einbauen, Zellbereich markieren und Makro starten. Fertig. :D

Viel Erfolg.

Jürgen

Nach oben