Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Zählerproblematik
zurück: Objektvariable oder With-Blockvariable nicht festgelegt weiter: datei speichern Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Offen Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Gast34
Gast


Verfasst am:
18. Nov 2011, 15:14
Rufname:

Zählerproblematik - Zählerproblematik

Nach oben
       Version: Office 2007

Hallo zusammen,

ich versuche grade ein Lösung für folgende für folgende Problematik:

alles was kleiner ist als 8 soll 1 entsprechen,
alles was kleiner ist als 16 soll 2 entsprechen,
alles was kleiner ist als 24 soll 3 entsprechen,
usw usw.

wie kann ich das möglichst kurz in vba lösen? sodass die variable, z.b. wenn der wert 9 geprüft wird sagt: es entspricht 2?!

kann mir jemand helfen? danke schon mal
Gast



Verfasst am:
18. Nov 2011, 15:27
Rufname:


AW: Zählerproblematik - AW: Zählerproblematik

Nach oben
       Version: Office 2007

öhm

Code:
Wert = Wert/8+1

so etwa?
Phelan XLPH
Fortgeschritten


Verfasst am:
18. Nov 2011, 15:40
Rufname: Phelan

AW: Zählerproblematik - AW: Zählerproblematik

Nach oben
       Version: Office 2007

eher so:
wert = wert \ 8 + 1

sonst erhälst du Kommazahlen.

Code:
Sub test()
    Dim w, i, erg, s
    For i = 1 To 30
        erg = i / 8 + 1
        s = s & vbLf & i & " = " & erg
    Next
    MsgBox s & vbLf & "usw.", , "...not so good"
    s = ""
    For i = 1 To 30
        erg = i \ 8 + 1
        s = s & vbLf & i & " = " & erg
    Next
    MsgBox s & vbLf & "usw.", , "...better"
End Sub

_________________
Was vorstellbar ist, ist auch machbar. - Albert Einstein
Gast



Verfasst am:
18. Nov 2011, 15:43
Rufname:

AW: Zählerproblematik - AW: Zählerproblematik

Nach oben
       Version: Office 2007

gut ich hätte noch dazusagen sollen das ich Wert als

Dim wert As Integer

genommen hätte um Kommazahlen zu vermeiden.
Gast



Verfasst am:
18. Nov 2011, 16:11
Rufname:


AW: Zählerproblematik - AW: Zählerproblematik

Nach oben
       Version: Office 2007

Hi
das mit der Dimensionierung als Integer führt hier aber auch nicht richtigen ergebnis, da hierbei mathematisch gerundet wird, dh ab 0,5 auf und darunter ab.
für diese Aufgabenstellung muss aber immer abgerundet werden.

dh hier müsste man, wenn man die die Divison mit \ nicht kennt entweder mit Worksheetfunction.RoundDown arbeiten oder mit INT() (achtung, CINT rundet wieder bei 0,5)

Code:
Wert = Int(Wert/8)+1

Gruß, Daniel
Phelan XLPH
Fortgeschritten


Verfasst am:
18. Nov 2011, 16:22
Rufname: Phelan

AW: Zählerproblematik - AW: Zählerproblematik

Nach oben
       Version: Office 2007

Oder Fix()
_________________
Was vorstellbar ist, ist auch machbar. - Albert Einstein
Gast



Verfasst am:
18. Nov 2011, 16:23
Rufname:

AW: Zählerproblematik - AW: Zählerproblematik

Nach oben
       Version: Office 2007

Seit wann schaut int auf Kommastellen?

wenn ich was als Integer definiere wird nur ganzzahlige division durchgeführt. Gut mein Divisionszeichen war falsch das gebe ich zu es muss \ richtig heißen.
Code:

Dim Wert As Integer
Dim Wert2 As Integer
Wert = 15
Wert = Wert \ 8
Wert2 = Wert \ 8 +1


Nach dieser Operation ist Wert auf 1 und Wert2 auf 2.
15\8 ergibt nun mal 1 weil Integer nicht rundet sondern einfach die Kommastelle ignoriert.
Phelan XLPH
Fortgeschritten


Verfasst am:
18. Nov 2011, 16:24
Rufname: Phelan

AW: Zählerproblematik - AW: Zählerproblematik

Nach oben
       Version: Office 2007

@Gast du verwechselst du was: "\" ist nicht gleich "/" !!!
_________________
Was vorstellbar ist, ist auch machbar. - Albert Einstein
Gast



Verfasst am:
18. Nov 2011, 16:25
Rufname:

AW: Zählerproblematik - AW: Zählerproblematik

Nach oben
       Version: Office 2007

Nachtrag: habe im Code die reihenfolge vertauscht es muss erst die Rechenoperation mit Wert2 geschehen sonst sind beide Werte 1.
Phelan XLPH
Fortgeschritten


Verfasst am:
18. Nov 2011, 16:31
Rufname: Phelan

AW: Zählerproblematik - AW: Zählerproblematik

Nach oben
       Version: Office 2007

Zitat:
15\8 ergibt nun mal 1 weil Integer nicht rundet sondern einfach die Kommastelle ignoriert.


Das liegt nicht an der Variablen-Deklaration sondern am Divisor-Zeichen "\"

Aus der VBA-Hilfe:

Zitat:
\ (Operator)
Siehe auch Beispiel Zusatzinfo

Dient zur Division zweier Zahlen und gibt ein ganzzahliges Ergebnis zurück.

Syntax

Ergebnis = Operand1 \ Operand2

Die Syntax des Operators \ besteht aus folgenden Teilen:

Teil Beschreibung
Ergebnis Erforderlich. Eine beliebige numerische Variable.
Operand1 Erforderlich. Ein beliebiger numerischer Ausdruck.
Operand2 Erforderlich. Ein beliebiger numerischer Ausdruck.

Bemerkungen

Vor der Division werden die numerischen Ausdrücke in Ausdrücke der Typen Byte, Integer oder Long gerundet.

Ergebnis hat im allgemeinen den Datentyp Byte, Integer oder Long bzw. bei einem Variant den Untertyp Byte, Integer oder Long,
auch wenn Ergebnis keine ganze Zahl ist. Alle Nachkommastellen werden abgeschnitten. Wenn jedoch mindestens ein Ausdruck ein Null-Ausdruck ist,
enthält Ergebnis ebenfalls Null. Wenn ein Ausdruck den Wert Empty hat, wird er als 0 interpretiert.

_________________
Was vorstellbar ist, ist auch machbar. - Albert Einstein
Gast



Verfasst am:
18. Nov 2011, 16:32
Rufname:

AW: Zählerproblematik - AW: Zählerproblematik

Nach oben
       Version: Office 2007

Uff....
http://img6.imagebanana.com/img/wpjw3l7m/Wert.JPG


http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/vba_modulo_de

Ich habe nicht behauptet das "/" = "\" ich habe geschrieben dass es sich dabei um einen Fehler meinersets handelt Division wird mit \ durchgeführt
Phelan XLPH
Fortgeschritten


Verfasst am:
18. Nov 2011, 16:38
Rufname: Phelan

AW: Zählerproblematik - AW: Zählerproblematik

Nach oben
       Version: Office 2007

Zitat:
Division wird mit \ durchgeführt


ääähhhhmm, nö.

Aus der VBA-Hilfe:

_________________
Was vorstellbar ist, ist auch machbar. - Albert Einstein



Division Operator.jpg
 Beschreibung:
 Dateigröße:  86.04 KB
 Angeschaut:  96 mal

Division Operator.jpg


Gast



Verfasst am:
18. Nov 2011, 20:40
Rufname:


AW: Zählerproblematik - AW: Zählerproblematik

Nach oben
       Version: Office 2007

gut ich berichtige mich. \ ist ganzzahldivision.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Frontpage Forum