CommandButton_Klick, Beschriftung vorlesen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: CommandButton_Klick, Beschriftung vorlesen
von: Dieter(Drummer)
Geschrieben am: 19.11.2015 16:30:52

Guten Tag, VBA Spezialisten,
mit toller Hilfe aus diesem Forum habe ich den folgenden Code erstellt. Damit wird durch Klick auf z.B. CommandButton1 (auf Userform1) die Zahl 1 vorgelesen. Dies habe ich für insgesamt 10 CommandButtons (1, 2 ... bis 0).
Frage:
1) Wie muss der Code sein, wenn wenn nur 1x der fette Bereich programmiert ist, aber dennoch die Zahlen der KlickButtons jeweils vorgelesen werden?
2) Es dauert auh einige Zeit, bis nach dem vorlesen die Zahl dann in der Textbox ("Text1") erscheint. Kann dies auch schneller gehen?
Mit der Bitte um Hilfe.
Gruß, Dieter(Drummer)

  • 
    Private Sub CommandButton1_Click()
    Text1 = Text1 + "1"
    Dim objSpeaker As Object
        Set objSpeaker = CreateObject("SAPI.SpVoice")
        objSpeaker.Volume = 100
        objSpeaker.Speak 1
        Set objSpeaker = Nothing
    End Sub
    Private Sub CommandButton2_Click()
    Text1 = Text1 + "2"
    Dim objSpeaker As Object
        Set objSpeaker = CreateObject("SAPI.SpVoice")
        objSpeaker.Volume = 100
        objSpeaker.Speak 2
        Set objSpeaker = Nothing
    End Sub


  • Bild

    Betrifft: AW: CommandButton_Klick, Beschriftung vorlesen
    von: Rudi Maintaire
    Geschrieben am: 19.11.2015 16:41:27
    Hallo,
    meinst du so?

    Sub CommandButton1_Click()
      Text1 = Text1 + "1"
      vorlesen 1
    End Sub

    Sub vorlesen(DerText As String)
      Dim objSpeaker As Object
        Set objSpeaker = CreateObject("SAPI.SpVoice")
        objSpeaker.Volume = 100
        objSpeaker.Speak DerText
        Set objSpeaker = Nothing
    End Sub
    Gruß
    Rudi

    Bild

    Betrifft: AW: Sehe ich das dann richtig ...
    von: Dieter(Drummer)
    Geschrieben am: 19.11.2015 16:53:22
    ... Danke Rudi für Rückmeldung.
    Dann wäre das wohl für alle 10 CommandButtons so:

  • 
    Sub CommandButton1_Click()
      Text1 = Text1 + "1"
      vorlesen 1
    End Sub
    Sub CommandButton2_Click()
      Text1 = Text1 + "2"
      vorlesen 2
    End Sub
  • usw.
    Gruß, Dieter(Drummer)
    Ist das so richtig? Dann spare ich natürlich einiges an Code, da die "
    
    Sub vorlesen(DerText As String)" nut einmal angelegt werden muss.
    

    Bild

    Betrifft: ja, richtig, ...
    von: Rudi Maintaire
    Geschrieben am: 19.11.2015 17:09:38
    wobei Texte eigentlich mit & verknüpft werden.
    Text1 = Text1 & "1"
    Gruß
    Rudi

    Bild

    Betrifft: AW: Habs ausprobiert und ist prima, geht noch ...
    von: Dieter(Drummer)
    Geschrieben am: 19.11.2015 17:11:29
    Rudi. Danke für schnelle Hilfe.
    Kann man auch noch die Verzögerung beschleunigen, wenn der nachste Button angeklickt wird. Ich kann mir vorstellen, dass es an dem vorlesen liegt.
    Noch eine Frage bzw. Bitte. Wenn die Zahlen angeklickt urden, wird eine Rechenopteration ausgeführt und das Ergebnis in der Textbox ("text1" auf der Userform) angezeigt. Es wird aber das Ergbnis nicht vorgelesen. Was muus ich an deisem Makro und wie anpassen?. Auslöser ist der CommandButon11 ("="):

  • Private Sub CommandButton11_Click() '= Zeich
    If zahl1 = "" Then
    MsgBox ("Geben Sie eine Zahl ein!")
    ElseIf Text1 = "" Then
    MsgBox ("Geben Sie eine Zahl ein!")
    ElseIf rechenart = "addieren" Then
    Text1 = CDbl(Text1) + CDbl(zahl1)
    ElseIf rechenart = "subtrahieren" Then
    Text1 = CDbl(zahl1) - CDbl(Text1)
    ElseIf rechenart = "multiplizieren" Then
    Text1 = CDbl(zahl1) * CDbl(Text1)
    ElseIf rechenart = "dividieren" Then
    Text1 = CDbl(zahl1) / CDbl(Text1)
    End If


  • Bild

    Betrifft: AW: Habs ausprobiert und ist prima, geht noch ...
    von: Matthias L
    Geschrieben am: 19.11.2015 18:10:29
    Hallo
    Warum benutzt Du nicht gleich den Text(Caption) der Button?

    Option Explicit
    Sub CommandButton1_Click()
        vorlesen CommandButton1.Caption
    End Sub
    Sub CommandButton2_Click()
        vorlesen CommandButton2.Caption
    End Sub
    Sub CommandButton3_Click()
        vorlesen CommandButton3.Caption
    End Sub
    Sub CommandButton4_Click()
        vorlesen CommandButton4.Caption
    End Sub
    Private Sub CommandButton5_Click()
        vorlesen CommandButton5.Caption
        Unload UserForm1
    End Sub
    Sub vorlesen(DerText As String)
    Dim objSpeaker As Object
        Set objSpeaker = CreateObject("SAPI.SpVoice")
        objSpeaker.Volume = 100
        objSpeaker.Speak DerText
        Set objSpeaker = Nothing
    End Sub
    https://www.herber.de/bbs/user/101659.xlsm
    Gruß Matthias

    Bild

    Betrifft: AW: Danke Rudi und Matthias, prima Lösungen
    von: Dieter(Drummer)
    Geschrieben am: 19.11.2015 18:23:14
    Hi Matthias, danke dir für deine Lösung, damit wird der Code noch kürzer.
    Danke an euch und einen schönen Abend.
    Gruß, Dieter(Drummer)

    Bild

    Betrifft: Zeig mal wenn Du es fertig hast ... owT
    von: Matthias L
    Geschrieben am: 20.11.2015 15:49:01


    Bild

    Betrifft: AW: Meine fertige Datei
    von: Dieter(Drummer)
    Geschrieben am: 20.11.2015 16:47:21
    Hi Matthias L,
    hier meine fertige Datei. Dort ist ein eigen erstellter Rechner mit Code aus eienm Video (Internet) mit eigenen Anpassungen. Zusätzlich ein Klick auf Kalender, wird ein kleiner, toller Kalender (aus Excelwerkstatt) angezeigt. Ich hoffe, dass dieser eingefügte Kalender nicht zu Problemen führt, wenn ja, dann entferne ich ihn wieder. https://www.herber.de/bbs/user/101681.xlsm
    Nochmal Danke an alle Helfer, die mir dies ermöglicht haben.
    Gruß, Dieter(Drummer9

    Bild

    Betrifft: Oh oh, nicht fertig ...
    von: zu
    Geschrieben am: 20.11.2015 21:04:45
    Hallo Dieter
    Ok, hast Dir ja ne Menge Arbeit gemacht
    Fazit wg. dem Kalender: Man kann keinen Tag auswählen der in die Zelle geschrieben wird
    Aber egal, ich hab ja genug eigene Kalender entwickelt.
    Vielleicht solltest Du Dich auf eine Sache konzentrieren und nicht auf "2 Baustellen"
    Beim Rechner gefallen mir einige Sachen nicht so gut
    wenn ich Folgendes eingebe:
    Beispiel:
    6 ->"Sechs"
    / ->"dividiert durch"
    3 ->"Drei"
    Summe ->"Summe"
    und warum wird das Ergebnis bzw. die Formel nicht komplett vorgelesen inkl.Formel?
    Ich möchte Deine Arbeit in keinster Weise kritisieren habe
    aber ein paar Defizite erkennen müssen. Ich hoffe Du nimmst mir das nicht übel!
    Was ist z.B. wenn ich 25+14 rechnen will?
    Hier erwarte ich das mir der Text 25+14=39 vorgelesen wird
    Was ist wenn ich es mir anders überlege und ich will 25-14 rechnen
    Dann klicke ich einfach auf Minus und dann
    erwarte ich das mir der Text 25-14=11 auch vorgelesen wird.
    Mir wird aber nur vorgelesen


      2
      5
      minus
      1
      4
      Summe

    80-5=5
    25-14=14 usw.
    da hast Du wohl bei minus nicht aufgepasst.
    Du hast also noch Korrekturbedarf!
    Es macht ja keinen Sinn, wenn ich es bemerke und es Dir nicht mitteile, oder?
    Hier was zum "Spielen"
    https://www.herber.de/bbs/user/101685.xlsm
    Gruß Matthias

    Bild

    Betrifft: falscher Name ;-)
    von: Matthias L
    Geschrieben am: 20.11.2015 21:05:47


    Bild

    Betrifft: Oh, oh ... Doppelklick im Kalender
    von: Matthias L
    Geschrieben am: 20.11.2015 22:02:42
    Hallo
    Nun hab ich auch noch !mit Entsetzen! festgestellt, das beim Doppelklick im Kalender einfach
    Zellen überschrieben werden. Das geht ja gar nicht.
    Ich hatte eine Formel in der Zelle stehen!
    Nun weiß ich nicht mehr welche Formel das war, hilf mir!
    Nee, nee keine Angst.
    Aber das geht so nicht!
    Prüfe wenigstens vorher ob die Zelle leer ist!
    Gruß Matthias

    Bild

    Betrifft: AW: Es gibt immer noch was zu tun ...
    von: Dieter(Drummer)
    Geschrieben am: 20.11.2015 22:50:36
    Hi Matthias,
    danke für deine Hinweise und ich nehme nichts davon übel. Ich kann durch Hinweise nur lernen.
    Du hast recht, wenn da noch einiges nicht richtig ist, Ich bin aber in keinem Fall auch nur annähernd so gut in VBA wie du. Ich versuche einiges und muss sehen, wie ich das schaffe.
    Deine Datei mit dem Rechner hat natürlich eine ganz andere Qualität. Ich werde mich in damit beschäftigen und sehen, wie ich meine Variante verbessern kann. Z.B. das Vorlesen der Rechenoperation und dann das Ergebnis vorlesen, werde ich wohl nicht alleine umsetzen können. Ich seh mir deinen Code an und sehe, was ich für meine Datei nutzen kann.
    Ich melde mich wieder, aber es kann etwas dauern.
    Gruß, Dieter(Drummer)

    Bild

    Betrifft: AW: Verräts du mir noch ...
    von: Dieter(Drummer)
    Geschrieben am: 21.11.2015 08:30:02
    Guten Morgen Matthias L,
    verräts du mir noch, wo du den Text für den Button "Exit" versteckt hast?
    Ich hatte ja nur vor, einen einfachen Rechner zu erstellen. Deine Version hat im Zahlenblock 2 ja noch einen Zahlenblock für die Zehner und dann Hunderter nimmt. Im Zahlenblock 1 kann man nicht z.B. 1+1 tippen. Es werden beim zweiten Klick in Zahlenblock 1 direkt Zehner genommen, beim nächsten Klick Hunderter ... Das vorlesen des Ereignisses ist toll ...
    Da habe ich einiges noch zu verstehen ... und nicht nur einiges übersteigt mein derzeitiges VBA Wissen.
    Gruß, Dieter(Drummer)

    Bild

    Betrifft: AW: Verräts du mir noch ...
    von: Matthias L
    Geschrieben am: 21.11.2015 08:48:54
    Hallo Dieter
    Der Text steht in der Tag-Eigenschaft des Button ;-)
    Schönes Wochenende
    Gruß Matthias

    Bild

    Betrifft: AW: Danke ... und wieder was gelernt :-)
    von: Dieter(Drummer)
    Geschrieben am: 21.11.2015 09:20:15
    Hi Matthias,
    den Subtraktionsfehler bei mir habe ich dank deines Hinweises gefunden (fett):

  • 
    Private Sub CommandButton15_Click()
    zahl1 = Text1
    rechenart = "subtrahieren"
    vorlesen "minus"
    Text1 = ""
    End Sub

  • Wie ich den ganzen Vorgang und das Ergebnis vorlesen lassen kann, ist mir noch nicht klar, wie ich das einbauen kann.
    Gruß und auch ein schönes Wochenende,
    Dieter(Drummer)

    Bild

    Betrifft: AW: Mit deinem Code "Auswertung" ...
    von: Dieter(Drummer)
    Geschrieben am: 21.11.2015 11:00:07
    ... wird wohl das Vorlesen aus den Labeln 1, 2 und 3 ermöglicht. Wie ich aus meinen Eingaben über die jeweiligen Commandbuttons, die jeweilige Eingabe in die Labeln, Textboxen bekomme (die ich noch einfügen muss), weiß ich noch nicht. Ich werde mal einiges ausprobieren und melde mich wieder.
    Danke dir erstmal für tolle Infos und bisherige Hilfe.
    Gruß, Dieter(Drummer)

    Bild

    Betrifft: AW: Klappt schon etwas, aber
    von: Dieter(Drummer)
    Geschrieben am: 21.11.2015 15:34:18
    Hi Matthias,
    ich konnte schon einiges von deinem Code in meiner Version umsetzen.
    Ich komme aber z. Zt. nicht weiter:
    1) Wenn z.B. 1 + 2 geklickt wird, kommt keine Addition, sondern es wird 12 angezeigt. Das zieht sich auch durch, durch Minus, Division und Multiplikation. Es finden keine Rechenoperationen statt.
    2) Was bedeutet "CLng" im "Sub Auswertung"? Kann es damit zusammen hängen?
    Hier meine bisherige Version:
    https://www.herber.de/bbs/user/101699.xlsm
    Freue mich, wenn du mir noch weiter helfen kannst.
    Gruß, Dieter(Drummer)
    Anmerkung Kalender: Bei Klick auf ein Kalenderdatum wird jetzt geprüft, ob die aktive Zelle leer ist.

    Bild

    Betrifft: Das ist ja auch logisch
    von: Matthias L
    Geschrieben am: 21.11.2015 17:32:13
    Hallo Dieter
    Das ist ja auch logisch
    Du füllst in keinem einzigen Code das Label3
    Deshalb kann das ja auch nicht funktionieren.
    Du kannst Folgendes realisieren:
    Beim Klick auf einen Operator [+ - * /]
    schaltest Du auf Label3 um
    Dazu musst Du zu Beginn eine Set-Anweisung auf Label1 setzen
    und beim Klick auf einen Operator setzt Du die Set-Anweisung auf Label3
    Als Bsp: aber ungetestet
    Zu Beginn
    Dim MyLabel
    Set MyLabel = Label1
    Im Moment in dem Du auf einen Operator klickst setzt Du die Set-Anweisung zurück
    Set MyLabel = Nothing
    Set MyLabel = Label3
    Überall wo Du Label1 = ... stehen hast schreibst Du MyLabel =
    Hast Du noch keinen Operator gewählt wird Label1 referenziert
    Sobald Du einen Operator angeklick hast wird die Referenz auf Label3 gesetzt
    und diese Label gefüllt.
    Ich hab Dir das mal als Beispiel erstellt (ohne Vorlesen)
    https://www.herber.de/bbs/user/101705.xlsm
    Das mit der führeneden 0 (Null) regelst Du mit IIF ...
    Du füllst bitte zuerst das Label1 (gibst also noch keinen Operator an!)
    Wenn Du fertig bist mit der ersten Zahl klickst Du auf einen Operator [+ - * /]
    Nun wird durch die Set-Anweisung das Label3 gefüllt da Label1 als Referenzobjekt
    von MyLabel getrennt wurde
    Set MyLabel = Nothing 'gibt das Objekt frei
    Set MyLabel = Label3 'referenziert das Objekt neu
    Ich werd mal weiter an Deinem Projekt dranbleiben und ab und an mal reinschauen.
    Du schaffts das schon :-)
    Gruß Matthias

    Bild

    Betrifft: AW: Danke erstmal für weitere Hilfe...
    von: Dieter(Drummer)
    Geschrieben am: 21.11.2015 18:24:35
    ... ich werde mich drum kümmern und gebe weitere Nachricht.
    Noch einen schönen Abend und
    Gruß, Dieter(Drummer)

    Bild

    Betrifft: Was bedeutet CLng(MyLabel)
    von: Matthias L
    Geschrieben am: 21.11.2015 19:50:17
    Hallo
    CLng(LabelX) = einfache Umwandlung in einen Long-Wert (Ganzzahl)
    CDbl(LabelX) ist dann Double ... (bei Fließkommawerten unumgänglich) siehe Hilfe
    Willst Du also mit Kommawerten arbeiten und nicht nur mit Ganzzahlen dann benutze CDbl
    Gruß Matthias

    Bild

    Betrifft: AW: Da muss ich aber ...
    von: Dieter(Drummer)
    Geschrieben am: 21.11.2015 19:56:13
    ... kräftig in VBA einsteigen ;-), Matthias. Mit dem umsetzen deiner letzten Mitteilung, mit Anlage Musterdatei, habe ich noch reichlich zu tun, da mir das nicht so leicht fällt.
    Danke dir erstmal für die Erläuterung.
    Gruß, Dieter(Drummer)

    Bild

    Betrifft: AW: Brauche weitere Hilfe
    von: Dieter(Drummer)
    Geschrieben am: 22.11.2015 13:36:04
    Hi Matthias,
    ich hoffe, ich strapaziere nicht deine Geduld und Hilfe.
    Ich bekomme es einfach nicht hin, wenn ich die erste Zahl habe (in Label1 ersichtlich), dass die 2. eingegebene Zahl, nach dem Klick auf den Operator (Label2), umgeschaltet wird, auf Zahl 2 (im Label3)! Ich habe es mal nur mit Zahl1 (cmb1) und Operator (cmBPlus) versucht. Es findet kein "umschalten" statt.
    Wäre sehr nett von dir, wenn du mir das mal für für Button1 und Operator plus einfügen könntest. Den Rest schaffe ich dann wohl. Hier meine jetzige Testversion:
    https://www.herber.de/bbs/user/101716.xlsm
    Danke für deine evtl. neue Hilfe.
    Gruß, Dieter(Drummer)

    Bild

    Betrifft: Bekommst weitere Hilfe ;-)
    von: Matthias L
    Geschrieben am: 22.11.2015 14:24:37
    Hallo Dieter
    Wenn ich Deine hochgeladene Datei benutzen will, schmiert bei mir Excel(XL2007) ab!
    Deshalb hier der jetztiger Stand meines Rechners.
    https://www.herber.de/bbs/user/101717.xlsm
    Gruß Matthias

    Bild

    Betrifft: AW: Danke erstmal, Matthias ...
    von: Dieter(Drummer)
    Geschrieben am: 22.11.2015 15:02:41
    ... diene Version muss ich mir genauer ansehen und versuche es umzusetzen.
    Melde mich wieder ... Noch einen schönen Sonntag und
    Gruß, Dieter(Drummer)

    Bild

    Betrifft: ich habs befürchtet....wie oft noch ? keine Worte
    von: robert
    Geschrieben am: 22.11.2015 15:06:56


    Bild

    Betrifft: AW: Wenn man nicht so ...
    von: Dieter(Drummer)
    Geschrieben am: 22.11.2015 15:21:27
    ... gut ist in VBA, dann ist das halt so, Robert. Evtl. solltest du dich einfach raushalten! ich will weiter lernen und das ist halt nicht immer so einfach. Auf deine Anmerkungen kann ich sehr gut verzichten und hoffe, dass ich von dir nichts mehr höre, auch keine evtl. Hilfe in irgendeiner Sache!
    Mit Worten: Dennoch Gruß, Dieter(Drummer)

    Bild

    Betrifft: AW: Leider ...
    von: Dieter(Drummer)
    Geschrieben am: 22.11.2015 15:45:43
    ... ist für mich ersichtlich, Matthias, dass ich wohl eine Pause mit meinem Rechner-Projekt machen muss.
    Die verzichtbare Anmerkung von robert zeigt mir, dass ich wohl erstmal selbst alles versuchen muss, um es hin zu bekommen.
    Dir danke ich auf jeden Fall für deine unermüdliche und ausdauernde Hilfe.
    Ich pobiere jetzt, egal wie lange es dauert und melde dann bei dir, wenn ich es evtl. geschafft habe.
    Grundsätzlich bin ich der Meinung, dass das Herber Forum einfach Spitze ist und egal wer immer hier hin und her schreibt, allen Mitlesenden zeigt, was alles in Excel möglich ist und dient auch dem best möglichen Umgang mit Excel.
    Gruß und nochmal meinen herzlichen Dank für deine bisherige Hilfe, Dieter(Drummer)


    Bild

    Betrifft: ein Tipp ...
    von: Matthias L
    Geschrieben am: 22.11.2015 16:01:21
    Hallo Dieter
    Wenn Du Du solche kleineren Projekte startest, solltest Du das step by step machen
    Ich konnte ja Deine letzte Version nicht anschauen, da mir Excel immer abgeschmiert ist.
    Deshalb schlage ich vor, Du nimmst mal eine neue Datei und kopierst dort nur
    das Userform des Rechners rein. Nicht den Kalender
    Es ist ja für den der Hilfe anbietet nicht einfacher wenn zu viel in der Datei drin ist,
    was mit der Frage nichts zu tun hat!
    Denn so gehe ich immer vor:
    Ich lad mir die Datei runter, starte immer ohne Makros und muss erstmal den komplette Code der in der Datei vorhanden ist durchstudieren.
    Ohne zu wissen was an Code in der Datei steht erlaube ich keine Makros.
    Wenn also weniger Code in der Datei ist bin ich auch schneller durch ;-)
    Also zeig mal: nur den Rechner. Wir schaffen das schon!
    Gruß Matthias

    Bild

    Betrifft: AW: Abgespeckte Version ohne ...
    von: Dieter(Drummer)
    Geschrieben am: 22.11.2015 16:18:26
    ... Kalender, Matthias,
    Danke für unermüdliche Hilfe :-): https://www.herber.de/bbs/user/101718.xlsm
    Gruß, Dieter(Drummer)

    Bild

    Betrifft: Objekt ohne Referenz
    von: Matthias L
    Geschrieben am: 22.11.2015 16:51:38
    Hallo
    Du hast ja auch keine Objekt dem Label zugewiesen
    Schau mal in meine Datei

    Private Sub UserForm_Activate()
     Set MyLabel = lblZahl1 'Objekt zuweisen beim Laden!
    End Sub
    Private Sub UserForm_Deactivate()
     Set MyLabel = Nothing 'zurücksetzen
    End Sub


    Bei Dir also so:
    Private Sub UserForm_Activate()
     Set Label = lblZahl1 'Objekt zuweisen beim Laden!
    End Sub
    Private Sub UserForm_Deactivate()
     Set Label = Nothing 'zurücksetzen
    End Sub

    Dann musst Du nur noch Label1 durch Label ersetzen
    Private Sub Cmb0_Click()
     Label.Caption = IIf(Label.Caption <> "0", Label.Caption & Cmb0.Caption,  _
    Cmb0.Caption) 'Zahl 0
     Auswertung
     Me.Repaint
     vorlesen Label.Caption
    End Sub
    Private Sub Cmb1_Click()
     Label.Caption = IIf(Label.Caption <> "0", Label.Caption & Cmb1.Caption,  _
    Cmb1.Caption) 'Zahl 1
     Auswertung
     Me.Repaint
     vorlesen Label.Caption
    End Sub
    Gruß Matthias

    Bild

    Betrifft: AW: Nun klappt es ...
    von: Dieter(Drummer)
    Geschrieben am: 22.11.2015 17:46:35
    Tausend Dank für unermüdliche Hilfe, Matthias,
    wenn es bei mir halt auch länger dauert, den größten Teil zu verstehen.
    Mit Commandbutton1 geht es jetzt, wie ich es mir vorgestellt habe. Ich passe jetzt noch den kompletten Rest an und werde mich dann mit einer "abgespeckten" Version melden. Es kann wohl etwas dauern, da mir inzwischen der Kopf raucht :-).
    Wünsche dir einen schönen Abend.
    Gruß, Dieter(Drummer)

    Bild

    Betrifft: na wie schön ...
    von: Matthias L
    Geschrieben am: 22.11.2015 17:59:12
    Hallo
    Gern geschehen.
    Denke auch daran beim Löschen Label3 ebenfalls zurückzusetzen!

    
    Private Sub CommandButton16_Click()
    Label1.Caption = 0
    Label3.Caption = 0
    TextBox1 = ""
    vorlesen CommandButton16.Tag
    End Sub
    Gruß Matthias

    Bild

    Betrifft: AW: Danke Matthias, noch ein ...
    von: Dieter(Drummer)
    Geschrieben am: 22.11.2015 19:08:39
    ... Fehler ist aufgetaucht:
    Wenn nach der Operation eine weitere Zahl geklickt wird, wird die Zahl als Zehner etc. gezeigt und gerechnet. Sorry das es noch nicht ganz fertig ist.
    Hier meine inzwischen mit deinen Angaben abgespeckte Version:https://www.herber.de/bbs/user/101726.xlsm
    Mit Abendgruß, Dieter(Drummer)

    Bild

    Betrifft: AW: Hatte wohl mit Datei nicht geklappt. Jetzt
    von: Dieter(Drummer)
    Geschrieben am: 22.11.2015 19:12:33
    mit Datei: https://www.herber.de/bbs/user/101727.xlsm
    Gruß, Dieter(Drummer)

    Bild

    Betrifft: Das ist heute zu viel für Dich !
    von: Matthias L
    Geschrieben am: 22.11.2015 20:04:59
    Hallo
    Du vermischst leider immer wieder Altes mit Neuem
    und ich muss immer wieder neu analysieren
    Du benutzt ja wieder Long-Werte Clng(Object) statt Cdbl(Objekt)
    Da wird das mit dem Komma aber nix!
    Benutze doch einfach diesen Rechner:
    https://www.herber.de/bbs/user/101730.xlsm
    Und studiere ...
    Kannst ihn ja für Dich persönlich anders und frei gestalten. Ich hab kein Problem damit.
    Ich bau demnächst noch die n²- oder n³ etc. -Funktion und die Wurzelfunktion mit ein
    Ich empfehle Dir aber jetzt wirklich mal Pause zu machen.
    Häng Dich erstmal in den Rechner rein und lass den Kalender weg!
    Gruß Matthias

    Bild

    Betrifft: AW: Danke für deine immense Geduld ...
    von: Dieter(Drummer)
    Geschrieben am: 22.11.2015 20:15:12
    ... ich lass alles mal sacken und vertiefe mich in deine Version.
    Danke und Gruß, Dieter(Drummer)

    Bild

    Betrifft: AW: Endlich bin eigentlich fertig, außer ...
    von: Dieter(Drummer)
    Geschrieben am: 24.11.2015 15:12:39
    Guten Tag, wirklich geduldiger Matthias,
    hier ist meine jetzt so gut wie fertige Datei. Alles rechnerische klappt inkl. mit Kommastellen.
    Das Vorlesen habe ich mit diesem Makro nach langem probieren realisiert und es funktioniert auch:

  • 
    Private Sub Text1_Change()
    vorlesen Text1 'Zahl(en) mit allen Änderungen und das Ergebnis werden vorgelesen
    End Sub

  • Mich stört jetzt nur noch, dass beim Klick auf Komma (cmb19, "Komma"), die Zahl wieder vorgelesen wird, die vorher eingegeben wurde. Es muss ja auch so sein, da das "Change" Ereignis ja schon die erste Zahl in Text1 ist und somit wiederholt wird.
    Was kann ich tun, damit bei Klick auf "cmb19" nicht die erste Zahl, die vor dem Klick auf "cmb19" aktiviert wurde, nicht wiederholt wird? Wenn es dafür keine Lösung gibt, kann auch damit leben.
    Hier meine jetzige Datei OHNE Kalender :-): https://www.herber.de/bbs/user/101770.xlsm
    Es ist nicht eilig und ich danke für deine Geduld.
    Gruß, Dieter(Drummer)

    Bild

    Betrifft: nicht ganz klar ...
    von: Matthias L
    Geschrieben am: 24.11.2015 23:55:55
    Hallo Dieter

    Private Sub cmb19_Click()
    Text1 = Text1 & "," 'Komma
    vorlesen cmb19.Tag
    End Sub
    Die Tag-Eigenschaft von cmb19 ist aber leer!?
    Warum lässt Du Dir das vorlesen


    Bin mir also nicht sicher Dich verstanden zu haben.
    Evtl meinst Du so:?
    Private Sub cmb19_Click()
    Text1 = Text1 & "," 'Komma
    Application.EnableEvents = False
     vorlesen "Komma"
    Application.EnableEvents = True
    End Sub
    
    Wenn es nicht so klappt wie Du Dir das vorstellst, dann bitte mal ein exaktes Bsp schreiben.
    Was gibst Du konkret ein, was wird dabei falsch vorgelesen und was soll vorgelesen werden.
    Am Ende musst Du noch verhindern, das ein zweites Komma gesetzt werden kann (unlogisch!)
    Das ginge dann z.B. so:
    
    Private Sub cmb19_Click()
    Text1 = Text1 & "," 'Komma
    Application.EnableEvents = False
     vorlesen "Komma"
    Application.EnableEvents = True
    cmb19.Enabled = False
    End Sub
    
    Klickst Du nun auf einen Operator setzt Du jeweils am Ende
    cmb19.Enabled wieder auf = True
    Gruß Matthias

    Bild

    Betrifft: AW: Danke Matthias ...
    von: Dieter(Drummer)
    Geschrieben am: 25.11.2015 08:35:38
    ... für deine Rückmeldung und deine weitere Hilfe. Ich probiere deine Vorschläge aus, die wohl sehr logisch sind. Ich melde mich wieder.
    Danke für deine Geduld und ständige Hilfe.
    Gruß, Dieter(Drummer)

    Bild

    Betrifft: AW: Das klappt schon prima, nur ...
    von: Dieter(Drummer)
    Geschrieben am: 25.11.2015 09:34:39
    ... wenn ich cmb19 "Komma" klicke, wird dennoch die Zahl des ersten Klicks wiederholt.
    Z.B. Klick auf 1 (cmb1), dann wird die Zahl 1 vorgelesen. Danach Klick auf Komma (cmb19), wird wieder die 1, vorheriger Klick, vorgelesen. Es soll also nicht die Zahl vorgelesen werden, die vor dem Klick auf Komma geklickt wurde. Hoffe, dass es überhaupt möglich ist.
    Hier meine neue, mit deinem neuen Änderungscode, versehene Datei:
    https://www.herber.de/bbs/user/101790.xlsm
    Folgendes habe ich geändert:
    cmb19 (Komma)

  • 'von Matthias L, 25.11.2015
    
    Private Sub cmb19_Click()
     Text1 = Text1 & "," 'Komma
     Application.EnableEvents = False
      'vorlesen "Komma"
     'Application.EnableEvents = True
     cmb19.Enabled = False
     End Sub

  • und eingesetzt in:
    cmb19.Enabled = True (cmb: 12, 13, 14, 15) und (cmb16 - löschen, cmb11 - "=")
    Es ist aber von dir schon eine jetzt tolle Lösung, evtl. klappt der Rest ja auch noch.
    Gruß, Dieter(Drummer)

    Bild

    Betrifft: vorlesen Right(Text1, 1)
    von: Matthias L
    Geschrieben am: 25.11.2015 11:25:34
    Hallo
    Dann so?

    Private Sub Text1_Change()
    If Right(Text1, 1) <> "," Then
     vorlesen Text1 'Zahl(en) mit allen Änderungen und das Ergebnis wird vorgelesen
    Else
     vorlesen Right(Text1, 1)
    End If
    End Sub
    Gruß Matthias

    Bild

    Betrifft: AW: Extra Dank, jetzt is es sehr gut
    von: Dieter(Drummer)
    Geschrieben am: 25.11.2015 12:00:08
    Dir, Matthias,
    gilt mein ganz besonderen Dank für unermüdlichen Einsatz und deine Geduld. Jetzt ist es nach meinen Vorstellungen prima. Hier meine fertige Version, inkl. der letzten Anpassungen im Code:
    https://www.herber.de/bbs/user/101794.xlsm
    Danke mit Gruß und einen erfreulichen Tag,
    Dieter(Drummer)

    Bild

    Betrifft: Danke für die Rückmeldung ... owT
    von: Matthias L
    Geschrieben am: 26.11.2015 00:20:51


     Bild

    Beiträge aus den Excel-Beispielen zum Thema "CommandButton_Klick, Beschriftung vorlesen"