Thema Datum  Von Nutzer Rating
Antwort
07.04.2008 18:38:48 Malile
NotSolved
Blau Aw:Hilfe in Case
09.04.2008 10:46:46 Holger
NotSolved
09.04.2008 14:24:35 Malile
NotSolved
10.04.2008 12:25:07 Holger
NotSolved
10.04.2008 23:01:49 Malile
NotSolved

Ansicht des Beitrags:
Von:
Holger
Datum:
09.04.2008 10:46:46
Views:
1070
Rating: Antwort:
  Ja
Thema:
Aw:Hilfe in Case
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

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
07.04.2008 18:38:48 Malile
NotSolved
Blau Aw:Hilfe in Case
09.04.2008 10:46:46 Holger
NotSolved
09.04.2008 14:24:35 Malile
NotSolved
10.04.2008 12:25:07 Holger
NotSolved
10.04.2008 23:01:49 Malile
NotSolved