🍀 Das LibreOffice Forum braucht HEUTE Ihre Hilfe! 🍀
❤️ Spenden Sie jetzt und sichern Sie die Zukunft unseres LibreOffice-Forums ❤️
Ihre Spende hilft, die Community offen, werbefrei (bei Registrierung) und lebendig zu halten. Vielen lieben Dank!

🙏 DANKE >> << DANKE 🙏

>> Das LibreOffice-Forum lebt von Ihnen – und von vielen Experten, die freiwillig und kostenlos ihr Wissen teilen.<<
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

Makro Basic Fehler -> bitte nach Programmierung verschieben

WRITER hat alles, was Sie von einer modernen, voll ausgestatteten Textverarbeitung erwarten.
Antworten
turner1984
Beiträge: 2
Registriert: Do 5. Jun 2014, 11:49

Makro Basic Fehler -> bitte nach Programmierung verschieben

Beitrag von turner1984 » Do 5. Jun 2014, 12:10

Hallo, ich noob habe mir einen Makro - Code gekapert, um meine ODT Ausgabe von meinem Server von html zu befreien, leider gibt mir das Script einen Fehler aus. Hoffe das einer von Ihnen,kurz sagen kann was ich da falsch gemacht habe.
Wie gesagt ist gekapert :oops: und ich verstehe davon nicht so viel, lese mir gerade was dazu durch. Aber hilft mir bisher nicht weiter. ----> Damit der Kontext nicht fehlt, warum mache ich das überhaupt?
Es geht um die ODT Ausgabe von Dolibarr, einem Opensource CRM- und ERP System, das leider beim Erstellen von odt Dokumenten nach Vorlage aus der Datenbank immer statt ü &uuml etc. und <br /> reinschreibt. :evil: Also wenn diese Lösung klappt, würde es nicht nur mir helfen, sondern auch Dolibarr für Startups und Freelancer extrem vereinfachen. Vielen Dank.

Code: Alles auswählen

'Attribute VB_Name = "modUmlauteErsetzen"
Sub UmlauteErsetzen()
  'Erweitern Sie das folgende Array, wenn
  'weitere Buchstaben ersetzt werden sollen
  Dim sSuchtext(8) As String
  Dim sErsetzen(8) As String
  '
  sSuchtext(1) = "&Auml;"
  sErsetzen(1) = "Ä"
  sSuchtext(2) = "&auml;"
  sErsetzen(2) = "ä"
  sSuchtext(3) = "&Ouml;"
  sErsetzen(3) = "Ö"
  sSuchtext(4) = "&ouml;"
  sErsetzen(4) = "ö"
  sSuchtext(5) = "&Uuml;"
  sErsetzen(5) = "Ü"
  sSuchtext(6) = "&uuml"
  sErsetzen(6) = "ü"
  sSuchtext(7) = "&szlig;"
  sErsetzen(7) = "ß"
  sSuchtext(8) = "<br />"
  sErsetzen(8) = " "
  '
  For i = 1 To 8
    Selection.Find.ClearFormatting <-- hier gibt er den Fehler aus: BASIC-Laufzeitfehler. Objektvariable nicht belegt.
    Selection.Find.Replacement.ClearFormatting
    '
    With Selection.Find
      .Text = sSuchtext(i)
      .Replacement.Text = sErsetzen(i)
      .Forward = True
      .Wrap = wdFindContinue
      .Format = False
      .MatchCase = True
      .MatchWholeWord = False
      .MatchWildcards = False
      .MatchSoundsLike = False
      .MatchAllWordForms = False
    End With
    '
    Selection.Find.Execute Replace:=wdReplaceAll
  Next i
End Sub
Vielen Dank für sachdienliche Hinweise.

geändert am 05.06.2014
Sorry, dass ich mich falsch eingeordnet habe. Danke für den Hinweis. Lieber Admin bitte verschieb mich in die Programmierung. Danke.
Zuletzt geändert von turner1984 am Fr 6. Jun 2014, 10:51, insgesamt 2-mal geändert.

Benutzeravatar
lorbass
* LO-Experte *
Beiträge: 627
Registriert: Mo 25. Apr 2011, 18:17

Re: Makro Basic Fehler

Beitrag von lorbass » Do 5. Jun 2014, 14:20

Deine Frage gehört in den Bereich LibreOffice Programmierung.

Gruß
lorbass

turner1984
Beiträge: 2
Registriert: Do 5. Jun 2014, 11:49

Re: Makro Basic Fehler -> bitte nach Programmierung verschie

Beitrag von turner1984 » Fr 6. Jun 2014, 11:32

Habe selber die Lösung gefunden

Sub sonderzeichenaustauschen
doc = thisComponent

repl = doc.createReplaceDescriptor()

repl.SearchAll = True
repl.SearchCaseSensitive = True
repl.SearchRegularExpression = False
repl.SearchStyles = False
repl.SearchWords = False

searchchars = array( "&Auml;","&auml;","&Uuml;","&uuml;","&Ouml;","&ouml;","<br />" ) ' hier musst du deine Sonderzeichen eintragen
replacechars = array( "Ä","ä","Ü","ü ","Ö","ö"," " ) 'und hier die Ersetzungen

for i = 0 to ubound( searchchars )
repl.SearchString = searchchars(i)
repl.ReplaceString = replacechars(i)
doc.replaceAll( repl )
next i


End Sub

Rockt.... nur leider führt er es headless nicht aus... weiß jmd. dazu antwort?


An alle, die das LibreOffice-Forum gern nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das laufende.
Einfach per Kreditkarte oder PayPal. Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.



❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten