Forums Neueste Beiträge
 

Code von UserForm in Modul auslagern und verfügbar machen für verschiedene UserForms

17/04/2010 - 18:21 von Andre Gobet | Report spam
Hallo zusammen

Ich bin am erstellen einer UserForm für eine Notizmitteilung für
unsere Mitarbeiter. Dazu habe ich ganz normal eine UserForm erstellt
in welcher der Code steckt.

Nun ist es aber so, dass wir bei uns im Betrieb mehrsprachig sind und
meine UserForm recht anspruchsvoll ist und auch noch für andere zwecke
genutzt wird. Aus diesem Grund habe ich pro Sprache eine UserForm
erstellt.

Nun möchte ich meinen erstellten Code, dort wo es möglich ist Zentral
in einem Modul ablegen, damit ich nicht denselben Code in jeder
UserForm habe.

Mein Code sieht zum Beispiel so aus:

Sub fax_BitteZuruckRufen()

Dim ctext As String
Dim oRNG As Range
Dim oBM As Bookmark

ctext = IIf(Me.faxcallback.Value, ChrW(-3944), ChrW(-3943))

If ActiveDocument.Bookmarks.Exists("ibBitteZuruckRufen") Then
Set oRNG = ActiveDocument.Bookmarks("ibBitteZuruckRufen").Range

oRNG.Text = ctext

Set oBM = ActiveDocument.Bookmarks.Add(name:="ibBitteZuruckRufen",
Range:=oRNG)
oRNG.Font.name = "Wingdings 2"
oRNG.Font.Size = "12"
End If
End Sub

Probleme bereitet mir nun das "Me.faxcallback" welches ja in
verschiedenen UserForm's vorkommt und sofern der Code jedesmal in der
entsprechenden UserForm steckt auch kein Problem darstellt beim
aufrufen, dies funktionietr aber natürlich nicht, wenn der Code in
einem Modul steckt.

Hat hier schon jemand àhnliche Probleme gehabt und was habt Ihr für
Lösungen ?

Gruss

- André
 

Lesen sie die antworten

#1 Thomas Gahler
18/04/2010 - 19:39 | Warnen spam
Hallo Andre

Nun ist es aber so, dass wir bei uns im Betrieb mehrsprachig sind und
meine UserForm recht anspruchsvoll ist und auch noch für andere zwecke
genutzt wird. Aus diesem Grund habe ich pro Sprache eine UserForm
erstellt.


Zur Info, vor ein paar Wochen hatten wir hier einen Thread, in welchem wir
die Mehrsprachigkeit von UserForms besprochen haben. Schau dir den doch mal
an, ich denke dieser Weg wàre soinnvoller. Denn sonst hast du
Programmfehler, die nur in einer Sprache auftreten oder Differenzen in der
Funktionalitàt. ich würde versuchen die Spache in der UserForm in den Griff
zu bekommen und nicht x-UserForms zu erstellen.



Probleme bereitet mir nun das "Me.faxcallback" welches ja in
verschiedenen UserForm's vorkommt und sofern der Code jedesmal in der
entsprechenden UserForm steckt auch kein Problem darstellt beim
aufrufen, dies funktionietr aber natürlich nicht, wenn der Code in
einem Modul steckt.


Du musst der zentralen Prozedur mitteilen, welches Checkbox sie verwenden
soll.

Das sieht so ungefàhr so aus...

Aufruf der zentralen Prozedur
Private Sub UserForm_Click()
faxcallback chk:=Me.CheckBox1
End Sub

Zentrale Prozedur
Public Sub faxcallback( _
ByVal chk As MSForms.CheckBox)

If chk.Value Then
MsgBox "Checkbox ist aktiv", , chk.Caption
Else
MsgBox "Checkbox ist nicht aktiv", , chk.Caption
End If
End Sub



Alles klar?

Gruss von einem gestrandeten Urlauber :-(


Thomas Gahler
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows Vista (SP2), Office 2007 (SP2)

Ähnliche fragen