PDA

Vollständige Version anzeigen : Farbtransparenz eines Rechtecks über eine ScrollBar steuern


axtmaestro
27.03.2012, 18:28
:rolleyes: Hallo Zusammen

Kann mir jemand helfen.

Ich möchte gerne die Farbtransparenz eines Rechtecks über eine ScrollBar steuern können. Habe dafür folgenden Code zusammengestellt:

Private Sub ScrollBar2_Change()
ScrollBar2.Min = 1
ScrollBar2.Max = 0.5
'ActiveSheet.Shapes("Rectangle 10350").Select
Selection.ShapeRange.Fill.Transparency.Value = ScrollBar2.Value

End Sub

Funktioniert aber nicht. Was mache ich hier falsch???

Gruss,
Robert

Hajo_Zi
27.03.2012, 18:30
Hallo Robert,

muss max nicht größer sein als min?

<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm" onclick="window.open(this.href);return false"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

axtmaestro
27.03.2012, 18:33
Hallo Hajo

habe es gerade geändert. Danke für den Hinweis.

Funktioniert aber dennoch nicht.:(

Gruss,
Robert

Hajo_Zi
27.03.2012, 18:44
Hallo Robert,

ich baue keine Datei nach. Falls es der richtige Befehl ist hätte ich vermutet das wird der scrollbar zugewiesen.

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

axtmaestro
27.03.2012, 18:50
Hallo Hajo

Anbei mein Excel.
Evtl. fällt dir mein Fehler auf.

Ich verstehe es leider nicht.:(

Gruss,
Robert

Hajo_Zi
27.03.2012, 18:51
Der Dateiname sollte was mit dem Problem zu tun haben. Ich habe mir z.B. einen Ordner angelegt in dem ich alle Dateien aus dem Internet speichere. Bei Dateinamen wie Test., Mappe.., Beispiel wird eine vorhandene überschrieben.

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

josef e
27.03.2012, 19:14
<div style="width:85%; margin-left:5px; margin-right:15px; text-align:justify;">
Hallo Robert,


</div>

<div style="width:100px; text-align:center; color:white; font-style:italic; font-size:0.8em; font-family:Tahoma; background-color:royalblue;margin-left:5px; margin-top:15px; padding:4px; border:3px double darkblue;">&laquo; Gru&szlig; Sepp &raquo;</div>

axtmaestro
27.03.2012, 22:41
Hallo Josef

Vielen Dank für deine Hilfe "wiedermal" :)
Funktioniert super.

Weißt du zufällig ob es im Excel 2003 möglich ist, die Höhe und Breite von einen zu zeichnenden Rechteck z.B. in ListBox anzuzeigen? Im Excel 2010 wird es praktischer Weise oben in der Menüleiste immer angezeigt. Im Excel 2003 sehe ich diese erst wenn ein Rechteck gezeichnet ist, über die Funktion "AutoForm formatieren / Größe".

Habe schon folgendes Versucht:

Tabelle1.ListBox1.Value = Me.Shapes("Rectangle 1").ScaleWidth.Value
Tabelle1.ListBox2.Value = Me.Shapes("Rectangle 1").ScaleHeight.Value

Aber das funktioniert "wie immer" nicht.:(

Evtl. hast du eine Idee?

Gruss,
Robert

josef e
27.03.2012, 23:33
<div style="width:85%; margin-left:5px; margin-right:15px; text-align:justify;">
Hallo Robert,

zu Anzeige von Werten verwendet man eine TextBox oder ein Label.

<div style="background-color:#F5F5F5; border-width:2px; border-style: groove; border-color:#ff9966; padding:4px;"><nobr><span style="font-family:Courier New,Arial; font-size:8pt ;" >Me.Label1 = Me.Shapes(<span style="color:#808080"; >"Rectangle 1"</span>).Width<br />Me.Label2 = Me.Shapes(<span style="color:#808080"; >"Rectangle 1"</span>).Height<br /></span></nobr></div>

Was willst du eigentlich mit dem ganzen erreichen?
Mir scheint, du willst Excel als Zeichen/Grafik-Programm missbrauchen, dazu ist es aber denkbar ungeeignet.

</div>

<div style="width:100px; text-align:center; color:white; font-style:italic; font-size:0.8em; font-family:Tahoma; background-color:royalblue;margin-left:5px; margin-top:15px; padding:4px; border:3px double darkblue;">&laquo; Gru&szlig; Sepp &raquo;</div>

axtmaestro
28.03.2012, 06:17
Hallo Josef

Danke fürs Feedback.

zu Anzeige von Werten verwendet man eine TextBox oder ein Label

Ich verwende doch ein Label?!? :rolleyes:

Weißt du warum mein Code dennoch nicht funktioniert?:(

Gruß,
Robert

josef e
28.03.2012, 17:07
<div style="width:85%; margin-left:5px; margin-right:15px; text-align:justify;">
Hallo Robert,

in deiner Datei hast du keine Labels sondern Listboxen.

Nimm zwei Labels (Bezeichnungsfelder) mit den Namen Label1 bzw. Label2.


</div>

<div style="width:100px; text-align:center; color:white; font-style:italic; font-size:0.8em; font-family:Tahoma; background-color:royalblue;margin-left:5px; margin-top:15px; padding:4px; border:3px double darkblue;">&laquo; Gru&szlig; Sepp &raquo;</div>

axtmaestro
28.03.2012, 20:03
Hallo Josef

Habe jetzt Label1 und 2 in die Datei eingesetzt. Funktioniert aber nicht.:rolleyes:

Mein Code sieht so aus:

Private Sub Worksheet_Change(ByVal Target As Range)

Tabelle1.Label1.Value = Me.Shapes("Rectangle 1").ScaleWidth.Value
Tabelle1.Label2.Value = Me.Shapes("Rectangle 1").ScaleHeight.Value

End Sub

Frage: Ist es überhaupt möglich in Excel 2003 die Rechteckgrößen live beim Vergrößern des Rechtecks anzuzeichen???

josef e
28.03.2012, 20:10
<div style="width:85%; margin-left:5px; margin-right:15px; text-align:justify;">
Hallo Robert,

vergleiche mal meinen Code und deinen!

Live geht nicht, geht auch bei xl2010 nicht.


</div>

<div style="width:100px; text-align:center; color:white; font-style:italic; font-size:0.8em; font-family:Tahoma; background-color:royalblue;margin-left:5px; margin-top:15px; padding:4px; border:3px double darkblue;">&laquo; Gru&szlig; Sepp &raquo;</div>

axtmaestro
28.03.2012, 23:55
Hallo Josef

Habe es endlich hinbekommen. :) :mrcool:
Funktioniert aber nicht immer sauber.

Wenn ich mein Rechteck manuell vergrössere resp. verkleinere, übernimmt er mir seine Länge und Breite erst wenn ich eine Zahl in eine beliebige Zelle schreibe und diese mit Enter bestätige oder sonstiges Makro aufrufe.

Gibt es einen Befehl, mit dem die Länge und Breite übernohmen werden, wenn man den Shape verlässt d.h. die Shape-Bearbeitung beendet?:rolleyes:
Ich habe schon mit "Private Sub Rectangle1_Change()" versucht, aber das erkennt er nicht.

Zusätzlich habe ich einen Code geschrieben, mit dem man die Länge und Breite direkt in Texbox eingeben kann, so dass sich das Rechteck auch über diese Funktion in seiner Grüsse gesteuert werden kann.
Hier ist das Problem, wenn ich die Zahl in der Textbox lösche d.h. z.B. Länge = 0. Hier bekomme ich einen Laufzeitfehler 13. Kann man dies irgendwie beheben? Habe es mit Sub Exit versucht. Geht aber nicht.:rolleyes:

Gruss,
Robert

josef e
29.03.2012, 17:52
<div style="width:85%; margin-left:5px; margin-right:15px; text-align:justify;">
Hallo Robert,

dazu muss man halt prüfen, ob die TB auch eine Zahl enthält.

<div style="background-color:#F5F5F5; border-width:2px; border-style: groove; border-color:#ff9966; padding:4px;"><nobr><span style="font-family:Courier New,Arial; font-size:8pt ;" ><b><span style="color:#0000FF"; >Private</span> <span style="color:#0000FF"; >Sub</span> textbox1_change()</b><br />&nbsp;&nbsp;<span style="color:#008000"; >'Shape L&auml;nge ver&auml;ndern &uuml;ber Werteingabe in Textbox1</span><br />&nbsp;&nbsp;<span style="color:#0000FF"; >If</span> Len(TextBox1) <span style="color:#0000FF"; >And</span> IsNumeric(TextBox1) <span style="color:#0000FF"; >Then</span> Me.Shapes(<span style="color:#808080"; >"Rectangle 1"</span>).Width = CDbl(Me.TextBox1)<br /><b><span style="color:#0000FF"; >End</span> <span style="color:#0000FF"; >Sub</span></b><br /><br /><br /><br /><b><span style="color:#0000FF"; >Private</span> <span style="color:#0000FF"; >Sub</span> textbox2_Change()</b><br />&nbsp;&nbsp;<span style="color:#008000"; >'Shape L&auml;nge ver&auml;ndern &uuml;ber Werteingabe in Textbox2</span><br />&nbsp;&nbsp;<span style="color:#0000FF"; >If</span> Len(TextBox2) <span style="color:#0000FF"; >And</span> IsNumeric(TextBox2) <span style="color:#0000FF"; >Then</span> Me.Shapes(<span style="color:#808080"; >"Rectangle 1"</span>).Width = CDbl(Me.TextBox2)<br /><b><span style="color:#0000FF"; >End</span> <span style="color:#0000FF"; >Sub</span></b><br /><br /></span></nobr></div>


</div>

<div style="width:100px; text-align:center; color:white; font-style:italic; font-size:0.8em; font-family:Tahoma; background-color:royalblue;margin-left:5px; margin-top:15px; padding:4px; border:3px double darkblue;">&laquo; Gru&szlig; Sepp &raquo;</div>