Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
364to368
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
364to368
364to368
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Code zu lang

Code zu lang
16.01.2004 04:29:54
Stefan Glander
Hallo Excelanier,
ich habe in einer "Worksheet_Change" Prozedur folgenden Code:


'user 1
'Tab Name für Tabellenblatt1 in Rechnungen.xls vergeben
If Not ((Intersect(Target, [F5]) Is NothingAnd (Intersect(Target, [I5]) Is Nothing)) Then
Workbooks("Rechnungen.xls").Sheets(1).Name = ActiveSheet.[L5].Value
End If
' Feld "Mandantenname" füllen in Rechnungen.xls Tabellenblatt1
If Not ((Intersect(Target, [F5]) Is NothingAnd (Intersect(Target, [I5]) Is Nothing)) Then
Workbooks("Rechnungen.xls").Worksheets(1).Range("G26") = ActiveSheet.[AG5].Value
End If
' Feld "Mandant seit" füllen in Rechnungen.xls Tabellenblatt1
If Not (Intersect(Target, [O5]) Is NothingThen
Workbooks("Rechnungen.xls").Worksheets(1).Range("A32") = ActiveSheet.[O5].Value
End If
' Feld "Amtsgericht" füllen in Rechnungen.xls Tabellenblatt1
If Not (Intersect(Target, [U5]) Is NothingThen
Workbooks("Rechnungen.xls").Worksheets(1).Range("B13") = ActiveSheet.[U5].Value
End If
' Feld "Anschrift" füllen in Rechnungen.xls Tabellenblatt1
If Not (Intersect(Target, [U5]) Is NothingThen
Workbooks("Rechnungen.xls").Worksheets(1).Range("A17") = ActiveSheet.[X5].Value
End If
' Feld "Ort" füllen in Rechnungen.xls Tabellenblatt1
If Not (Intersect(Target, [U5]) Is NothingThen
Workbooks("Rechnungen.xls").Worksheets(1).Range("A19") = ActiveSheet.[AA5].Value
End If
' Feld "Aktenzeichen" füllen in Rechnungen.xls Tabellenblatt1
If Not (Intersect(Target, [R5]) Is NothingThen
Workbooks("Rechnungen.xls").Worksheets(1).Range("A23") = ActiveSheet.[R5].Value
End If
'Tab Name für Tabellenblatt1 in Übersicht.xls vergeben
If Not ((Intersect(Target, [F5]) Is NothingAnd (Intersect(Target, [I5]) Is Nothing)) Then
Workbooks("Übersicht.xls").Sheets(1).Name = ActiveSheet.[L5].Value
End If

     Code eingefügt mit Syntaxhighlighter 2.5

diesen brauche ich für 60 User. Bereits bei 36 Usern bekomme ich die Meldung das die Prozedur zu lang ist.
Wie kann ich das umgehen.
Gruss
Stefan Glander

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code zu lang
16.01.2004 06:06:17
Hajo_Zi
Hallo Stefan
bisher habe ich nur was gelesen von einer Begrenzung von 4000 Zeilen und das gepostete sind noch nicht so viele.

Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro und Excel Version XP Pro


AW: Code zu lang
16.01.2004 08:33:36
ALM
Hallo Stefan
Versuch es doch mal mit "Auslagerung". Sprich, schreibe Andere Prozeduren die den Code
beinhalten. Du kannst sie zu Gruppen zusammenfassen oder einzeln Verwenden.
MFG
ALM
Anzeige
AW: Code zu lang
16.01.2004 09:23:18
Panicman
Hallo Stefan,
Fehlermeldung: "Fehler beim Kompilieren, Prozedur zu groß"
angeblich von M$:
"Der kompilierte Code einer Prozedur darf 64 KB nicht überschreiten.
Für diesen Fehler gibt es die folgende Ursache und Lösung:
Der kompilierte Code für diese Prozedur umfaßt mehr als 64 KB.
Teilen Sie diese und andere große Prozeduren in zwei oder mehrere kleinere
Prozeduren auf"
Gruß
Holger
AW: Code zu lang
16.01.2004 10:32:31
P@ulchen
Hallo Stefan,
Fasse als erstes die gleichen Abfragen zusammen !
Du brauchst zB. nicht 3 x die Abfrage
If Not ((Intersect(Target, [F5]) Is Nothing).... durchführen.
Ansonsten wäre einfach mal interessant, die Struktur Deiner Tabelle zu kennen und was Du genau vorhast (wenn der Code bei allen Usern gleich oder ähnlich lautet, kann man das sicher auch über eine Schleife o.ä. realisieren.


'user 1
'Tab Name für Tabellenblatt1 in Rechnungen.xls vergeben
If Not ((Intersect(Target, [F5]) Is NothingAnd (Intersect(Target, [I5]) Is Nothing)) Then
    Workbooks("Rechnungen.xls").Sheets(1).Name = ActiveSheet.[L5].Value
    ' Feld "Mandantenname" füllen in Rechnungen.xls Tabellenblatt1
    Workbooks("Rechnungen.xls").Worksheets(1).Range("G26") = ActiveSheet.[AG5].Value
    'Tab Name für Tabellenblatt1 in Übersicht.xls vergeben
    Workbooks("Übersicht.xls").Sheets(1).Name = ActiveSheet.[L5].Value
End If
' Feld "Mandant seit" füllen in Rechnungen.xls Tabellenblatt1
If Not (Intersect(Target, [O5]) Is NothingThen
    Workbooks("Rechnungen.xls").Worksheets(1).Range("A32") = ActiveSheet.[O5].Value
End If
If Not (Intersect(Target, [U5]) Is NothingThen
    ' Feld "Amtsgericht" füllen in Rechnungen.xls Tabellenblatt1
    Workbooks("Rechnungen.xls").Worksheets(1).Range("B13") = ActiveSheet.[U5].Value
    ' Feld "Anschrift" füllen in Rechnungen.xls Tabellenblatt1
    Workbooks("Rechnungen.xls").Worksheets(1).Range("A17") = ActiveSheet.[X5].Value
    ' Feld "Ort" füllen in Rechnungen.xls Tabellenblatt1
    Workbooks("Rechnungen.xls").Worksheets(1).Range("A19") = ActiveSheet.[AA5].Value
End If
' Feld "Aktenzeichen" füllen in Rechnungen.xls Tabellenblatt1
If Not (Intersect(Target, [R5]) Is NothingThen
Workbooks("Rechnungen.xls").Worksheets(1).Range("A23") = ActiveSheet.[R5].Value
End If


     Code eingefügt mit Syntaxhighlighter 2.1

Gruß
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige