Hallo zusammen,
ich habe ein Problem mit einem Formular. In meinem OpenOffice 3.0 habe ich 2 Tabellen angelegt, die eine ist eine Tabelle, in der die Daten für ein ganzes Jahr eingetragen werden, das 2.Tabellenblatt ist quasi der Ausdruck monatsweise. Ich stelle auf der ersten Tabelle ein, welchen Monat ich ausdrucken möchte und per sverweis holt sich die 2.Tabelle dir nötigen Daten, so dass ich dann den Ausdruck habe.
Soweit zu meinem System, mein Problem ist jetzt, dass sich die Anzahl von Personen immer wieder ändern kann in der ersten Tabelle. Dort ist es nicht so schlimm, da ich ein Macro zum sortieren habe, so dass auch auf dem Ausdruck immer die richtige Reihenfolge ist. Nur auf dem Ausdruck, habe ich jetzt genug Sverweise angelegt, dass sie bei einer Änderung in der 1.Tabelle geholt würden, nur habe ich jetzt natürlich einige Leerzeilen in meinem Ausdruck, in denen der Sverweis steht, falls in der Tabelle 1 mal noch ein paar Namen zu kommen, die aber im Moment nicht gebraucht werden. Da ich keine Lust habe immer per Hand die unbenutzten Zeilen zu verstecken habe ich mir ein Macro hier im Forum gesucht und versucht auf meine Gegebenheiten anzupassen, jedoch bekomme ich beim Ausführen des folgenden Macros den Fehler: "Basic-Laufzeitfehler Variable nicht definiert", makiert ist die Stelle im Macro "for zi = 8 to 63".
Das Macro:
Sub Zeilen_ausblenden_bei
with thisComponent.sheets().getbyname("Comprobante")
for zi = 8 to 63
if .getcellbyposition(2,zi).string = "0.00" or .getcellbyposition(2,zi).string = """" then
.rows(zi).isvisible = false
else
.rows(zi).isvisible = true
end if
next
end with
End Sub
Kann mir jemand sagen, woran das Problem liegt, die Tabelle mit dem Ausdruck heisst "Comprobante", die Zeilen die beachtet werden sollen sind 9-64. Ich habe das Macro hier im Forum gefunden, habe aber nicht so viel Ahnung davon, hilft mit das Macro, bei dem was ich möchte, wenn es funktionieren sollte? Ist es ein Problem, dass das Macro nur als Sub in einer Liste von Macros ist (zum Beispiel das zum Namen sortieren ist dabei und funktioniert)?
Ich hoffe ich habe genug Infos gegeben und ihr könnt mir helfen, ich wäre euch sehr dankbar.
Liebe Grüsse
Macro zum ausblenden leerer Zeilen
Moderator: Moderatoren
-
- Beiträge: 5
- Registriert: Di, 25.11.2008 22:52
Re: Macro zum ausblenden leerer Zeilen
Am Anfang des Moduls ist explizite Variablendeklaration festgelegt (Option Explicit), wobei aber anschliessend die Variable zi nirgens deklariert wirdKann mir jemand sagen, woran das Problem liegt
schreibe z.B. vor die Zeile:
Code: Alles auswählen
for zi = 8 to 63
Code: Alles auswählen
Dim zi
Gruß
Stephan
-
- Beiträge: 5
- Registriert: Di, 25.11.2008 22:52
Re: Macro zum ausblenden leerer Zeilen
Hey,
vielen Dank schonmal für die Antwort, ich habe deinen Rat befolgt und bekomme auch keine Fehlermeldung mehr, da die Variable ja jetzt deklariert ist.
Nur leider funktioniert es immer noch nicht, er sagt nichts, nur macht leider auch nichts.
Ist ein Fehler im Makro, wenn ich auf der Tabelle "comprobante" anhand der Spalte B entscheiden lassen möchte, dass er die Zeilen versteckt, die zwar den Sverweis drin stehen haben, aber da dieser keinen Namen in Tabelle 1 findet keine Zahl, sondern ein leeres Feld hergibt?
Hier nochmals mein Makro (nach Berichtigung):
Vielen Dank
vielen Dank schonmal für die Antwort, ich habe deinen Rat befolgt und bekomme auch keine Fehlermeldung mehr, da die Variable ja jetzt deklariert ist.
Nur leider funktioniert es immer noch nicht, er sagt nichts, nur macht leider auch nichts.
Ist ein Fehler im Makro, wenn ich auf der Tabelle "comprobante" anhand der Spalte B entscheiden lassen möchte, dass er die Zeilen versteckt, die zwar den Sverweis drin stehen haben, aber da dieser keinen Namen in Tabelle 1 findet keine Zahl, sondern ein leeres Feld hergibt?
Hier nochmals mein Makro (nach Berichtigung):
Code: Alles auswählen
Sub Zeilen_ausblenden_bei
with thisComponent.sheets().getbyname("comprobante")
dim zi
for zi = 8 to 63
if .getcellbyposition(2,zi).string = "0.00" or .getcellbyposition(2,zi).string = """" then
.rows(zi).isvisible = false
else
.rows(zi).isvisible = true
end if
next
end with
End Sub
Re: Macro zum ausblenden leerer Zeilen
Hallo,
mir sind zwei Fehler aufgefallen.
1. Es wird nicht in Spalte "B" gesucht weil
in Spalte "C" sucht.
Richtig ist dann weil der Index der Zeilen und Spalten bei Null anfängt.
Also Zelle A1 entspricht Index 0,0.
Wie war das noch mit dem Informatiker, der am Bahnhof vier Koffer abholen soll und anfängt zu zählen:
"Null, eins, zwei und drei. So ein Mist, fehlt schon wieder der vierte Koffer"
2. Es wird nicht nach leeren Zellen gesucht sondern Zellen mit dem Inhalt "" .
Richtig wäre:
Viel Erfolg.
Jürgen
mir sind zwei Fehler aufgefallen.
1. Es wird nicht in Spalte "B" gesucht weil
Code: Alles auswählen
if .getcellbyposition(2,zi)
Richtig ist dann
Code: Alles auswählen
if .getcellbyposition(1,zi)....
Also Zelle A1 entspricht Index 0,0.
Wie war das noch mit dem Informatiker, der am Bahnhof vier Koffer abholen soll und anfängt zu zählen:
"Null, eins, zwei und drei. So ein Mist, fehlt schon wieder der vierte Koffer"
2. Es wird nicht nach leeren Zellen gesucht sondern Zellen mit dem Inhalt "" .
Richtig wäre:
Code: Alles auswählen
....string = "" then
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
-
- Beiträge: 5
- Registriert: Di, 25.11.2008 22:52
Re: Macro zum ausblenden leerer Zeilen
Suuper,
vielen Dank an euch beide, jetzt funktioniert alles einwandfrei... ich muss gestehen, ich habe keinerlei Ahnung von Makros und habs mir nur so zusammen gesucht, deswegen sind mir die wohl doch recht einfachen Fehler nicht aufgefallen
Naja, vielen Dank nochmal für eure schnelle Hilfe.
Liebe Grüsse
vielen Dank an euch beide, jetzt funktioniert alles einwandfrei... ich muss gestehen, ich habe keinerlei Ahnung von Makros und habs mir nur so zusammen gesucht, deswegen sind mir die wohl doch recht einfachen Fehler nicht aufgefallen

Naja, vielen Dank nochmal für eure schnelle Hilfe.
Liebe Grüsse