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?
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!