[GELÖST]CALC: Bereichsnamen löschen

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: [GELÖST]CALC: Bereichsnamen löschen

Re: CALC: Bereichsnamen löschen

von jef0815 » Fr, 08.04.2016 21:07

gut, überredet! Ich bin bisher ja auch zufrieden gewesen und wenn beim Fahrradreifen Luft aus dem Ventil entweicht, kaufe ich mir ja auch nicht gleich ein neues Fahrrad.

Gruß Jürgen

Re: CALC: Bereichsnamen löschen

von Stephan » Fr, 08.04.2016 07:25

@Stephan: die Leute neigen dazu sowas abzuschreiben ohne nachzudenken! …
ja, berechtigte Kritik.

Ich muss zu meiner Schande gestehen das ich sehr selten 'for each ... in ... next' verwende - womit ich sagen will das hätte ich nicht abgeschrieben ich wahrscheinlich trotzdem nicht 'for each ...' verwendet, sondern es per Index gemacht hätte.



Gruß
Stephan

Re: CALC: Bereichsnamen löschen

von jef0815 » Do, 07.04.2016 20:56

Hallo Balu,
Klasse, das ist es was mich etwas beruhigt. Das Problem scheint also in diesem Fall an Aoo zu liegen. Wie schon beschrieben ist das Problem für mich erst einmal erledigt (Handarbeit), es wäre aber schön gewesen eine Lösung per Makro zu haben.

An alle, vielen Dank für Euere Hilfe. Stellt sich für mich jetzt die Frage nach Ooo zu wechseln, aber was funktioniert da nicht so wie gewollt? Muss ich halt ausprobieren.

Gruß Jürgen

Re: CALC: Bereichsnamen löschen

von jef0815 » Do, 07.04.2016 20:43

Hallo Karolus,
danke für Deine Tipps. Mit Python kenne ich mich gar nicht aus. Da ich noch am üben bin, werde ich es bestimmt irgendwann auch schaffen, einen Screenshot rein zustellen.

Gruß Jürgen

Re: CALC: Bereichsnamen löschen

von jef0815 » Do, 07.04.2016 20:39

Hallo Christian,
danke für Dein Angebot, aber ich habe bei einem Excel-Anwender die Namen alle per Hand gelöscht. War zwar aufwendig aber jetzt ist's ok.

Gruß Jürgen

Re: CALC: Bereichsnamen löschen

von Karolus » Do, 07.04.2016 17:56

Hallo

Wie bereits oben vermutet, die Problemkinder sind unter denen mit Geltungsbereich auf einzelnen Tabellenblättern
Namensbereiche.png
Namensbereiche.png (31.77 KiB) 5940 mal betrachtet
Zum entfernern sämtlicher Bereiche( python ):

Code: Alles auswählen

def main():
    doc = XSCRIPTCONTEXT.getDocument()
    remove_named_ranges(doc)
    sheets = doc.Sheets
    sheetnames= sheets.ElementNames
    for sheetname in sheetnames:
        remove_named_ranges(sheets.getByName( sheetname ))

        
def remove_named_ranges( namerange_object ):
    nameranges = namerange_object.NamedRanges
    for rangename in nameranges.ElementNames:
        nameranges.removeByName(rangename)

Re: CALC: Bereichsnamen löschen

von balu » Do, 07.04.2016 15:10

Hallo.
Stephan hat geschrieben: Nenne bitte einen konkreten Link zu einer konkreten Datei
Vor dem Problem stand ich auch. Bis das ich gesehen hatte das Jürgen (jef0815) es beschrieben hatte wie man an die Datei herankommt. Ist in seinem Beitrag nicht sofort ersichtlich, aber es steht dort.
Damit das suchen entfällt, erklär ich das mal kurz.

Hier gelangt man zu der dementsprechenden Seite.

Dann muss man runterscrollen bis zu diesem hier:
Gewinnzahlen
Samstag 1955 - 2014


Das ist ein Link zu einem ZIP. Diesen Link habe ich jetzt mal hier rein kopiert.
Klick mich!
In diesem ZIP-Archiv befindet sich nur eine Datei. Name ist: LOTTO_6aus49.xls


Was bei mir Funktioniert ist folgendes.
Die xls in OOo 3.2.1 öffnen, und als ods speichern. Anschließend Datei erneut öffnen und das erste vom Jürgen gezeigte Makro ausgeführt. Ergebnis: Alle Namen gelöscht.

Die eben gespeicherte ods mit der Namensliste in AOO 4.1.1 & AOO 4.1.2 geöffnet, das besagte Makro ausgeführt. Alle Namen gelöscht.


Die xls in AOO 4.x.x geöffnet und als ods gespeichert. Erneut geöffnet und das Makro ausgeführt. Ergebnis: Fehlermeldung in der Codezeile

Code: Alles auswählen

   x.removeByName(x(i-1).Name)
Text der Fehlermeldung so wie Jürgen schon schön aufgeschrieben hatte.
. BASIC-Laufzeitfehler.
. Es ist eine Exception aufgetreten.
. Type: com.sun.star.uno.RuntimeException
. Message:
Ein Auszug aus der Namensliste der xls-Datei inklusive einem #Ref-Fehler sieht in OOo 3.2.1 wie folgt aus.
ooo.jpg
ooo.jpg (57.52 KiB) 5956 mal betrachtet
Und in AOO so
aoo.jpg
aoo.jpg (55.92 KiB) 5956 mal betrachtet
Wie eindeutig zu sehen ist, haben einige Namen in AOO noch Zahlen in Runden Klammern stehen, wahrscheinlich Jahreszahlen. Und ich sage jetzt mal, das diese Klammern ein Problem darstellen, oder der zusätzliche leerraum zwischen dem Namen und der Klammer. Da ich aber mit dieser Problematik noch nichts zu tun hatte, kann ich auch nix weiteres dazu sagen wie z.B. das Löschmakro umgeschrieben werden muss.



Gruß
balu

Re: CALC: Bereichsnamen löschen

von Karolus » Do, 07.04.2016 11:23

Hallo

@Stephan: die Leute neigen dazu sowas abzuschreiben ohne nachzudenken! …

Code: Alles auswählen

Doc_Ranges = ThisComponent.NamedRanges
for each RangeName in Doc_Ranges.ElementNames
    content = Doc_Ranges.getByName( RangeName ).Content
    if content = "" or left(content, 6) = "$#REF!" then
        Doc_Ranges.removeByName( RangeName )
    end if
next
Im Übrigen gibts theoretisch auch …NamedRanges nicht nur global auf Dokument-Ebene sondern auch für einzelne Tabellenblätter(LO)

Re: CALC: Bereichsnamen löschen

von Stephan » Do, 07.04.2016 08:54

Du hast natürlich recht, in der obersten Zeile sind nur die Daten des Jahres, in der zweiten Zeile dann die gesammelten Daten als xls-Datei.
Da ich im Moment nicht die Ursache verstehe warum Dein Makro (siehe erster Post des Threads) eine Fehlermeldung bringt, versuche doch einmal das folgende Makro welches nur die fehlerhaften Namen entfernen sollte:

Code: Alles auswählen

Sub alle_Bereiche_loeschen()
x = ThisComponent.namedRanges
y = x.Count
For i = y To 1 Step -1
   If Left(x.getByName(x(i-1).Name).Content, 6) = "$#REF!" OR x.getByName(x(i-1).Name).Content = "" Then
     x.removeByName(x(i-1).Name)
   End If
Next i
End Sub
Gruß
Stephan

Re: CALC: Bereichsnamen löschen

von jef0815 » Mi, 06.04.2016 15:45

Hallo Chris,
1. ich habe kein Excel
2. ich arbeite mit AOO 4.1.2
vielleicht liegt es ja daran, oder Du versuchst die xls-Datei einmal unter einer früheren Version (.xls) abzuspeichern.

Gruß Jürgen

Re: CALC: Bereichsnamen löschen

von jef0815 » Mi, 06.04.2016 15:38

Hallo Stephan,
Du hast natürlich recht, in der obersten Zeile sind nur die Daten des Jahres, in der zweiten Zeile dann die gesammelten Daten als xls-Datei.
Gruß Jürgen

Re: CALC: Bereichsnamen löschen

von Stephan » Mi, 06.04.2016 09:22

Eine wunderbare Beispieldatei findest Du unter "lotto-hessen.de" im Bereich "Gewinnzahlen & Quoten". Dort kannst Du Dir Gewinnzahlen downloaden. In diesen Dateien erkennst Du das beschriebene Problem.
Nenne bitte einen konkreten Link zu einer konkreten Datei denn mit dem erstbesten Download auf der Seite, nämlich Lotto 6 aus 49 Gewinnzahlen 2015 erhalte ich eine reine txt-Datei, die natürlich keine Bereichen enthält weil das technisch bei txt nicht geht.


Gruß
Stephan

Re: CALC: Bereichsnamen löschen

von jef0815 » Di, 05.04.2016 11:55

Hallo Chris,
in den benannten Bereichen sind auch keine Leerzeichen, das ist irgendeine Verknüpfung mit dem Blattnamen. Wie vorher schon beschrieben kann ich die paar Bereiche löschen, die einen zusammenhängenden Namen besitzen. Eine wunderbare Beispieldatei findest Du unter "lotto-hessen.de" im Bereich "Gewinnzahlen & Quoten". Dort kannst Du Dir Gewinnzahlen downloaden. In diesen Dateien erkennst Du das beschriebene Problem. Auch Dir möchte ich für Dein Engagement bezüglich meiner Anfrage danken.
Gruß Jürgen

Re: CALC: Bereichsnamen löschen

von jef0815 » Mo, 04.04.2016 19:44

Hallo Faol,
Danke für Deine ausführliche Beschreibung und Hinweise. Da ich auf meinem Rechner nicht mit Excel arbeite, muss ich wohl oder übel so vorgehen wie beschrieben. Ich hoffe es kommt nicht all zu oft vor.

Vielen Dank
Jürgen

Re: CALC: Bereichsnamen löschen

von jef0815 » Mo, 04.04.2016 14:17

Hallo,
wenn ich die Excel-Datei mit Calc öffne und dann unter ods abspeichere, kann ich die Namen zwar einzeln löschen, nach dem Speichern sind alle wieder vorhanden. Wenn ich die Excel-Datei mit Calc öffne und vor dem Abspeichern die Namen einzeln lösche, dann sind sie für immer verschwunden. Noch eines zu den Namen: Unter den festgelegten Namen gibt es welche die zusammenhängend sind, die kann ich mit dem Makro auch löschen. Die meisten Namen haben noch eine Verknüpfung mit dem Tabellenblatt (z.B. "Excel_BuiltIn_irgendwas (Blattname)". Darin liegt wahrscheinlich das Problem. Im Makro kann ich die Elemente auflisten, es erscheinen auch alle, allerdings ohne diesen Zusatz in Klammern. Für mich ist das Problem also gelöst, obwohl dieser Aufwand per Hand (ca. 300 Namen) sehr aufwendig ist und ich unter einer "Lösung" etwas anderes verstehe. Danke für Deine Mühe.
Gruß Jürgen

Nach oben