Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Function Codeaufruf mit Speech.Speek

Forumthread: Function Codeaufruf mit Speech.Speek

Function Codeaufruf mit Speech.Speek
21.11.2021 09:55:28
Dieter(Drummer)
Guten Morgen Spezialisten/innen.
Bei öffnen der Datei soll die

Function Calendar_Week aufgerufen werden und gesprochen werden.
Mein Code in der Zeile Application.Speech.Speak.

Function Calendar_Week
, SpeakAsync:=True funktioniert so nicht. Fehlerhinweis "Fehler beim Kompilieren: Argument nicht optional". Wie muss der Code richtig lauten, damit beim öffnen der Datei das komoplette Datum mit Angabe der KW gesagt wird. Mit der Bitte um Hilfe, grüßt Dieter(Drummer)
  • 
    Sub Workbook_Open()
    Sheets("Blutdruck").Select
    Call FreieZelle_E 'Erste freie Zelle in Spalte E
    '
    
    
    Function auf rufen und sprechen
    Application.Speech.Speak.
    
    
    Function Calendar_Week
    , SpeakAsync:=True Application.ScreenUpdating = False End Sub
    Private
    
    Function Calendar_Week
    (ByVal pvdtmDate As Date) As Integer 'Aktuelle Kalenderwoche Dim dtmTempDate As Date dtmTempDate = DateSerial(Year(pvdtmDate + (8 - Weekday(pvdtmDate)) Mod 7 - 3), 1, 1) Calendar_Week = (pvdtmDate - dtmTempDate - 3 + (Weekday(dtmTempDate) + 1) Mod 7) \ 7 + 1 End Function

  • Anzeige

    9
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Function Codeaufruf mit Speech.Speek
    21.11.2021 10:07:51
    Hajo_Zi
    benutze das Open Ereignis unter DieseArbeitsmappe.
    
    Option Explicit
    Sub n1()
    MsgBox Date & " " & KALENDERWOCHE_DIN(Date)
    End Sub
    Function KALENDERWOCHE_DIN(datum As Date) As Integer
    '    von Christoph Kremer, Aachen
    '    Berechnt die KW nach DIN 1355
    Dim t&
    t = DateSerial(Year(datum + (8 - Weekday(datum)) Mod 7 - 3), 1, 1)
    KALENDERWOCHE_DIN = (datum - t - 3 + (Weekday(t) + 1) Mod 7) \ 7 + 1
    End Function
    
    GrußformelHomepage
    In diesem Forum bekomme nur selten eine Mailbenachrichtigung, weitere Antworten sind zufällig.
    Anzeige
    AW: Danke HaJo, so soll es nicht ...
    21.11.2021 10:19:52
    Dieter(Drummer)
    ... sein. Es soll ja gesprochen werden und nicht als MsgBox.
    Mit MsgBox bekomme ich den Funktionsaufruf hin, so soll es aber nicht sein.
    Dennoch Danke für Vorschlag.
    Gruß, Dieter (Drummer)
    AW: Danke HaJo, so soll es nicht ...
    21.11.2021 10:30:15
    Hajo_Zi
    Hallo Diter,
    as hatte ich im ersten Beitrag nicht gelesen das es vorgelesen werden soll..
    Ich bin dann raus, da Aufgabe falsch verstanden.
    Gruß Hajo
    Anzeige
    AW: Function Codeaufruf mit Speech.Speek
    21.11.2021 10:54:22
    volti
    Hallo Dieter,
    meinst Du so etwas hier?
    Code:

    [Cc]

    Private Sub Workbook_Open() ' Sprich Datum und Woche Application.Speech.Speak "Heute ist der " & Date & " und die Kalenderwoche" _ & KALENDERWOCHE_DIN(Date), SpeakAsync:=True End Sub Function KALENDERWOCHE_DIN(datum As Date) As Integer ' von Christoph Kremer, Aachen ' Berechnt die KW nach DIN 1355 Dim t& t = DateSerial(Year(datum + (8 - Weekday(datum)) Mod 7 - 3), 1, 1) KALENDERWOCHE_DIN = (datum - t - 3 + (Weekday(t) + 1) Mod 7) \ 7 + 1 End Function

    viele Grüße
    Karl-Heinz

    Anzeige
    AW: Function Codeaufruf mit Speech.Speek
    21.11.2021 11:18:45
    Dieter(Drummer)
    Danke Karl-Heinz.
    Deine Version funktioniert und kann ich gut nutzen.
    Gruß und einen erfreulichen Tag,
    Dieter(Drummer)
    AW: Function Codeaufruf mit Speech.Speek
    21.11.2021 13:35:12
    Dieter(Drummer)
    Hallo Karl-Heinz,
    hast Du noch eine Idee, wie der Code lauten muss, dass auch der Tag, also Montag, Dienstag ..., angesagt wird?
    Gruß, Dieter(Drummer)
    Der jetzige Code ist:
  • 
    Private Sub Workbook_Open()
    ' Sprich Datum und Woche
    Application.Speech.Speak "Heute ist der " & Date & " und die Kalenderwoche" _
    & KALENDERWOCHE_DIN(Date), SpeakAsync:=True
    '= TEXT(A1; "TT-MM-JJ")
    End Sub
    
    Function KALENDERWOCHE_DIN(datum As Date) As Integer
    ' von Christoph Kremer, Aachen
    ' Berechnet die KW nach DIN 1355
    Dim t&
    t = DateSerial(Year(datum + (8 - Weekday(datum)) Mod 7 - 3), 1, 1)
    KALENDERWOCHE_DIN = (datum - t - 3 + (Weekday(t) + 1) Mod 7) \ 7 + 1
    End Function

  • Anzeige
    AW: Function Codeaufruf mit Speech.Speek
    21.11.2021 17:31:13
    volti
    Hallo Dieter,
    eine Idee...
    Code:

    [Cc]

    Private Sub Workbook_Open() ' Sprich Datum und Woche Dim sArr() As String sArr = Split(" Sonntag Montag Dienstag Mitttwoch Donnerstag Freitag Samstag") Application.Speech.Speak "Heute ist " & sArr(WorksheetFunction.Weekday(Date)) _ & " der " & Date & " und die Kalenderwoche" _ & KALENDERWOCHE_DIN(Date), SpeakAsync:=True End Sub Function KALENDERWOCHE_DIN(datum As Date) As Integer ' von Christoph Kremer, Aachen ' Berechnt die KW nach DIN 1355 Dim t& t = DateSerial(Year(datum + (8 - Weekday(datum)) Mod 7 - 3), 1, 1) KALENDERWOCHE_DIN = (datum - t - 3 + (Weekday(t) + 1) Mod 7) \ 7 + 1 End Function

    viele Grüße
    Karl-Heinz

    Anzeige
    AW: Danke Karl-Heinz, ...
    22.11.2021 08:44:14
    Dieter(Drummer)
    ... funktioniert perfekt und wie gewünscht.
    Sorry für späte Rückmeldung.
    Gruß und einen guten Start in die neue Woche ...
    Dieter(Drummer)
    AW: Function Codeaufruf mit Speech.Speek
    27.11.2021 08:43:51
    Luschi
    Hallo Excel-Fan's
    in Vba-Excel 2019 funktioniert dieser Aufruf, um die richtige Kalenderwoche in Europa zu berechnen:
    WorksheetFunction.WeekNum(Date, 21)
    In der Online-Hilfe vom 01.06.2021: https://docs.microsoft.com/de-de/office/vba/api/excel.worksheetfunction.weeknum
    steht davon natürlich nix.
    Gruß von Luschi
    aus klein-Paris
    Anzeige
    ;

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Entdecke mehr
    Finde genau, was du suchst

    Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

    Suche nach den besten Antworten
    Unsere beliebtesten Threads

    Entdecke unsere meistgeklickten Beiträge in der Google Suche

    Top 100 Threads jetzt ansehen
    Anzeige