Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1520to1524
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
Inhaltsverzeichnis

Optimierung Makro

Optimierung Makro
25.10.2016 13:23:06
Anton Buderus

Hallo,
ich nutze eine Excel-Dateien, welche aus ca. 140 Blättern besteht. In 120 Blättern ist jeweils ein CommandButton1 enthalten.
Wenn ich diesen CommandButton1 im jeweiligen Blatt drücke, wird aus einer Tabelle in einem anderen Blatt Daten in 9 verschiedene Comboboxen (Combobox1 bis Combobox9) eingelesen, d.h. zur späteren Auswahl zur Verfügung gestellt.
Mein Frage:
Das dazugehörige Makro ist jeweils im Tabellenblatt hinterlegt, d.h. in VBAProjekt(NameDatei)/Mircrosoft Excel Objekte/Tabelle (Blattname).
Kann man und sollta man das Makro nicht einmal an "zentraler Stelle", also so etwas wie Modul oder so, hinterlegen? Sollte dadurch die Datei nicht schneller, kleiner usw. werden?
Starten und schließen dauert etwas lange.
Vielen Dank
Option Explicit
Private Const erstezeile% = 6 'Erste zu durchsuchende Zeile in Spalte s1
Private Const letztezeile% = 800 'Letzte zu durchsuchende Zeile in Spalte s1
Private Const s1% = 1 'Erste Spalte (hier A)
Private Const s2% = 2 'Zweite Spalte (hier B)
Private Const s3% = 3 'Dritte Spalte (hier C)
Private Const s4% = 4 'Vierte Spalte (hier D)
Private Const s5% = 11 'Vierte Spalte (hier D)
Dim m%, n%, z%, i%
'Combobox1 füllen, Doppelungen vermeiden


Private Sub CommandButton1_Click()
UntergruppeMat1.Clear
UntergruppeMat2.Clear
UntergruppeMat3.Clear
UntergruppeMat4.Clear
UntergruppeMat5.Clear
UntergruppeMat6.Clear
UntergruppeMat7.Clear
UntergruppeMat8.Clear
UntergruppeMat9.Clear
ReDim v(0)
m = 0
For z = erstezeile To letztezeile
For n = 0 To m
If Worksheets("MatAbt33").Cells(z, s5) <> Cells(9, 64).Text Then GoTo nächste
Next
m = m + 1
ReDim Preserve v(m)
v(m - 1) = Worksheets("MatAbt33").Cells(z, s1)
nächste:
Next
'in die zweite Spalte ab Zeile 1 einlesen
For i = 0 To m
If v(i) <> "" Then UntergruppeMat1.AddItem (v(i))
If v(i) <> "" Then UntergruppeMat2.AddItem (v(i))
If v(i) <> "" Then UntergruppeMat3.AddItem (v(i))
If v(i) <> "" Then UntergruppeMat4.AddItem (v(i))
If v(i) <> "" Then UntergruppeMat5.AddItem (v(i))
If v(i) <> "" Then UntergruppeMat6.AddItem (v(i))
If v(i) <> "" Then UntergruppeMat7.AddItem (v(i))
If v(i) <> "" Then UntergruppeMat8.AddItem (v(i))
If v(i) <> "" Then UntergruppeMat9.AddItem (v(i))
Next
End Sub
Private Sub UntergruppeMat1_Change()
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Optimierung Makro

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige