Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
224to228
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
224to228
224to228
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA Code zu lang!!

VBA Code zu lang!!
03.03.2003 21:48:39
Michael E
Hi Ecxel User

möcht meine VBA Code kürzen da er sehr lang ist
Hier ein Auschnitt

Sub SG1_A02()
Sheets("SG1").ScrollArea = ""
ActiveWorkbook.CustomViews("SG1_A02").Show
ActiveSheet.ScrollArea = "M51:Q75"
End Sub
---
Sub SG1_A03()
Sheets("SG1").ScrollArea = ""
ActiveWorkbook.CustomViews("SG1_A03").Show
ActiveSheet.ScrollArea = "S51:W75"
End Sub
---
Sub SG1_A04()
Sheets("SG1").ScrollArea = ""
ActiveWorkbook.CustomViews("SG1_A04").Show
ActiveSheet.ScrollArea = "Y51:AC75"
End Sub
---
Sub SG1_A05()
Sheets("SG1").ScrollArea = ""
ActiveWorkbook.CustomViews("SG1_A05").Show
ActiveSheet.ScrollArea = "AE51:AI75"
End Sub
----
usw.
kommt aud jeden Tabellenblatt 72 mal vor
von A02 bis A24, von B02 -B24 und von C02-C24

und das bei zur Zeit 16 Tabellenblätter.

hat einer eine Idee wie man das kürzen kann. Die Mappe ist schon über 7MB groß ohne das da groß Daten drin stehen??????

wenn einer mir einen Arry ankommt bitte genau erklären, weil
ich trotz Recherche noch nicht damit klarkomme.(wenn man weiß ist ganz einfach, muß es aber erst in meinen Schädel reinbekommen "grins")

Danke im vorraus für eure Mühe die ihr euch mit mir macht

gruß Michael


9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: VBA Code zu lang!!
04.03.2003 05:51:20
andre

hallo michael,
wenn deine customviews der reihe nach angelegt sind dann prinzipiell so:
for i=0 to xxx
Sheets("SG1").ScrollArea = ""
ActiveWorkbook.CustomViews(i).Show
ActiveSheet.ScrollArea = range(cells(51,i*6+1=cells(75,i*6+6)
next
wenn das nicht so nacheinander kommen soll lässt du das for/next weg. da musst du aber den parameter i z.b. durch eine eingabe festlegen und auch eventuell die formel ändern.
gruss andre

Re: VBA Code zu lang!!
04.03.2003 05:51:24
andre

hallo michael,
wenn deine customviews der reihe nach angelegt sind dann prinzipiell so:
for i=0 to xxx
Sheets("SG1").ScrollArea = ""
ActiveWorkbook.CustomViews(i).Show
ActiveSheet.ScrollArea = range(cells(51,i*6+1=cells(75,i*6+6)
next
wenn das nicht so nacheinander kommen soll lässt du das for/next weg. da musst du aber den parameter i z.b. durch eine eingabe festlegen und auch eventuell die formel ändern.
gruss andre

Anzeige
Re: VBA Code zu lang!!
04.03.2003 06:41:22
Michael E

Hi andre
Danke für deine Ausführungen.
Dein Ansatz sah so vielversprechend aus!!
hatte leider vergessen mitzuteilen das die subs durch eine
SeletionChange-Anweisung angesprochen werden.( kommt davon wenn man nur den halben Code angibt)
********
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim norm_cell As Boolean
norm_cell = False
Select Case Target.Column
Case 1:
Select Case Target.Row
Case 2: modSG1.SG1_A02
Case 3: modSG1.SG1_A03
Case 4: modSG1.SG1_A04
Case 5: modSG1.SG1_A05
Case 6: modSG1.SG1_A06
Case 7: modSG1.SG1_A07
Case 8: modSG1.SG1_A08
Case 9: modSG1.SG1_A09
Case 10: modSG1.SG1_A10
Case 11: modSG1.SG1_A11
Case 12: modSG1.SG1_A12
Case 13: modSG1.SG1_A13
Case 14: modSG1.SG1_A14
Case 15: modSG1.SG1_A15
Case 16: modSG1.SG1_A16
Case 17: modSG1.SG1_A17
Case 18: modSG1.SG1_A18

usw.
nach einer Idee von wolf
*
bloß wie binde ich das ein.???

gruß Michael

Anzeige
Re: VBA Code zu lang!!
04.03.2003 11:02:10
andre

hallo michael,
eventuell stehen die sub's dann auch in einem klassenmodul?
prinzipiell so:
im code:
...
Case 1: area_(0)
...

sub area_(i)
Sheets("SG1").ScrollArea = ""
ActiveWorkbook.CustomViews(i).Show
ActiveSheet.ScrollArea = range(cells(51,i*6+1=cells(75,i*6+6)
end sub
gruss andre

Re: VBA Code zu lang!!
04.03.2003 12:32:07
Michael E

Hi andre
Danke für die Ausführung!!
Leider klappt es noch nicht.
die subs stehen im allgemein modul (modSG1).(für jedes Tabellenblatt ein eigenes Modul)
das PRG nimmt den erste möglichkeit ein CustomViews auszusuchen.
habe noch nicht gefunden wie ich den Ort einbinden kann.
und bei der srollarea meckert er (trotz hinzugefügten 2 Klammern)
den CustomViews hatte ich ja nur genommen damit er zu dem Bereich hinspringt. (vieleicht kann man das anders lösen?)
gruß michael



Anzeige
Re: VBA Code zu lang!!
04.03.2003 17:36:40
andre

hallo michael,
sehe gerade, da fehlt noch was ausser der Klammer und statt = muss , rein.

ActiveSheet.ScrollArea = range(cells(51,i*6+1),cells(75,i*6+6)).address

beim Test kommen bei mir folgende Fehler:
("SG1") - hab ich nicht, hab hier (1) dafür gesetzt
...CustomViews hab ich nicht definiert, daher ausgeklammert
bewegen kann ich mich dann von a51 bis f75 bei i=0

gruss andre
gruss andre



nur teilweise gelöst
04.03.2003 18:52:38
Michael E

Hi andre
Danke
mit dem scrollarea funktioniert einwandfrei.
bloß mit dem CustomViews klappt es noch nicht
***

Sub area_(i)
tabFB2.ScrollArea = ""
ActiveWorkbook.CustomViews("FB2_A(i)+2").Show
tabFB2.ScrollArea = Range(Cells(51, i * 6 + 1), Cells(75, i * 6 + 6)).Address
***
Das ist der Code den ich gerade teste
zeigt bei mir Laifzeitfehler 5
***
Der Orginaltext war bei i = (0)
ActiveWorkbook.CustomViews("FB2_A02").Show
was ist and der Zeile mit dem Views falsch
***
wäre dir sehr Dankbar wenn du mir helfen könntest
gruß michael

Anzeige
Re: nur teilweise gelöst
04.03.2003 19:37:49
andre

hallo michael,
das ist wahrscheinlich nur eine kleinigkeit.
manche arrays, namensbereiche ... fangen mit index 0 an, und manche mit 1. bei customview habe ich mal einen angelegt und getestet, der will hier 1 für den ersten haben. da musst du dann also (i+1) nehmen.
gruss andre

Danke andre für Deine Mühe o.T.
05.03.2003 09:42:10
Michael E

O.T.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige