jh schrieb am 13.09.2007 10:34:26:
Hallo,
vielleicht bin ich ja heute ein bisschen schwer von Begriff. Ich sehe erst mal nicht, wozu die ganze Würfelei mit Zellinhalten gut sein soll, aber das soll jetzt nicht mein Problem sein. Das Grundübel scheint mir die fehlerhafte Verwendung von Intersect zu sein. Du schreibst, dass du in deinem Bereich A7:D24 EINE Zelle markierst. Die von Intersect ermittelte Schnittmenge würde also auch nur EINE Zelle enthalten, falls die markierte Zelle in dem gewünschten Bereich liegt, oder auch GAR KEINE, falls eine Zelle außerhalb markiert wurde. Für diesen Fall ist anscheinend auch die Zeile On Error... gedacht.
Wenn du überprüfen willst, ob die markierte Zelle in dem gewünschten Bereich liegt, dann musst du das so machen:
If Not Application.Intersect(Selection, Range("A7:A24")) Is Nothing Then ...
Und deine For-Schleife müsste dann etwa so aussehen:
For Each Zelle In Range("A7:A24").Cells
...usw.
Die Bereichsadressen musst du natürlich entsprechend deinen Vorstellungen einsetzen. Wenn du so vorgehst, kannst du dir auch das On Error... sparen.
Noch etwas: Wie startest du denn die Berechnung? Wenn sie nach dem Markieren einer Zelle ablaufen soll, wäre dafür das Worksheet_SelectionChange Ereignis zweckmäßig.
Gruß
Hallo,
es sollen egal wieviele Zellen in dem angegebenen Bereich markiert werden können.Es läuft ja auch alles so wie es soll!Das einzige Problem besteht darin,dass die markierten Zellen in alphabetischer Reihenfolge berechnet werden.Markiere ich z.B. nur Zellen in der Spalte A werden z.B alle 8 markierten Zellen berechnet.Es werden auch alle 20 Zellen berechnet solange die Makierungsreihenfolge so aussieht: A9,A12,A19,B7B9,B13,B15,C16,D22,D23.dannw erden auch noch alle Zellen berechnet.Es funkioniert nur dann nicht mehr sobald die alphabetische Reihenfolge unterbrochen wird.Und darin liegt mein Problem!Wie kann ich den Befehl für die Berechnungs-Calls formulieren damit das nicht mehr passiert?
Vielen lieben dank für deine Hilfe!
Gruß Tina
|