Office: (Office 2010) Datum in Funktion verwenden

Helfe beim Thema Datum in Funktion verwenden in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Community, ich schreibe gerade in Excel ein kleines Modul, welches vom User eine Eingabe (Datum) erwartet und dieses dann in einer Funktion... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von caprisonne, 1. September 2016.

  1. caprisonne Neuer User

    Datum in Funktion verwenden


    Hallo Community,

    ich schreibe gerade in Excel ein kleines Modul, welches vom User eine Eingabe (Datum) erwartet und dieses dann in einer Funktion verwendet. Leider komme ich bei der Nutzung der Variable für das Datum nicht weiter. Mein datumsbezogener Code sieht so aus
    Code:
    ' ### Input box for the date the user can specify:
       sTxt = InputBox(prompt:=sPrompt, Default:=week1)
       ' ### Converting into real date format:
       von = CDate(sTxt)
       ' ### Defining the weeks that are necessary for later usage:
       week1 = DateSerial(Year(von), Month(von), Day(von) + 0)
    
    Nun möchte ich gerne das Datum, das in von gespeichert ist, in dieser Funktion werden:
    Code:
         Range("D2").FormulaLocal = "=SUMMEWENNS(SourceData!$T:$T;SourceData!$Z:$Z;WorkData!A2;SourceData!$G:$G;"">=von"";SourceData!$G:$G;""<=week1"")"
         Range("D2").AutoFill Destination:=Range(Cells(2, 4), Cells(LastRow, 4))
    
    Jedoch scheint das nicht zu klappen, der Output sieht so aus:
    Datum in Funktion verwenden [​IMG]

    Normalerweise sollten da jetzt 0'en und 1'en stehen, aber keine Datumsangaben. Das Funktionsfeld sieht so aus:
    Datum in Funktion verwenden [​IMG]

    Könnt ihr mir vielleicht helfen, dass das Datum richtig genutzt? Wenn ich das Datum "hardcodiere", dann klappt das..
     
    caprisonne, 1. September 2016
    #1
  2. Lutz Fricke Erfahrener User
    Hallo Caprisonne,

    wahrscheinlich waren deine Zellen ursprünglich bereits als Datum formatiert.

    ABER: Bei der Formel hängt's grundsätzlich.
    Du gibst ein Datum ein und speicherst es als Variable "von", dann speicherst Du dieses Datum als Variable "week1". Am Ende summierts du alle Werte der Spalte T, wenn Spalte G>=Datum und Spalte G<=Datum gilt. Warum nimmst Du nicht gleich G=Datum?

    Deine Variablen in die Formel zu basteln habe ich auch nicht hinbekommen und weiß nicht, ob das so überhaupt funktioniert. Aber ich habe mal ein Beispiel geschrieben, in dem ich deine Variablen in zwei Zellen schreibe und diese dann in der Formel verwende.
    Code:
    Sub Makro1()
    '
    ' Makro1 Makro
    '
       sTxt = InputBox(prompt:="TEST", Default:=Date)
       ' ### Converting into real date format:
       von = CDate(sTxt)
       ' ### Defining the weeks that are necessary for later usage:
       week1 = DateSerial(Year(von), Month(von), Day(von) + 0)
        
        Cells(4, 1) = von
        Cells(5, 1) = week1
        
        Range("A1").Select
        
        ActiveCell.FormulaR1C1 = _
            "=SUMIFS(RC[6]:R[8]C[6],RC[7]:R[8]C[7],""<=""& R[3]C,RC[8]:R[8]C[8],"">=""& R[4]C)"
    End Sub
    
    Solltest Du Deine Formel in viele Zellen kopieren, dauert das natürlich ewig.
    Brauchst Du wirklich die Formel, weil deine Tabelle dynamisch sein soll, oder tut's der reine Wert. Dann wäre die Aufsummierung im Makro mit Sicherheit der schnellere Weg.

    Gruß,
    Lutz
     
    Lutz Fricke, 1. September 2016
    #2
  3. steve1da Office Guru
    steve1da, 1. September 2016
    #3
  4. Exl121150 Erfahrener User

    Datum in Funktion verwenden

    Hallo,

    du meinst, wenn du statt "von" und "week1" ein Datum einsetzt, dann klappt es. Genau das ist das Problem, dass du keine Datumsangaben eingesetzt hast in der SUMMEWENNS-Formel.
    Um das am einfachsten zu ermöglichen, habe ich im folgenden Code eine Hilfsvariable "SuFormel" eingesetzt, in der dann mittels Replace-Funktion die Texte "von" bzw. "week1" durch die Datumswerte ersetzt werden:
    Code:
    Option Explicit
    '
    Sub testen()
    '
       Dim sTxt As String
       Dim von As Date, week1 As Date
       Dim SuFormel As String
    '
    ' ### Input box for the date the user can specify:
       sTxt = InputBox(prompt:=sPrompt, Default:=week1)
       ' ### Converting into real date format:
       von = CDate(sTxt)
       ' ### Defining the weeks that are necessary for later usage:
       week1 = DateSerial(Year(von), Month(von), Day(von) + 0)
    '   
    [COLOR="#0000CD"]   SuFormel$ = "=SUMMEWENNS(SourceData!$T:$T; SourceData!$Z:$Z;WorkData!A2;  SourceData!$G:$G;"">=von"";  SourceData!$G:$G;""<=week1"")"
       SuFormel$ = Replace(SuFormel$, "von", von)
       SuFormel$ = Replace(SuFormel$, "week1", week1)[/COLOR]
       Range("D2").FormulaLocal = [COLOR="#0000CD"]SuFormel$[/COLOR]
       Range("D2").AutoFill Destination:=Range(Cells(2, 4), Cells(LastRow, 4))
       
    End Sub
    
     
    Exl121150, 1. September 2016
    #4
  5. caprisonne Neuer User
    Danke erstmal euch beiden für die Hilfe.

    Die Datumseingaben hole ich mir vom User. Ich habe das jetzt so geschrieben:
    Code:
       Dim sTxt As String
       sTxt = InputBox(prompt:=sPrompt)
       
       ' ### We take the date entered by the user and convert it into real date format.
       ' ### Afterwards we define the weeks that are necessary for later usage:
       StartOfWeek1 = CDate(sTxt)
       EndOfWeek1 = DateSerial(Year(StartOfWeek1), Month(StartOfWeek1), Day(StartOfWeek1) + 6)
    
    Dann konvertiere ich und setze die Funktion ein:
    Code:
       Sheets("WorkData").Select
       Range("D:H").NumberFormat = "General"
       
       'Column D:
         Range("D2").Select
         Range("D2:D" & LastRow).ClearContents
         Range("D2").FormulaLocal = "=SUMMEWENNS(SourceData!$T:$T;SourceData!$Z:$Z;WorkData!A2;SourceData!$G:$G;>= " & StartOfWeek1 & ";SourceData!$G:$G;<= " & EndOfWeek1 & ")"
         Range("D2").AutoFill Destination:=Range(Cells(2, 4), Cells(LastRow, 4))
    
    Ist es also nicht möglich, dass er die Datumsangaben so in die Formel schreibt?

    Ich verstehe auch nicht ganz, warum die Formel falsch sein soll. Wenn ich ein richtiges Datum eingeben wie z.B. 01.07.2016, dann klappt die Formel. Es soll jetzt nur eine Variable dafür genutzt werden.


    EDIT:

    Exl121150, dein Workaround funktioniert. Ich weiß zwar nicht, warum das klappt, aber es geht. Danke auf jeden Fall dafür!
     
    Zuletzt bearbeitet: 1. September 2016
    caprisonne, 1. September 2016
    #5
  6. Lösung(en) im bereits verlinktem Nachbarforum.
    Gruß Ralf
     
  7. caprisonne Neuer User
    Danke euch allen für die Hilfe, es klappt jetzt alles! Das Thema kann geschlossen werden :)
     
    caprisonne, 1. September 2016
    #7
  8. Lutz Fricke Erfahrener User

    Datum in Funktion verwenden

    Hallo Caprisonne,

    jetzt macht die Formel Sinn. Zu Beginn stand dort
    week1 = DateSerial(Year(von), Month(von), Day(von) + 0)

    @Ralf, Deine Formel funktioniert bei Dir? Bei mir krieg ich nen Fehler beim Kompilieren.
    Die Formel von "Gast"
    Code:
    "=SUMMEWENNS(SourceData!$T:$T;SourceData!$Z:$Z;WorkData!A2;SourceData!$G:$G;""" & ">=" & StartOfWeek1 & """;SourceData!$G:$G;""" & "<=" & EndOfWeek1 & """)"
    funktioniert

    Gruß,
    Lutz
     
    Lutz Fricke, 1. September 2016
    #8
Thema:

Datum in Funktion verwenden

Die Seite wird geladen...
  1. Datum in Funktion verwenden - Similar Threads - Datum Funktion verwenden

  2. DATUM (Funktion)

    in Microsoft Excel Tutorials
    DATUM (Funktion): DATUM (Funktion) Excel für Microsoft 365 Excel für Microsoft 365 für Mac Excel für das Web Excel 2019 Excel 2016 Excel 2019 für Mac Excel 2013...
  3. WENN Funktion mit Datum in einem Zeitraum

    in Microsoft Excel Hilfe
    WENN Funktion mit Datum in einem Zeitraum: Liebe Community, stehe vor einem Datum-Problem. Ich würde gerne folgende Formel auch für einen Zeitraum verwenden: In meinem Test stehen werte von 3 bis 5 in Spalte A; in Spalte B habe ich...
  4. Wenn-Funktion ersetzen oder vereinfachen

    in Microsoft Excel Hilfe
    Wenn-Funktion ersetzen oder vereinfachen: Hallo liebe Community, ich habe ein Problem mit der Wenn-Funktion von Excel! Und zwar moechte ich gerne Datumswerte wie z.B. 708 was fuer 8.Juli steht, mit einer Funktion aendern lassen in...
  5. wenn dann sonst Funktion + einfrieren

    in Microsoft Excel Hilfe
    wenn dann sonst Funktion + einfrieren: Hallo lieber Mitglieder, ich habe da eine Problem. Ich möchte gerne in einer Exceltabelle wenn in Spalte B (Name) ein Name eingetragen wird das automatisch in Spalte A (Datum) das aktuelle...
  6. Vergleich Funktion mit Datum

    in Microsoft Excel Hilfe
    Vergleich Funktion mit Datum: Hallo zusammen und erst mal schön das es hier so ein Forum gibt :) Ich habe folgendes Problem: =VERGLEICH(JAHR(F2);JAHR(M4:N4);0) =VERGLEICH(JAHR(01.03.2017);JAHR(01.01.2016:01.01.2017);0)...
  7. ZÄHLENWENNS-Funktion in Abhängigkeit des Datums

    in Microsoft Excel Hilfe
    ZÄHLENWENNS-Funktion in Abhängigkeit des Datums: Hallo zusammen! Dies ist mein erster Beitrag hier im Forum. Nachdem ich als nicht-registrierter Betrachter schon so viel Hilfreiches aus dem Forum gewinnen konnte, möchte ich nun ein Problem...
  8. Maximum Wenn Daten zwischen zwei Datumsangaben liegen

    in Microsoft Excel Hilfe
    Maximum Wenn Daten zwischen zwei Datumsangaben liegen: Hallo Zusammen, Ich versuche gerade vergebens eine Abfrage zu kreieren welche mir das Maximum einer endlos langen Liste (Erste Spalte steht ein Datum zweite Zeile ein Wert) Raussucht wobei hierbei...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden