AW: Code optimiiieren
14.07.2005 16:40:43
Galenzo
zu 1) einfach mal einen Doppelklick auf das eingefügte Steuerelement - das bringt dich direkt zum VBA-Editor. Bei einem Button landest du in einer leeren Prozedur mit dem Namen "Commandbutton_Click. Das ist eine sogenannte Ererignisprozedur. Diese wird immer dann abgearbeitet, wenn das betreffende Steuerelement ein bestimmtes Ereignis auslöst.
Hier also wenn der Button gedrückt wird. Trage in das vordefinierte "Gerüst" einfach deinen Makroaufruf ein. Oder schreibe die einzelnen Anweisungen gleich direkt da rein.
Ich habe mir noch etwas deinen Code angeschaut. Hier ein paar Bemerkungen:
Die Selects im Modul9 sind z.B. allesamt überflüssig. Beispiele:
aus:
Range("A3").Select
ActiveCell.FormulaR1C1 = "417"
wird:
Range("A3")=417
aus:
Columns("D:J").Select
Selection.EntireColumn.Hidden = False
wird:
Columns("D:J").EntireColumn.Hidden = False
Wenn ich mir die Prozeduren "Schüler_X_oHA_eintragen()" anschaue, sieht das so aus, als ob die alle das gleiche machen. Das könnte man in einer Prozedur zusammenfassen.
Dazu kannst du einer Prozedur einen (oder auch mehrere) Parameter mit auf dem Weg geben:
"
Sub Schüler_oHA_eintragen(Nummer as Integer)
..code..
Worksheets("Liste").Range("iv1").Value = Nummer
..code...
End Sub
Diese
Sub erwartet nun also beim Aufruf eine "Schülernummer", mit der sie dann weiterarbeitet. Der Aufruf gestaltet sich dann so:
..code..
Schüler_oHA_eintragen 6
..code..
Aber was ich ncoh bemerkt habe - wenn du zu Beginn einer Prozedur
Application.ScreenUpdating = False
anweist, dann solltes du am Ende der Prozedur auch wieder ein
Application.ScreenUpdating = True
einbauen. (Vielleicht liegt ja alles auch nur <u>daran</u>?
Zu mehr habe ich im Moment leider keine Zeit...
Wende dich doch mit konkreten Fragen ans Forum - da wird dir immer geholfen
Viel Erfolg!