Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Fehler beim Kompilieren
#11
vielen vielen Dank
gruss Thomas
Zitieren
#12
kann mir einer eventuell dabei helfen warum friert mein exel ständig ein ?
gruss Thomas
Gerätename Thomas
Prozessor AMD Ryzen 3 2200G with Radeon Vega Graphics 3.50 GHz
Installierter RAM 16,0 GB
Geräte-ID A1F03ADC-D29C-427A-96BC-8EE45AB7F00E
Produkt-ID 00330-80000-00000-AA619
Systemtyp 64-Bit-Betriebssystem, x64-basierter Prozessor
Stift- und Toucheingabe Für diese Anzeige ist keine Stift- oder Toucheingabe verfügbar.
Zitieren
#13
kommt office mit den befehlen nicht klar ?
=WENN(ODER(C6="Feiertag";C6="Krank";C6="Urlaub";C6="x");ZEIT(8;0;0);WENN(C6="Frei";ZEIT(0;0;0);D6-C6-E6))
=WENN(C7="Urlaub";"";WENN(C7="Feiertag";"";WENN(C7="Frei";"";WENN(C7="Krank";""; WENN($C$2<F7;(F7-$C$2)*24;"")))))
=WENN(C20="";"";WENN($C$2>F20;($C$2-F20)*24;""))
habe es bei office 2007 benutzt keine fehler jetzt bei office2021
kommen fehlermeldungen
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Eingabe As Variant
On Error GoTo fehler1
If Not Intersect(Target, Range("C5:C35")) Is Nothing Then
          If Not IsNumeric(Target) Then Target.Value = UCase(Target)   Ucase wird dargestellt und Private Sub Worksheet_Change(ByVal Target As Range) wird dargestellt
      End If
If Not Intersect(Target, Range("C2,H2,F37,F43,C5:E35")) Is Nothing Then
    Application.EnableEvents = False
    With Target
        If Not IsNumeric(.Value) Then GoTo fehler1
        If IsEmpty(Target) Then
            Target.Value = ""
Zitieren
#14
Am Gerätenamen wird es nicht liegen.

welche Fehlermeldungen?

Target.Value = UCase(Target) Erzeugt wieder ein change event obwohl du noch in einem Changemakro drin bist. Hier wäre ein Application.enableevents= false angebracht und danach wieder einschalten.
Zitieren
#15
gruss
kommt immer Fehler beim kompilieren projekt oder bibiothek
datei habe ich schonmal hochgeladen  passiert wenn ich frei oder urlaub  ... schreibe
 gruss thomas
hatte vorher 2007 version da ging alles super  nun auf 21 umgestiegen und hatte das erste problem mit den mini kalender.
der wurde entfernt aber fehler kommen immer noch.
gruss thomas
Zitieren
#16
der Absturz kommt durch eine Stapelüberlauf.  Ursache ist wie ich schon oben beschrieben habe.
hier dein Change event etwas umgebaut. Wobei du dir mal überlegen solltet ob es Sinn macht in Spalte C den Text groß zu schreiben, wenn du im UrlaubKrank-Blatt aber die Kleinschreibung der Texte zählen willst. 

in wieweit man bei IsEmpty(Target) den Wert auf leeren String setzen muß, ist auch etwas fraglich. Die Zelle ist ja schon leer.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Eingabe As Variant

    If Not Intersect(Target, Range("C5:C35")) Is Nothing Then
        If Not IsNumeric(Target) Then
            Application.EnableEvents = False
            Target.Value = UCase(Target)
            Application.EnableEvents = True
        End If
    End If
    If Not Intersect(Target, Range("C2,H2,F37,F43,C5:E35")) Is Nothing Then
        With Target
           
            If IsEmpty(Target) Then
                Application.EnableEvents = False
                .Value = ""
                Application.EnableEvents = True
            Else
                If IsNumeric(.Value) Then
                    Application.EnableEvents = False
                    .Value = Left(Format(Target, "0000"), 2) & ":" & Right(Target, 2)
                    ' funkt am besten
                    ' Wenn Std über 24 und gleichzeit Minuten über 60 erfasst werden, wird Text zurückgegeben.
                    .NumberFormat = "[h]:mm"
                    Application.EnableEvents = True
                End If
            End If
        End With
    End If
   
    If Not Intersect(Target, Range("f47")) Is Nothing Then
       
        With Target
           
            If IsEmpty(Target) Then
                Application.EnableEvents = False
                .Value = ""
                Application.EnableEvents = True
            Else
                If IsNumeric(.Value) Then
                    .Value = Left(Format(Target, "00000"), 3) & ":" & Right(Target, 2)
                    ' funkt am besten
                    ' Wenn Std über 24 und gleichzeit Minuten über 60 erfasst werden, wird Text zurückgegeben.
                    .NumberFormat = "[h]:mm"
                End If
            End If
        End With
    End If
   
End Sub
Zitieren
#17
(27.11.2023, 21:25)Thomasius schrieb: kommt immer Fehler beim kompilieren projekt oder bibiothek [nicht gefunden]

Moin!
Ergänzung in [] durch mich.
Setze mal testweise VBA.UCase(Target)
Dir dürfte es einen Verweis verhagelt haben!
Schaue mal im Editor unter Extras → Verweis nach.
Da dürfte einmal NICHT VORHANDEN stehen.

Gruß Ralf
Zitieren
#18
Hi,

@Thomasius: Wenn du si programmierst, wie du hier schreibst wundert mich gar nicht, ich schreib jatzt mal in deinemstil damit du siehtst wie mühs es sein kann soein tex zu vertshn. trotzdem solltest du meinen rat berücksichtig. denn dein code arbeitet falsch wenn mehr zellen gleichzeit geändert werden ISnumeric() wird dann mämlich immer falsch zurückgeben und dein progrm somit immer gleich ans ende

@Alle: sorry, aber ich musste bei obigem Text einfach das Hirnschmalz wieder einsparen, das ich für das Lesen der Beiträge von Thomasius verbraucht habe.
Gruß,
Helmut
_____
Office365 auf MacOS und Win10
Zitieren
#19
danke an alle
werde das von ralf_b anwenden und testen

gruss Thomas
Zitieren
#20
[Bild: laufzeitfehler.jpg]

[Bild: Target-Value-UCase-Target.jpg]

das kommt wenn ich in Spalte C etwas wieder lösche woran könnte das liegen
gruss Thomas
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 4 Gast/Gäste




Hinweis auf Angebot Excel-Inside - lang    Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein Angebot.
   Sende deine Anfrage einfach
per E-Mail an anfrage@excel-inside.de


Powerd and supported by Excel-InsideSolutions