Seite 1 von 1

Fehlerhafter Makro?

Verfasst: Mo, 17.12.2007 13:20
von DelaYer
Hallo,

ich habe ein Makro geschrieben, wonach ich die Funktion erst einmal per hand prüfen will. Doch das klappt aus irgendeinem Grund nicht. Vielleicht fällt euch der Fehler auf:

Sub anredeherren

Dim strAnrede As String
strAnrede = InputBox("Bitte Anrede eingeben!")
strAnrede = AnredeKorrekt(strAnrede)

MsgBox "Die korrekte Anrede Eines Herren lautet: " & strAnrede

End Sub

Function AnredeKorrekt(strA As String) As String
If Left(strA, 4) = "r" Then ´Wenn der 4te Buchstabe, bei Herr das "r", dem Wert
´entspricht, dann soll also ein n angehangen werden
strA=strA & "n"
End If
strA=ConvertFromUrl(strA) ´Diese Zeile verstehe ich nicht aus der Vorlage
AnredeKorrekt = strA
End Function

hoffe ihr könnt mir erstmal weiterhelfen. die nächste Frage, die mir im Kopfe schwirrt, stelle ich beim nächsten male :)

Gruss

Re: Fehlerhafter Makro?

Verfasst: Mo, 17.12.2007 13:44
von komma4
die Funktion LEFT gibt eine Anzahl Zeichen zurück, Du sucht MID()

Die Funktion convertToURL brauchst Du bei Deiner Zeichenbearbeitung nicht....

Re: Fehlerhafter Makro?

Verfasst: Mo, 17.12.2007 13:48
von DelaYer
ja danke, genau in der Zeile: "If Left(strA, 4) = "r" Then "
gab es wohl das problem, was nun gelöst ist.

jetzt habe ich aber eine andere Frage: Da ich noch recht frisch im Thema Makroanwendungen bei OpenOffice bin, kenne ich so einige Programmiercodes noch nicht.
ich will den Makro im Textfeld einbauen. Das Textfeld gibt den Inhalt der Spalte u. Zeile einer Tabelle wieder. Damit ich meine gewünschte Ausgabe (modifizierte Inhalt) erhalte, muss ich ja den Zugriff des Textfeldes (Wertzuweisung Inhalt) im Makro deklarieren, was mir noch nicht gelingt, weil mir der oocode dafür fehlt.

Re: Fehlerhafter Makro?

Verfasst: Fr, 21.12.2007 13:53
von DelaYer
vielleicht war meine frage nicht präziese genung gestellt, also versuche ich es noch einmal:

ich habe ein Textfeld in einem Formular. dieses Textfeld liest datensatz für datensatz die spalte einer Tabelle heraus.
in diesem Fall heisst die Spalte: Anrede. Da es in dieser Tabelle ausschließlich nur die Anrede "Herr" oder "Frau" gibt, habe ich den makro (siehe oben) geschrieben, um nach dem Herr ein "n" ranzuhängen.
Der Inhalt des Textfeldes nach Ablauf des Makros soll also dementsprechend verändert werden.

In diesem Makro macht man die Eingabe von strAnrede ja über die Inputbox und die Ausgabe kommt über eine Messagebox. Dies ist allerdings wie gesagt nicht mein Ziel. ICh bekomme es leider nicht hin, dass das Makro den Inhalt des Textfeldes als Eingabe nimmt und am Ende des Makros die Ausgabe in dasselbe Textfeld schreibt, sodass der Inhalt des Textfeldes einfach selbstständig modifiziert wird. Dieses geht anscheinend mit der Funktion: com.sun.star.frame....womit aber aber noch nicht klarkomme

hoffe mir kann geholfen werden

Gruß
DelaYer

Re: Fehlerhafter Makro?

Verfasst: Fr, 21.12.2007 15:18
von komma4
Du suchst Code, um ein Textfeld-Text zu setzen?

Code: Alles auswählen

oDialog.getControl( "Anrede" ).Text = "Herr"
oder ergänzen?

Code: Alles auswählen

oDialog.getControl( "Anrede" ).Text = oDialog.getControl( "Anrede" ).Text & "n"
Hilfreich für mich das 'StarBasic' zu begreifen, waren u.a. die
Beispiele von...:
http://www.dannenhoefer.de

(ab hier in Englisch)
http://www.ooomacros.org
http://www.pitonyak.org
(Andrew hat zwei Dokumente, eines für Basic und ein
weiteres zur OOo-Datenbankprogrammierung)

...und natürlich der Basic-Bereich im http://www.oooforum.org

Vielleicht helfen Dir auch meine Makros weiter.
Viel Erfolg!