Wer kann helfen und vielen Dank voraus!
Horts Kattanek
> wie kann man den sich ändernden Inhalt einer Zelle einer Schaltfläche als
> Beschriftung zuweisen?
Ein Beispiel:
Füge aus der Symbolleiste »Steuerelement-Toolbox« eine
Schaltfläche (CommandButton) in Dein Tabellenblatt ein.
Schreibe hinter das entsprechende Tabellenblatt, wo sich
der Button drin befindet eine Ereignis-Prozedur.
Die folgende Prozedur ist so aufgebaut, dass sich jeweils
der Inhalt der Zelle A1 auf dem CommandButton
darstellt.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
CommandButton1.Caption = [A1]
End Sub
--
Es liebs Grüessli
Monika Weber [Microsoft MVP für Excel]
http://www.jumper.ch (Office Help Desk)
http://excel.codebooks.de (Das Excel-VBA Codebook)
> wie kann man den sich ändernden Inhalt einer Zelle einer Schaltfläche
> als Beschriftung zuweisen?
Zwei Nachfragen:
- wird die Zelle durch Benutzereingabe "geändert", oder durch
Neuberechnung einer in der Zelle enthaltenen Formel?
- welche Art Schaltfläche verwendest Du? Eine aus Symbolleiste
"Formular", oder eine aus "Steuerelement - Toolbox"? Könntest Du ggf.
eine aus "Steuerelement - Toolbox" verwenden?
Für "Formular" kenne ich nur eine "unsaubere" Lösung.
Alternative Lösung:
- Word-Art-Objekt mit Leerzeichen als Text erstellen
- dem Objekt das auszuführende Makro zuweisen
- Größe der Zelle "hinter" dem Objekt an die Größe des Objekts anpassen
(oder umgekehrt)
- in Zelle "hinter" dem Objekt Verweis auf die "sich ändernde Zelle"
eingeben (=A1)
Damit hättest Du eine Pseudo-Schaltfläche, die den Text der Zelle
dahinter "durchscheinen" lässt.
Schönen Gruß
--
Michael
michael....@gmx.de
"Michael Schüller" <michael....@gmx.de> schrieb im Newsbeitrag
news:b6uu00$jve$1...@newsreader2.netcologne.de...
"Monika Weber" <Monika...@MVPs.org> schrieb im Newsbeitrag
news:#RjDtee$CHA....@TK2MSFTNGP10.phx.gbl...
Private Sub Worksheet_Calculate()
CommandButton1.Caption = Range("A1").Value
End Sub
Anmerkung:
Wird das Tabellenblatt neu berechnet, wird die Beschriftung dem
Commandbutton jeweils zugewiesen.
MfG Frank
_________________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
eMail: Thei...@t-online.de, Homepage: http://www.xl-faq.de
> Dank für die schnelle Antwort, es funktioniert, wenn in der Zelle
> manuell geändert wird. In meiner Zelle habe ich eine
> WENN-Funktion (=WENN(Auswertung!A3=0;"Keine Daten";Auswertung!A2) laufen,
> die gibt ein Datum zurück, da geht es nicht. WARUM NICHT?
Weil Du dann keine Veränderung an der Zelle selbst
vornimmst. Du klickst nicht rein, gibst eine Zahl ein.
Für eine Berechnung ist ein anderes Ereignis erforderlich.
Verwende »Calculate«:
Private Sub Worksheet_Calculate()
CommandButton1.Caption = [A1]
End Sub
Wenn Du ein Datum zurückgeben willst, dann musst Du
das noch umwandeln (CDate):
Private Sub Worksheet_Calculate()
CommandButton1.Caption = CDate([A1])
Grüße aus dem Norden
Horst
"Monika Weber" <Monika...@MVPs.org> schrieb im Newsbeitrag
news:uN1QScl$CHA...@TK2MSFTNGP12.phx.gbl...
Grüße aus dem Norden
Horst
"Frank Arendt-Theilen" <Thei...@t-online.de> schrieb im Newsbeitrag
news:17d69vkn4et7s2occ...@4ax.com...
> Kann man die Prozedur auch veranlassen, dass bei keinem Datum ein Text
(z.B.
> "Keine Daten vorhanden") ausgegeben wird?
Versuch's mal in die Richtung:
Private Sub Worksheet_Calculate()
Dim rng As Range
Set rng = Worksheets("Auswertung").Range("A3")
If rng = 0 Or rng = "" Then
CommandButton1.Caption = "Keine Daten"
Else
CommandButton1.Caption = CDate([A1])
End If
Set rng = Nothing
Hallo Monika,
nachdem Ihr alle Probleme gelöst habt, kleckere ich mit einer ganz
trivialen Fage hinterher:
>
>Füge aus der Symbolleiste »Steuerelement-Toolbox« eine
>Schaltfläche (CommandButton) in Dein Tabellenblatt ein.
>
>Schreibe hinter das entsprechende Tabellenblatt, wo sich
>der Button drin befindet eine Ereignis-Prozedur.
Was bedeutet "hinter"?
Ich habe Deine Prozedur in das zu Tabelle1 gehörende Codefenster
einkopiert. Bei Änderung des Eintrags in A1 bleibt die Aufschrift
"CommandButton1" unverändert.
Ich hab's dann auch mal mit dem Code in einem Modul versucht, tut sich
ebenfalls nichts.
>
>Die folgende Prozedur ist so aufgebaut, dass sich jeweils
>der Inhalt der Zelle A1 auf dem CommandButton
>darstellt.
>
>Private Sub Worksheet_Change(ByVal Target As Range)
> If Target.Address <> "$A$1" Then Exit Sub
> CommandButton1.Caption = [A1]
>End Sub
>
>--
>Es liebs Grüessli
>Monika Weber [Microsoft MVP für Excel]
>
>http://www.jumper.ch (Office Help Desk)
>http://excel.codebooks.de (Das Excel-VBA Codebook)
Ich zackere gerade an den Ereignisprozeduren rum aber komme damit noch
nicht klar.
--
Als XL-Lehrling grüßt
Eberhard mit XL 2000
> Was bedeutet "hinter"?
> Ich habe Deine Prozedur in das zu Tabelle1 gehörende Codefenster
> einkopiert. Bei Änderung des Eintrags in A1 bleibt die Aufschrift
> "CommandButton1" unverändert.
Du machst das schon richtig.
Ich gehe mal davon aus, dass Du eine Schaltfläche aus
der »Steuerelement-Toolbox« genommen hast.
Wenn sich nichts tut, dann liegt das vermutlich daran,
dass Du noch im »Entwurfs-Modus« bist.
Aktiviere das Tabellenblatt (nicht im VBA-Editor) wo
sich der Button befindet. Klicke auf die erste Schaltfläche
der Symbolleiste »Steuerelement-Toolbox« und beende
damit den Entwurfsmodus.
Gib nun etwas in Zelle A1 ein. Die Schaltfläche sollte
nun diesen Wert übernehmen.
Ich hoffe, dass Dir das weiterhilft.
es geht alles wie fetsgelegt. Ich glaube jetzt noch eine letzte Frage zu
Schaltflächen. Für alle 12 Monate habe ich jeweils eine CommandButton.
Wenn "Keine Daten" soll der jeweilige Button nicht sichbar sein, das bringe
ich hin, aber es es ist eine ärgerliche Schreiberei, kann man etwas
zusammenfassen?
Schönes Wochende
Horst
"Monika Weber" <Monika...@MVPs.org> schrieb im Newsbeitrag
news:uuUomys$CHA....@TK2MSFTNGP10.phx.gbl...
>Hallo Eberhard,
>
[........]
>
>Ich gehe mal davon aus, dass Du eine Schaltfläche aus
>der »Steuerelement-Toolbox« genommen hast.
>
>Wenn sich nichts tut, dann liegt das vermutlich daran,
>dass Du noch im »Entwurfs-Modus« bist.
>
>Aktiviere das Tabellenblatt (nicht im VBA-Editor) wo
>sich der Button befindet. Klicke auf die erste Schaltfläche
>der Symbolleiste »Steuerelement-Toolbox« und beende
>damit den Entwurfsmodus.
>
>Gib nun etwas in Zelle A1 ein. Die Schaltfläche sollte
>nun diesen Wert übernehmen.
>
[........]
Danke Monika,
genau das war's!
> genau das war's!
Freut mich, wenn ich helfen konnte.
Danke für's Feedback ;-)
> Als XL-Lehrling grüßt
Sind wir das nicht alle?
Excel ist sehr vielfältig und es gibt immer wieder
neues zu erlernen und entdecken.
> es geht alles wie fetsgelegt. Ich glaube jetzt noch eine letzte Frage zu
> Schaltflächen. Für alle 12 Monate habe ich jeweils eine CommandButton.
> Wenn "Keine Daten" soll der jeweilige Button nicht sichbar sein, das
bringe
> ich hin, aber es es ist eine ärgerliche Schreiberei, kann man etwas
> zusammenfassen?
Viel Schreibarbeit? - Findest Du?
Da kommen ja nur zwei Codezeilen hinzu:
Private Sub Worksheet_Calculate()
Dim rng As Range
Set rng = Worksheets("Auswertung").Range("A3")
If rng = 0 Or rng = "" Then
CommandButton1.Caption = "Keine Daten"
CommandButton1.Visible = False
Else
CommandButton1.Caption = CDate([A1])
CommandButton1.Visible = True
End If
Set rng = Nothing
End Sub
Wenn Du das 11x kopierst, hast Du für jeden Monat einen Butten und
musst nur jeweils die Nummer des Command-Buttons anpassen. Noch
schneller bist Du dann damit:
Private Sub Worksheet_Calculate()
Dim rng As Range
Set rng = Worksheets("Auswertung").Range("A3")
If rng = 0 Or rng = "" Then
With CommandButton1
.Caption = "Keine Daten"
.Visible = False
End With
Else
With CommandButton1
.Caption = CDate([A1])
.Visible = True
End With
End If
Set rng = Nothing
End Sub
Ich hoffe, dass Dir das weiterhilft.
--
>
>> Als XL-Lehrling grüßt
>
>Sind wir das nicht alle?
Ich überlege, vielleicht sollte ich dann meine Signatur bis auf
weiteres in Leerling oder Frischling ändern ;-))
"Monika Weber" <Monika...@MVPs.org> schrieb im Newsbeitrag
news:#AlFVWKA...@TK2MSFTNGP10.phx.gbl...