Makro Ausgabebox

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

Moderator: Moderatoren

Soge
**
Beiträge: 27
Registriert: Di, 25.08.2009 20:22

Makro Ausgabebox

Beitrag von Soge »

Hallo zusammen,

ich habe ein größeres Tabellendokument in dem ich mittels Makros Eingaben in verschiedene Tabellen einspeicher.
Zudem habe ich mittels ein paar Funktionen Abbruchbedingungen erstellt damit das Aakro nicht ausführt.
Nun kommt aber immer die Ausgabebox mit Laufzeitfehler, möchte das gerne ändern in eine Information warum er abbricht. (bsp "Speicherung nicht erfolgt da Daten fehlen" oder ähnlichem)
Wie stelle ich das an?
Vielen Dank schonmal im Vorraus.

mfg
Soge


Moderation,4: in BASIC Unterbereich verschoben; einen sinnvollen Betreff werde ich setzen, wenn mir das Problem klar ist
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makro Ausgabebox

Beitrag von komma4 »

Welche OOo-Version? Welches Betriebssystem?

Welche Meldung kommt genau, an welcher Stelle des Codes (diesen hier zeigen!)?

Mit einem Posting "bekomme Laufzeitfehler" kann hier keiner etwas anfangen: bitte mehr Angaben!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Soge
**
Beiträge: 27
Registriert: Di, 25.08.2009 20:22

Re: Makro Ausgabebox

Beitrag von Soge »

Hi,
Ich habe OOo 3.2.1 und windows 7

... vielleicht habe ich mich oben etwas unklar ausgedrückt ... kann sein. mein wusch ist es nicht den Laufzeitfehler wegzubekommen sondern die meldung zu ändern

ok als Beispiel wenn ich zu viele Zeilen beschreiben will kommt

Code: Alles auswählen

BASIC-Laufzeitffehler.
Es ist eine Extension aufgetreten
Type: com.sun.star.container.NoSuchElementException
Message: .
an der stelle: blatt2=ThisComponent.sheets.getbyName(a(0))

Code: Alles auswählen

Nr: '----------------------------------Nr------------------------------------------
ifblatt=ThisComponent.sheets.getbyname("Eingabe_Ausgabe")
ifzelle=ifblatt.getcellrangebyName("C4")
ifziel=ifzelle.string
if ifziel = "" then goto Bezeichnung
blatt=ThisComponent.sheets.getbyname("Eingabe_Ausgabe")
zelle=Blatt.getcellrangebyName("C4")
ziel=zelle.string
zblatt=ThisComponent.sheets.getbyname("Eingabe_Ausgabe")
zzelle=zBlatt.getcellrangebyName("H4")
zziel=zzelle.string
a()=split(zziel,".")
if a(0)="$Vermögensverwaltung" then a(0)="Vermögensverwaltung" 
--> blatt2=ThisComponent.sheets.getbyName(a(0)) <--
zelle2=blatt2.getcellrangebyName(a(1))
zelle2.formula=zie
Edit: ganz vergessen :D
viel lieber wäre mir eine meldung wie

Code: Alles auswählen

Mehr Zeilen können in dieser Tabelle nicht geschrieben werden!
Edit2: Der Laufzeitfehler kommt weil in der Zelle H4 nicht etwas steht wie "tabelle1.A1" sonder "kein platz verfügbar" also eine meiner abbruchbedingungen.

mfg Soge
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makro Ausgabebox

Beitrag von komma4 »

Du brauchst an der Stelle eine Abfrage, ob das gewünschte Tabellenblatt "Vermögensverwaltung" überhaupt vorhanden ist... das sagt die Fehlermeldung nämlich.

Also:

Code: Alles auswählen

If ThisComponent.Sheets().hasByName( a(0) ) Then
   blatt2=ThisComponent.sheets.getbyName(a(0))
Else
   Msgbox "Blatt " & a(0) & " nicht vorhanden!" 

REM und hier eine geeignet Massnahme, wie EXIT SUB oder STOP
End If

Hilft das weiter?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Soge
**
Beiträge: 27
Registriert: Di, 25.08.2009 20:22

Re: Makro Ausgabebox

Beitrag von Soge »

Hi,

um ehrlich zu sein nein. Das Tabellenblatt ist ja Vorhanden nur wird es eben in zelle H4 nicht angegeben weil die Tabelle voll ist.
eine Abrfage auf die Zelle H4 wäre mir lieber ... kenne mich im Makro einfach zu wenig aus ... den code hab ich vor 2 jahren hier aus dem forum für ein anderes Problem bekommen... aber ich steig noch nicht so richtig hinter die thematik was was bewirkt etc.

mfg
Soge
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makro Ausgabebox

Beitrag von komma4 »

Die Fehlermeldung "no such element exception" in der Zeile mit Zugriff auf ein Tabellenblatt mit Name (getByName) bedeutet definitiv, dass das Blatt mit dem Namen nicht vorhanden ist.

Wenn Du H4 abfragen willst, dann mach' das auch

Code: Alles auswählen

If ThisComponent.Sheets().getByName( "Eingabe_Ausgabe" ).getCellRangeByName( "H4" ).String = "kein platz verfügbar" Then
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Soge
**
Beiträge: 27
Registriert: Di, 25.08.2009 20:22

Re: Makro Ausgabebox

Beitrag von Soge »

hi,

hab jetzt etwas gebraucht aber jetzt funktioniert es.
vielen Dank für die Mühen :)

mfg
Soge
Antworten