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

Makro kürzer formulieren

Makro kürzer formulieren
18.08.2005 14:53:22
Robert
Hallo
Hier ein Makro von mir!
Meine Frage wäre kann ich das Makro auch kürzer formulieren?
Funktionieren tut es einwandfrei, aber es braucht ziemlich viel Speicher.
Gruß Robert

Private Sub ComboBox1_Change()
Dim a
Dim c
Dim d
Dim x
Dim p
Dim b
Worksheets("Abfrage").Unprotect ("viziviz")
Worksheets("Abfrage").Range("A1:G30000").Clear
a = "R:\Arz_Breitsameter\Projekte\Angebote\" + ComboBox1.Value
z = 10
If a = "R:\Arz_Breitsameter\Projekte\Angebote\Kalkulation auswählen" Then
Else
If a = "R:\Arz_Breitsameter\Projekte\Angebote\" Then
Else
Workbooks.Open (a)
b = "Roboter"
'Roboter'
x = 0
y = z
10
Select Case b
Case "Roboter"
y = z
x = 0
p = Round(Workbooks(ComboBox1.Value).Worksheets("Summe").Cells(12, 11) + Workbooks(ComboBox1.Value).Worksheets("Summe").Cells(13, 11), 0)
Case "Roboterzubehoer"
x = 0
Case "Positionierer"
z = z + 2
y = z
x = 0
p = Round(Workbooks(ComboBox1.Value).Worksheets("Summe").Cells(14, 11) + Workbooks(ComboBox1.Value).Worksheets("Summe").Cells(15, 11), 0)
Case "externeAchsen"
x = 0
Case "Applikationen"
z = z + 2
y = z
x = 0
p = Round(Workbooks(ComboBox1.Value).Worksheets("Summe").Cells(16, 11), 0)
Case "Anpasssteuerung"
z = z + 2
y = z
x = 0
p = Round(Workbooks(ComboBox1.Value).Worksheets("Summe").Cells(17, 11), 0)
Case "Sicherheit"
z = z + 2
y = z
x = 0
p = Round(Workbooks(ComboBox1.Value).Worksheets("Summe").Cells(18, 11), 0)
Case "Dienstleistungen"
z = z + 2
y = z
x = 0
p = Round(Workbooks(ComboBox1.Value).Worksheets("Summe").Cells(19, 11), 0)
End Select
Do
x = x + 1
c = Workbooks(ComboBox1.Value).Worksheets(b).Cells(x, 2).Value2
d = Workbooks(ComboBox1.Value).Worksheets(b).Cells(x, 3).Value2
If c > 0 Then
If c <> "X" Then
If c <> "x" Then
If c <> "An-   zahl" Then
If y = z Then
Cells(z, 2) = b
Cells(z, 2).Font.Bold = True
Cells(z, 4) = p
Cells(z, 4).Style = "Currency"
Cells(z, 4).Font.Bold = True
End If
z = z + 1
Cells(z, 1) = c & " Stück"
Cells(z, 2) = d
End If
End If
End If
End If
Loop While x <= 10000
Select Case b
Case "Roboter"
b = "Positionierer"
GoTo 10
Case "Positionierer"
b = "externeAchsen"
GoTo 10
Case "externeAchsen"
b = "Applikationen"
GoTo 10
Case "Applikationen"
b = "Anpasssteuerung"
GoTo 10
Case "Anpasssteuerung"
b = "Sicherheit"
GoTo 10
Case "Sicherheit"
b = "Dienstleistungen"
GoTo 10
Case "Dienstleistungen"
End Select
Workbooks(ComboBox1.Value).Close SaveChanges:=False
End If
End If
Cells(3, 3) = z
Worksheets("Abfrage").Protect ("viziviz")
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro kürzer formulieren
18.08.2005 15:09:25
Unbekannter
Hier ein paar verbesserung,die sind aber nicht wirklich die Welt.
Also: Dieses kannst du rausnehmen weil ihm nichts zugewiesen ist und damit sinnlos ist.
Case "Dienstleistungen"
Und: Dein y=z ergibt irgendwie auch kein sinn und y ist nicht mal declariert.Und das x=0 ist auch unnötig.
z = z + 2 'z=4
y = z 'ist auch 4 ,das kannste rausnehmen,du kannst einfach mit z weiterarbeiten.
x = 0
Und: Du kannst auch so declarieren ist nur eine Zeile
Dim a, c, d, x, p, b
Gruß UN1
AW: Makro kürzer formulieren
19.08.2005 00:55:14
PeterW
Hallo,
wollte zwar nicht mehr auf Beiträge reagieren, in denen ich jemanden nicht (real-)namentlich ansprechen kann aber hier muss ich eine Ausnahme machen.
Was soll der Blödsinn, dass sich durch die Deklaration mehrer Variablen vom Typ Variant in einer Zeile der Speicherbedarf vermindert?
Gruß
Peter
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige