Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1456to1460
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

CommandButton_Klick, Beschriftung vorlesen

CommandButton_Klick, Beschriftung vorlesen
19.11.2015 16:30:52
Dieter(Drummer)
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
    


  • 43
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: CommandButton_Klick, Beschriftung vorlesen
    19.11.2015 16:41:27
    Rudi
    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

    AW: Sehe ich das dann richtig ...
    19.11.2015 16:53:22
    Dieter(Drummer)
    ... 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.
    

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

    AW: Habs ausprobiert und ist prima, geht noch ...
    19.11.2015 17:11:29
    Dieter(Drummer)
    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

  • Anzeige
    AW: Habs ausprobiert und ist prima, geht noch ...
    19.11.2015 18:10:29
    Matthias
    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

    Anzeige
    AW: Danke Rudi und Matthias, prima Lösungen
    19.11.2015 18:23:14
    Dieter(Drummer)
    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)

    Zeig mal wenn Du es fertig hast ... owT
    20.11.2015 15:49:01
    Matthias

    AW: Meine fertige Datei
    20.11.2015 16:47:21
    Dieter(Drummer)
    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

    Anzeige
    Oh oh, nicht fertig ...
    20.11.2015 21:04:45
    zu
    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

    Anzeige
    falscher Name ;-)
    20.11.2015 21:05:47
    Matthias

    Oh, oh ... Doppelklick im Kalender
    20.11.2015 22:02:42
    Matthias
    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

    AW: Es gibt immer noch was zu tun ...
    20.11.2015 22:50:36
    Dieter(Drummer)
    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)

    Anzeige
    AW: Verräts du mir noch ...
    21.11.2015 08:30:02
    Dieter(Drummer)
    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)

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

    AW: Danke ... und wieder was gelernt :-)
    21.11.2015 09:20:15
    Dieter(Drummer)
    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)

    Anzeige
    AW: Mit deinem Code "Auswertung" ...
    21.11.2015 11:00:07
    Dieter(Drummer)
    ... 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)

    AW: Klappt schon etwas, aber
    21.11.2015 15:34:18
    Dieter(Drummer)
    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.

    Anzeige
    Das ist ja auch logisch
    21.11.2015 17:32:13
    Matthias
    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

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

    Was bedeutet CLng(MyLabel)
    21.11.2015 19:50:17
    Matthias
    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

    AW: Da muss ich aber ...
    21.11.2015 19:56:13
    Dieter(Drummer)
    ... 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)

    AW: Brauche weitere Hilfe
    22.11.2015 13:36:04
    Dieter(Drummer)
    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)

    Bekommst weitere Hilfe ;-)
    22.11.2015 14:24:37
    Matthias
    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

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

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

    AW: Wenn man nicht so ...
    22.11.2015 15:21:27
    Dieter(Drummer)
    ... 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)

    AW: Leider ...
    22.11.2015 15:45:43
    Dieter(Drummer)
    ... 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)

    ein Tipp ...
    22.11.2015 16:01:21
    Matthias
    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

    Objekt ohne Referenz
    22.11.2015 16:51:38
    Matthias
    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

    AW: Nun klappt es ...
    22.11.2015 17:46:35
    Dieter(Drummer)
    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)

    na wie schön ...
    22.11.2015 17:59:12
    Matthias
    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

    AW: Danke Matthias, noch ein ...
    22.11.2015 19:08:39
    Dieter(Drummer)
    ... 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)

    Das ist heute zu viel für Dich !
    22.11.2015 20:04:59
    Matthias
    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

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

    AW: Endlich bin eigentlich fertig, außer ...
    24.11.2015 15:12:39
    Dieter(Drummer)
    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)

    nicht ganz klar ...
    24.11.2015 23:55:55
    Matthias
    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

    AW: Danke Matthias ...
    25.11.2015 08:35:38
    Dieter(Drummer)
    ... 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)

    AW: Das klappt schon prima, nur ...
    25.11.2015 09:34:39
    Dieter(Drummer)
    ... 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)

    vorlesen Right(Text1, 1)
    25.11.2015 11:25:34
    Matthias
    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

    AW: Extra Dank, jetzt is es sehr gut
    25.11.2015 12:00:08
    Dieter(Drummer)
    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)

    Danke für die Rückmeldung ... owT
    26.11.2015 00:20:51
    Matthias

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige