Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1856to1860
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

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

  • 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
    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

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige