Excel VBA Problem mit Find

Diskutiere und helfe bei Excel VBA Problem mit Find im Bereich Microsoft Office im Windows Info bei einer Lösung; Hallo, NG, ich habe totale Probleme mit Find - Excel liefert einfach nicht die richtigen Ergebnisse, hier mein gekürzter Code: Function... Dieses Thema im Forum "Microsoft Office" wurde erstellt von SIH007, 12. August 2019.

  1. SIH007
    SIH007 Gast

    Excel VBA Problem mit Find


    Hallo, NG,


    ich habe totale Probleme mit Find - Excel liefert einfach nicht die richtigen Ergebnisse, hier mein gekürzter Code:

    Function IstArbeitsTag(rngDatum as Range) as Integer

    Set rngFeiertage = Range("Holidays").Resize(,1)

    IstArbeitsTag = 1

    set rngIstFeiertag = rngFeiertage.Find(What:=rngDatum.Value, LookIn:=xlValues)


    If not rngIstFeiertag Is Nothing then

    IstArbeitsTag = 0

    End If


    End Function


    Ich bekomme keine Fehlermeldung, sondern das Teil rechnet einfach falsch. Mit rngFeiertage greife ich auf die Spalte der Holidays-Tabelle zu, in der die Feiertagsdaten stehen (Spalte 1). Wenn ich die Function teste, reagiert sie überhaupt nicht auf irgendwelche Feiertage, also wenn in rngDatum (immer nur eine Zelle) der 3.10.2019 steht, müsste die Function doch eigentlich ins If-Statement springen und IstArbeitsTag auf 0 setzen. Das passiert aber nicht.


    Sieht jemand von euch den Grund, warum das nicht funktioniert? VBA Find sieht eigentlich nicht so schwierig aus.


    Gruß

    Susanne
     
  2. Claus Busch Win User

    Excel VBA Problem mit Find

    Hallo Susanne,

    es hängt nicht an der Excel-Version.

    Kann es sein, dass im Bereich Holidays die Datumswerte aus Formeln bestehen? Kann es sein, dass entweder bei den Arbeitstagen oder bei den Feiertagen das Format nicht übereinstimmt?

    Bei mir und mit festen Werten funktionieren beide Versionen.

    Claus
  3. SIH007 Win User

    Excel VBA Problem mit Find

    Nachtrag:

    ich glaube, es liegt tatsächlich an meinem Firmenrechner, habe das Ganze jetzt an meinem PC versucht, indem ich einfach eine Datumsreihe eingegeben und eine kleine Tabelle Holidays dazugepackt habe, da funktioniert es einwand frei. Allerdings habe ich Excel
    365 auf meinem PC, während der Arbeits-PC 2010 hat.
  4. SIH007 Win User

    Excel VBA Problem mit Find

    Hallo, Claus,

    leider hilft mir das nicht weiter. Die Feiertagsnamen sind eigentlich völlig wurscht, nur wenn ein Anwender neue Feiertage eingeben muss, hilft denen das. Daher ist Resize richtig, in der ersten Spalte stehen die Feiertags-Datumswerte, mehr brauche ich nicht
    für mein Find. Und Zählenwenn hilft hier auch nicht weiter, es geht nicht um die Anzahl der Feiertage, sondern es muss für jeden Tag im Jahr geklärt werden, ob Feiertag oder nicht. Vielleicht dazu zur Info - es handelt sich um einen Produktionsplan für verschiedene
    Standorte, je nach Standort wird 5, 6 oder 7 Tage gearbeitet (glücklicherweise planen die keine Kurzarbeit ;-)). Wenn 5 Tage pro Woche gearbeitet wird, wird natürlich auch nur an diesen 5 Tagen produziert, wenn 7 Tage pro Woche, dann gibt es keinen freien
    Tag, es sei denn, es handelt sich um einen gesetzlichen Feiertag... Also abhängig davon, wo die jeweilige Maschine steht, muss berechnet werden, ob sie produziert oder nicht.

    Du schreibst, ich solle If so machen:

    If Not rngistfeiertag Is Nothing Then
    
       IstArbeitsTag = 0
    
    Else
    
        IstArbeitsTag = 1
    
    End If
    Das Else verstehe ich nicht, ich habe gleich zu Anfang IstArbeitsTag auf 1 gesetzt, von daher soll die Function den Wert ja nur ändern, wenn es ein Feiertag ist, d. h. wenn er über If hinweggeht, weil die Bedingung nicht erfüllt ist, bleibt der Wert doch
    auf 1.

    Wenn ich mit F8 durch den Code gehe, bleibt rngIstFeiertag auf Nothing stehen, obwohl ich beim Testen explizt auf den 3.10. verweise, der auch in der Tabelle steht. Habe jetzt sogar eine weitere Spalte eingefügt, die aus dem Datum einen formatierten Text
    macht. Auch erfolglos.

    Das Problem ist

    Set rngIstFeiertag = rngfeiertage.Find(rngDatum.Text)

    Wenn ich da mit F8 drübergehe, bleibt der Wert von
    rngIstFeiertag

    auf Nothing, obwohl der 3.10. eingestellt ist.

    Gruß

    Susanne
  5. Claus Busch Win User

    Excel VBA Problem mit Find

    Hallo Susanne,

    die Feiertagsnamen stehen in Spalte A und das zugehörige Datum in Spalte B?

    Dann ist das nicht RESIZE sondern OFFSET.

    Probiere es doch einfach mit ZÄHLENWENN:

    Function IstArbeitsTag(rngDatum As Range) As IntegerSet rngfeiertage = Range("Holidays").Offset(, 1)If Application.CountIf(rngfeiertage, rngDatum) > 0 Then
    
       IstArbeitsTag = 0
    
    Else
    
        IstArbeitsTag = 1
    
    End IfEnd Function
    Claus
  6. Claus Busch Win User

    Excel VBA Problem mit Find

    Hallo Susanne,

    hier noch ein Nachtrag:

    Was du in der Datumszelle siehst, ist rngDatum.Text. rngDatum.Value wäre für den 03.10.2019 die Zahl 43741.

    Du kannst dann auch über die Find-Methode den Feiertag finden. musst dann nur rngDatum.Text verwenden:

    Function IstArbeitsTag(rngDatum As Range) As IntegerSet rngfeiertage = Range("Holidays").Offset(, 1)Set rngistfeiertag = rngfeiertage.Find(rngDatum.Text)
    If Not rngistfeiertag Is Nothing Then
    
       IstArbeitsTag = 0
    
    Else
    
        IstArbeitsTag = 1
    
    End IfEnd Function
    Claus
  7. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

Excel VBA Problem mit Find - Microsoft Office

Die Seite wird geladen...

Excel VBA Problem mit Find - Similar Threads - Excel VBA Problem

Forum Datum

excel vba

excel vba: hi ich habe: Worksheets("test2").Range("b3").Copy Destination:=Worksheets("Mdax").Range("b20") was schön und gut funktioniert nur kann ich damit auch die Zielzelle definieren? In meinem...
Microsoft Office 24. Juli 2019

EXCEL-VBA.

EXCEL-VBA.: Wie splittet man den Bildschirm bei Programmtests in 1. Code-Fenster, 2. EXCEL-Arbeitsblatt. Ich weiß, dass es geht aber nicht wie. Heißen Dank!
Microsoft Office 10. Dezember 2018

Excel VBA

Excel VBA: Hallo ich würde gerne einen Code (VBA) von Office 2013 in 2016 nutzen. Beide sind inzwischen auf 32 Bit aber leider bekomme ich nur die Fehlermeldung, das Das Makro "Makroname" kann nicht...
Microsoft Office 5. Dezember 2018

MS-Supportseite zu Excel VBA finden

MS-Supportseite zu Excel VBA finden: Hallo! Mehr durch Zufall habe ich diese Original - MS-SupportSeite "Auswählen von Zellen/Bereichen mithilfe von Visual Basic-Prozeduren in Excel" entdeckt und hätte nun gerne gewusst, ob es Seiten...
Microsoft Office 22. Februar 2018

Problem beim Öffnen einer Excel Datei mit VBA Programmierungen

Problem beim Öffnen einer Excel Datei mit VBA Programmierungen: Hallo an alle. Habe folgendes Problem. Beim öffnen einer Excel Datei erhalten ich folgende Fehlermeldung, siehe weiter unten... Vor ca. über einem Jahr konnte ich diese Excel Datei problemlos...
Microsoft Office 11. Februar 2018

EXCEl VBA

EXCEl VBA: Hallo die Excel User, ich habe in viel Kleinarbeit Excel - Tabellen zur Vereinfachung mit einem VBA-Code und entsprechenden Buttons und UserForms ausgestattet. Alles lief ausgezeichnet, aber seit...
Microsoft Office 14. November 2017

Problem mit VBA Formel

Problem mit VBA Formel: Hallo Community, ich habe ein Problem mit folgender VBA Formel: SPrivate Sub Worksheet_Change(ByVal Target As Range) Dim dest As Range With Sheets("Tabelle2") Select Case...
Microsoft Office 24. Januar 2017
Excel VBA Problem mit Find solved
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.