Thema Datum  Von Nutzer Rating
Antwort
Rot Adressieren mehrerer Zellen
08.06.2021 15:44:28 Leon
NotSolved
08.06.2021 16:43:47 Gast46739
NotSolved
08.06.2021 18:05:36 Mackie
NotSolved
08.06.2021 18:13:47 Mackie
NotSolved

Ansicht des Beitrags:
Von:
Leon
Datum:
08.06.2021 15:44:28
Views:
762
Rating: Antwort:
  Ja
Thema:
Adressieren mehrerer Zellen

Hallo zusammen,

ich soll von der Uni aus folgendes in Excel VBA bearbeiten:

Eine Notenliste beinhaltet aus vers. Teilleistungen zusammengesetzte Noten mit max. 3 Nachkommastellen. Die Noten sollen nach der ersten Dezimalstelle abgeschnitten werden, sprich auf eine Nachkommastelle abgerundet werden. Es wurde explizit gesagt, dass ich keine Prozedur und auch nicht die Abrunden-Funktion von Excel selbst verwenden darf, sondern eine Function erstellen soll. Mein Problem ist, dass ich weder genau weiß, ob meine Function richtig ist, noch warum sie nicht durchgeführt wird, wenn ich das Makro aktiviere. Kann mal jemand über meinen Code drüberschauen?

Die zusammengesetzten, berechneteten Noten stehen im Worksheet Modulabschlussnoten in den Zellen E4 bis E103 und die abgeschnittenen sollen direkt daneben in F4 bis F103 eingetragen werden. Es sind nur Noten von 0.7, 0.8, ..., 4.8, 4.9, 5.0 möglich, deswegen war meine Überlegung, eine Schleife so oft durchführen zu lassen, bis die berechnete Note durch 0.1 teilbar ist. Falls nicht, soll die Note um 0.001 nach unten zu korrigiert und die Schleife erneut ausgeführt werden, und das für jeden Wert.

Sub Noterunden()
    
End Sub

Public Function Rundungsfunktion(Gerundete_Note As Double) As Double
    
    Dim Gerundete_Note As Double
    
    Dim zielfeld As Range
    Set zielfeld = Worksheets("Modulabschlussnoten").Range("F4:F103")
    
    Dim y As Double
    Set y = 0.1
    Dim liste() As Integer
    Set liste(44) = [7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50]
    
    For Each wert In Worksheets("Modulabschlussnoten").Range("E4:E103").Value
          If wert / y = liste() Then
            Set zielfeld = wert
            End If
          Else
            wert = wert - 0.001
         Return
        
    Next wert
    
End Function

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Adressieren mehrerer Zellen
08.06.2021 15:44:28 Leon
NotSolved
08.06.2021 16:43:47 Gast46739
NotSolved
08.06.2021 18:05:36 Mackie
NotSolved
08.06.2021 18:13:47 Mackie
NotSolved