Discussion:
VBA select aufheben
(zu alt für eine Antwort)
Hans Alborg
2014-12-14 07:14:10 UTC
Permalink
Hallo -nach Ms' wildem Updating,

ich hab mit diesem blöd-allgemeinen Betreff 2 Anliegen verbunden:

Frage 1)

Code:
' -------------------------------------------------------------
Sheets("Hilfsblatt-1").Shapes("myRahmen").Copy
Sheets("Aufbau").Paste
Application.CutCopyMode = False
' -------------------------------------------------------------
Ich setze in meiner Simu- Mappe also (endlich!) einen Rahmen ins Blatt
"Aufbau", den ich Undank meines Wissensstandes nicht erzeuge, sondern aus
dem "Hilfsblatt-1" kopiere.
Leider funktioniert Zeile 3 nicht, der Rahmen bleibt markiert.
Ich möchte an dieser Stelle keine Zelle selektieren, um das wegzubekommen.

weiter wird der Rahmen an die richtige Position gebracht und formatiert:
' -------------------------------------------------------------
With Sheets("Aufbau").Shapes("myRahmen")
.Top = myR_Top
.Left = myR_Left
.Width = 50
.Height = 100
.Rotation = Rahmen_Grad
.Fill.ForeColor.RGB = Rahmen_Farbe
.HideSelection = False
End With
' -------------------------------------------------------------
HideSelection war auch so ein Versuch, der nicht klappt.

Also wie krieg ich das Select vom Rahmen?

Frage 2)

In einer VBA- Zeile etwa so:

If a=1 OR A=2 OR B = 5 AND X = "Test" THEN

krieg ich immer 'ne Krise. Muß ich Klammern setzen etc.?
Im Netz ist gibt's zu den Logikbefehlen "zu viele" Fundstellen, nur immer
nicht das Richtige.

Wo kann man denn was über diese Logiken in VBA lesen?

TIA,

Hans
Claus Busch
2014-12-14 09:48:38 UTC
Permalink
Hallo Hans,
Post by Hans Alborg
Ich setze in meiner Simu- Mappe also (endlich!) einen Rahmen ins Blatt
"Aufbau", den ich Undank meines Wissensstandes nicht erzeuge, sondern aus
dem "Hilfsblatt-1" kopiere.
Leider funktioniert Zeile 3 nicht, der Rahmen bleibt markiert.
Ich möchte an dieser Stelle keine Zelle selektieren, um das wegzubekommen.
wenn etwas Neues in eine Mappe eingebracht wird, egal ob durch kopieren
oder erstellen, ist dies automatisch das aktive und somit auch
selektierte Teil. Du könntet einfach etwas Anderes selektieren.
Eleganter geht es, wenn du den Rahmen fest einfügst und auf visible =
false stellst und in dann im Code statt einzufügen auf visible = true
stellst.
Post by Hans Alborg
If a=1 OR A=2 OR B = 5 AND X = "Test" THEN
ähnlich wie bei Punkt- und Strichrechnung die Priorität festgelegt ist,
ist auch hier UND stärker als OR. Und genau wie in der Punkt- und
Strichrechnung kann man das noch steuern, indem man die noch stärkere
Klammer einbaut.
Bei einer solchen Konstellation wie o.a. würde ich Klammern schreiben.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Hans Alborg
2014-12-14 11:59:27 UTC
Permalink
Hi Claus,

"Claus Busch" schrieb...
Post by Claus Busch
...der Rahmen bleibt markiert.
Eleganter geht es, wenn du den Rahmen fest einfügst und auf visible =
false stellst und in dann im Code statt einzufügen auf visible = true
stellst.
Hmm. Ich lösche immer das komplette Blatt, da bleiben auch keine Frames
erhalten.
Aber: Idee! Ich mache es wie Du sagst, aber kopiere den Rahmen als erstes
rein!
Danach wird "einiges" selektiert und später, wenn ich ihn brauche ist der
Rahmen da.
Post by Claus Busch
If a=1 OR A=2 OR B = 5 AND X = "Test" THEN
...indem man die noch stärkere Klammer einbaut.
Also doch Klammern! Da werde ich meinen bisherigen Code mal durchsuchen
(hab's immer geteilt).

Nochwas wegen der Eigenschaften des Rahmens: wie heißt die Rahmenbreite?

Den Rahmen hab ich unter Excel 2007 mit "Einfügen/ Illustrationen/ Formen/
Standardformen/ Positionsrahmen" gefunden.
Selektiert zeigt der Rahmen einen gelben Punkt. Wenn ich den mit der Maus
fasse kann ich die Rahmenbreite ändern.

Ich hab noch gefunden:

.Fill.Transparency = 0.39
' Randlinien
.Line.Weight = 2
.Line.DashStyle = msoLineSolid
.Line.Style = msoLineSingle

aber der Rand sieht je Größe des Rahmens manchmal verhältnismäßig dick aus,
so daß ich diese Eigenschaft mit VBA anpassen möchte...

Hans
Claus Busch
2014-12-14 12:33:54 UTC
Permalink
Hallo Hans,
Post by Hans Alborg
Nochwas wegen der Eigenschaften des Rahmens: wie heißt die Rahmenbreite?
ich habe noch nie mit Positionsrahmen gearbeitet. xl2007 und auch xl2010
zeichnen bei Änderung der Rahmenbreite nichts auf. Bin auch im Netz
nicht weiter gekommen. Ich melde mich, wenn ich etwas finde.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Claus Busch
2014-12-14 12:44:26 UTC
Permalink
Hallo Hans,
Post by Hans Alborg
Nochwas wegen der Eigenschaften des Rahmens: wie heißt die Rahmenbreite?
ich bekomme es ohne Selektion nicht hin. Es kommt immer eine
Fehlermeldung. Mit Selektion geht es so:

ActiveSheet.Shapes("Positionsrahmen 1").Select
With Selection.ShapeRange
.Adjustments.Item(1) = 0.02734
End With


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Hans Alborg
2014-12-14 14:46:26 UTC
Permalink
Hallo Claus,

"Claus Busch" schrieb...
Post by Claus Busch
Post by Hans Alborg
Nochwas wegen der Eigenschaften des Rahmens: wie heißt die Rahmenbreite?
ich bekomme es ohne Selektion nicht hin. Es kommt immer eine
ActiveSheet.Shapes("Positionsrahmen 1").Select
With Selection.ShapeRange
.Adjustments.Item(1) = 0.02734
End With
Ah, danke sehr! Du sprichst wohl den Anfaßpunkt an, der ist halt nur bei
Select vorhanden!
Da muß ich mir halt Gedanken machen, wo ich den Fokus nach dem Select lasse.
Eventuell in der Textbox der fast (?) zur selben Zeit offenen
"stopp/weiter"- Userform.
(hab den Rahmen jetzt so wie in meinem letzten Posting beschrieben gleich
von Anfang an unsichtbar auf dem Blatt und war das Select schon los...)

Öhm, Item(1) macht neugierig auf die anderen. Wird aber sicher kein
"schiefes" Rechteck geben...

Hans

Lesen Sie weiter auf narkive:
Loading...