Makro Basic Fehler -> bitte nach Programmierung verschieben
Verfasst: 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
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 ü ü etc. und <br /> reinschreibt.
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.
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.
Wie gesagt ist gekapert

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 ü ü etc. und <br /> reinschreibt.

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) = "Ä"
sErsetzen(1) = "Ä"
sSuchtext(2) = "ä"
sErsetzen(2) = "ä"
sSuchtext(3) = "Ö"
sErsetzen(3) = "Ö"
sSuchtext(4) = "ö"
sErsetzen(4) = "ö"
sSuchtext(5) = "Ü"
sErsetzen(5) = "Ü"
sSuchtext(6) = "ü"
sErsetzen(6) = "ü"
sSuchtext(7) = "ß"
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
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.