Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Eine große Prozedur in zwei teilen aber wie?

Betrifft: Eine große Prozedur in zwei teilen aber wie? von: Torge
Geschrieben am: 28.03.2008 10:59:54

Hallo,

kann jemand helfen?
Bekomme bei meinem Projekt die Fehlermeldung: zu große Prozeduren in zwei oder mehrere kleinere Prozeduren aufteilen.
Meine Excel-Datei ist 4 MB groß, hängt sicher auch mit dem VBA-Code zusammen und den in Excel hinterlegten Programmablauf.
Dies ist ein Ausschnitt vom Code:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
On Error Resume Next
'Einblenden von einzelner Button in Abhängikeit Auswahl B1 und K13
Const TZ = "_" ' Trennzeichen
Dim s(60) As String, i%, n, z
' Übereinstimmungen  B1  K13
For n = 1 To 60 Step 6
    z = z + 1
    s(n + 0) = Chr(64 + z) & TZ & "?"
    s(n + 1) = Chr(64 + z) & TZ & "ETW"
    s(n + 2) = Chr(64 + z) & TZ & "Bestand"
    s(n + 3) = Chr(64 + z) & TZ & "Neu"
    s(n + 4) = Chr(64 + z) & TZ & "NW"
    s(n + 5) = Chr(64 + z) & TZ & "NK"
Next n
If Not Application.Intersect(Target, Range("B1:K12")) Is Nothing Then
    s(0) = Sheets("Passwort").Range("B1").Value & TZ & Sheets("Passwort").Range("K12").Value
    For i = 1 To 60
        If s(i) = s(0) Then ' Übereinstimmung gefunden
            SetButton i
            Exit Sub
        End If
    Next i
    SetButton 0 ' Alle ausblenden wenn keine Übereinstimmung
End If
Application.ScreenUpdating = True
End Sub



'Einblenden der Button in Abhängigkeit der Auswahl

Private Sub SetButton(intParam%)
Application.DisplayAlerts = False
Call AlleVerbergen
Call Zeigen

Select Case intParam
'Bei Eingabe 0

Case 0  'Bei Eingabe 0 in Zelle B1 = "?"
Sheets("Vorstellung").CommandButton1.Visible = False
Sheets("Passwort").CommandButton2.Visible = False
....usw.....bis
Case 60 'Bei Eingabe K =  Zelle B1 = "?" in K12
Sheets("Vorstellung").CommandButton1.Visible = True
Sheets("Passwort").CommandButton2.Visible = True

Case Else
End Select
Application.DisplayAlerts = True
End Sub



Wie kann man das Teilen?

Vielen Dank
T.

  

Betrifft: AW: Eine große Prozedur in zwei teilen aber wie? von: Detlef
Geschrieben am: 28.03.2008 14:35:51

Hi,

an diesen Beispielcodes liegt es garantiert nicht. Entweder hast du irgendwo eine riesige SUB
oder Funktion oder zuviel Prozeduren in einem Modul, verteile sie auf zwei oder mehr Module.

mfg Detlef


 

Beiträge aus den Excel-Beispielen zum Thema "Eine große Prozedur in zwei teilen aber wie?"