Hallo,
habe diverse Formulare mit dazugehörigen Codes. Nach der Bearbeitung (Erweiterung) eines besonders langen Codes bekomme ich plötzlich die Fehlermeldung "Fehler beim Kompilieren: Prozedur zu groß."
Der Code besteht hauptsächlich aus einer sehr langen Reihe, sich wiederholender If-Elementen, die beim Anklicken von Checkboxen die Aktivität, Sperrung und Farben von Text- und Bezeichnungsfeldern ändern. Hier ein Ausschnitt als Beispiel:
If Me!AdrCheck = "1" Then
Me!Adr_GebDat.Enabled = True 'Aktivität
Me!Adr_GebDat.Locked = False 'Sperrung
Me!Adr_GebDat.BackColor = RGB(255, 255, 255) 'Textfeldhintergrundfarbe weiß
Me!Adr_GebDat.ForeColor = RGB(0, 0, 0) 'Textfeldschriftfarbe schwarz
Me!Bezeichnungsfeld393.ForeColor = RGB(0, 0, 0) 'Bezeichnungsfeldschriftfarbe schwarz
Else
Me!Adr_GebDat.Enabled = False 'Aktivität
Me!Adr_GebDat.Locked = True 'Sperrung
Me!Adr_GebDat.BackColor = RGB(204, 200, 194) 'Textfeldhintergrundfarbe mittelgrau 1
Me!Adr_GebDat.ForeColor = RGB(162, 157, 150) 'Textfeldschriftfarbe mittelgrau 3
Me!Bezeichnungsfeld393.ForeColor = RGB(162, 157, 150) 'Bezeichnungsfeldschriftfarbe mittelgrau 3
End If
Nun möchte ich diesen Code aufspalten und die sich wiederholenden Teile in einen einzigen Teil setzen, den ich mit CALL aufrufen möchte. Wie ließe sich das aufspalten? Soll dabei ein Modul oder ein Klassenmodul verwendet werden?
Ich bin VBA-Anfänger, wäre sehr dankbar für eine Hilfe.
Viele Grüße
Robert
habe diverse Formulare mit dazugehörigen Codes. Nach der Bearbeitung (Erweiterung) eines besonders langen Codes bekomme ich plötzlich die Fehlermeldung "Fehler beim Kompilieren: Prozedur zu groß."
Der Code besteht hauptsächlich aus einer sehr langen Reihe, sich wiederholender If-Elementen, die beim Anklicken von Checkboxen die Aktivität, Sperrung und Farben von Text- und Bezeichnungsfeldern ändern. Hier ein Ausschnitt als Beispiel:
If Me!AdrCheck = "1" Then
Me!Adr_GebDat.Enabled = True 'Aktivität
Me!Adr_GebDat.Locked = False 'Sperrung
Me!Adr_GebDat.BackColor = RGB(255, 255, 255) 'Textfeldhintergrundfarbe weiß
Me!Adr_GebDat.ForeColor = RGB(0, 0, 0) 'Textfeldschriftfarbe schwarz
Me!Bezeichnungsfeld393.ForeColor = RGB(0, 0, 0) 'Bezeichnungsfeldschriftfarbe schwarz
Else
Me!Adr_GebDat.Enabled = False 'Aktivität
Me!Adr_GebDat.Locked = True 'Sperrung
Me!Adr_GebDat.BackColor = RGB(204, 200, 194) 'Textfeldhintergrundfarbe mittelgrau 1
Me!Adr_GebDat.ForeColor = RGB(162, 157, 150) 'Textfeldschriftfarbe mittelgrau 3
Me!Bezeichnungsfeld393.ForeColor = RGB(162, 157, 150) 'Bezeichnungsfeldschriftfarbe mittelgrau 3
End If
Nun möchte ich diesen Code aufspalten und die sich wiederholenden Teile in einen einzigen Teil setzen, den ich mit CALL aufrufen möchte. Wie ließe sich das aufspalten? Soll dabei ein Modul oder ein Klassenmodul verwendet werden?
Ich bin VBA-Anfänger, wäre sehr dankbar für eine Hilfe.
Viele Grüße
Robert