Re: [de-users] OOo 3.1.1 - Problem mit Calc Makro

2009-09-22 Diskussionsfäden Jörg Schmidt
Hallo,

das Ganze ist ein Fehler in OOo 3.1.1 (ich glaube in 3.x gesamt), in z.B. 2.4.0 
tritt das Problem nicht auf

Sigrid Carrera schrieb:
 sValue = ReplaceString(sValue, .,,)
 (Ist wohl ein Bestandteil der Depot-Bibliothek, die von OOo
 mitgeliefert wird.) 

ja, und wird in OOo 3.1.1 nicht richtig erkannt, denn es wird dort im Prinzip 
in der Funktion GetCurrentRate die Ladeanweisung:

GlobalScope.BasicLibraries.LoadLibrary(Tools)

sowie die Änderung von:
sValue = ReplaceString(sValue, .,,)

in:
sValue = Tools.Strings.ReplaceString(sValue, .,,)

 Kann mir jemand mit besseren Makro-Kenntnissen dabei weiterhelfen? Wie
 bekomme ich das Makro doch noch zum Funktionieren? 

Es ist wohl am Einfachsten [1] die 2 Funktionen:

GetCurrentRate
ReplaceString

ans Ende des Codes der Datei beispiel_aktien.ods zu kopieren.

Die Funktion GetCurrentRate befindet sich in der OOo-Bibliothek Depot im 
Modul Internet und die Funktion ReplaceString lautet (entnommen aus OOo 
2.4.0):

' Replaces the string OldReplace through the String NewReplace in the String
' 'BigString'
Function ReplaceString(ByVal Bigstring, NewReplace, OldReplace as String)  as 
String
Dim i%, OldReplLen%, BigLen%

If NewReplace  OldReplace Then
OldReplLen = Len(OldReplace)
i = 1
Do
Biglen = Len(BigString)
i = Instr(i,BigString,OldReplace)
If i  0 then
BigString = Mid(BigString,1,i-1)  NewReplace  
Mid(BigString,i + OldReplLen,BigLen  - i + 1 - OldReplLen
i = i + Len(NewReplace)
End If
Loop until i = 0
End If
ReplaceString = BigString
End Function



Gruß
Jörg

[1]
'Richtiger' wäre die ganz am Anfang genannten Änderungen in der Funktion 
GetCurrentRate zu machen. Da diese jedoch Bestandteil der OOo-Bibliotheken ist 
müßte zunächst der Schreibschutz der entsprechenden Bibliothek Depot entfernt 
werden um die Änderung vornehmen zu können. 
Quick und dirty ginge es auch die Änderungen direkt in der Datei Internet.xba 
zu machen wobei dann statt:
GlobalScope.BasicLibraries.LoadLibrary(Tools) einzutragen wäre: 
GlobalScope.BasicLibraries.LoadLibrary(quot;Toolsquot;)

Wesentlich besser ist es m.E. sich nie auf das Vorhandensein und korrekte 
funktionieren der OOo-Bibliotheken zu verlassen, weil auf unbekannten Systemen 
diese Bibliotheken verändert oder fehlend sein können. 
Im Normalfall wäre also der Code der hier benötigten 2 Funktionen adäquat in 
der Datei beispiel_aktien.ods mitzuliefern. 
Im speziellen Fall war das aber bewußt nicht beabsichtigt, weil ja gezeigt 
werden sollte wie mitgelieferte OOo-Bibliotheken genutzt werden können.  


-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org



Re: [de-users] OOo 3.1.1 - Problem mit Calc Makro

2009-09-22 Diskussionsfäden Sigrid Carrera
Hallo Jörg, 

Am Tue, 22 Sep 2009 10:05:46 +0200
schrieb Jörg Schmidt joesc...@web.de:

 Hallo,
 
 das Ganze ist ein Fehler in OOo 3.1.1 (ich glaube in 3.x gesamt), in
 z.B. 2.4.0 tritt das Problem nicht auf
 
 Sigrid Carrera schrieb:
  sValue = ReplaceString(sValue, .,,)
  (Ist wohl ein Bestandteil der Depot-Bibliothek, die von OOo
  mitgeliefert wird.) 

[...]

 Es ist wohl am Einfachsten [1] die 2 Funktionen:
 
 GetCurrentRate
 ReplaceString
 
 ans Ende des Codes der Datei beispiel_aktien.ods zu kopieren.

Danke schön. Das habe ich gemacht und nun funktioniert auch das Makro
wieder. 

Noch ein extra Danke schön für die genaue Beschreibung, was ich von wo
kopieren muss. :)

Gruß, 
Sigrid

-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org