Hallo Malile,
die Logik deines Makros habe ich nicht nachvollzogen.
Zu deinem Select Case:
Du brauchst eine Vergleichsvariable, deren verschiedene Werte mit der Case-Anweisung unterschieden wird, z.B.:
Select Case h
Case 1
ActiveSheet.Lines.Add xA, yA, xE, yE
Case 2
ActiveSheet.Lines.Add yE, xE, yA, xA
Case h
ActiveSheet.Lines.Add xA, yA, xE, yE
Case h
ActiveSheet.Lines.Add yE, xE, xA, yA
Case Else
End Select
Auf Case Else solltest du nicht verzichten.
1 Mod 4 ergibt immer 1. Die Vergleichsvariable(h=1 Mod 4) ist ergibt immer den Boolschen Wert "False".
Da (h=1) ebenfalls den Boolschen Wert "False" liefert, wird immer nur der erste Fall ausgeführt, da Select Case nur die erste Übereinstimmung von Vergleichsvariablen und Fallwert ausführt.
Weiterhin viel Erfolg
Holger
Malile schrieb am 07.04.2008 18:38:48:
Hallo.
Wir müssen in der Schule so eine Spirale im VBA "basteln". Habe hier mal gesucht, bin aber nicht fündig geworden.
Naja, ich will das noch möglichst schnell fertig haben..
Office-Version benütz ich MS Office 2007.
Ich kopier mal einfach das Makro hier rein:
Sub spirale()
yA = Cells(2, 2)
xA = Cells(3, 2)
xE = Cells(5, 2)
yE = Cells(4, 2)
faktor = Cells(9, 2)
n = Cells(10, 2)
For i = 1 To n
Select Case (h = 1 Mod 4)
Case (h = 1)
ActiveSheet.Lines.Add xA, yA, xE, yE
Case (h = 2)
ActiveSheet.Lines.Add yE, xE, yA, xA
Case (h = 3)
ActiveSheet.Lines.Add xA, yA, xE, yE
Case (h = 4)
ActiveSheet.Lines.Add yE, xE, xA, yA
End Select
yA = yE + (yE * faktor)
xA = xE
Next i
End Sub
So wie ich das hier oben habe, kommen immerhin schon 2 Striche.. einer von Links nach Rechts und die zweite von oben nach unten..
Aber ich versteh nicht wie ich das 3. Case angeben soll, denn wir dürfen nur xA (x-Start), xE (x-Ende), yA und yE verwenden..
Ich habe erst grade angefangen so zu spielen, also bitte nicht auslachen ;).
- BTT: ich habe mal Probiert eine If-Formel einzubauen, funzt aber nicht..
Für die, die es interessiert:
Habe es so eingeteilt;
yA 200
xA 200
yE 200
xE 400
Verkleinerungsfaktor (faktor): 0.7
Anzahl Linien (n): 8
Bin jetzt schon dankbar für eure Hilfe.
Gruss,
Malile |