Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

ich habe abe ein kleines mathematische Problem bei dem mir vllt. einer helfen kann.

ich habe zwei Variablen

a = 500

b = 2

a x b = 1.000

nun die Ergebnisse der Überprüfung.

2 x 500 = ok

4 x 250 = ok

6 x 166 = ok

Alle Längen über 250 (wenn Variable = 500) passen nur ein Mal.

3 x 251 = falsch

(passt zwar für die Gesamtlänge (1.000), aber nicht für die Einzellänge von 500

vielleicht kann ja jemand helfen.

vielen Dank im Voraus

Ahnung?

Ich würde ja gern helfen - aber aus deinem Beitrag wird leider nicht klar, wo das Problem liegt.

Dank des Titels kann man wenigstens erahnen, dass es um VBA geht. Aber weder nennst Du die Art/Typ der Variablen (http://www.vba-tutorial.de/variablen/datentypen.htm)

noch teilst Du uns überhaupt mit was Du genau vorhast und wie der Rechenweg aussieht. Was für "Gesamt-/Einzellängen" sollen WIE überprüft werden?

Aber vielleicht hast Du nur einen Integer-Überlauf und ich dir mit dem obigen Link schon geholfen..

 

  • Autor

Hallo,

die Variablen sind völlig egal ;-) Da es sich um Zahlen handelt würde ich aber Integer wählen!

Mir geht es doch gerade um die Rechnung (kleines mathematisches Problem!), die ich anstellen muss um das oben aufgezeigte Ergebnis zu erhalten.

Es geht um Längenberechnung!

Im o.g. Beispiel habe ich eine Gesamtlänge von 1.000mm.

3 x 251mm = 753mm es passt zwar in 1.000mm, das Programm würde dann aber trotzdem einen Fehler erzeugen, da es mit den Einzellängen von jeweils 500mm nicht geht!

Nun mehr Licht im Dunkeln?

AHNUNG?

 

Bearbeitet von AHNUNG?

Was meinst du denn mit "passen" und was sind die "Einzellängen"? Kannst du das vielleicht etwas greifbarer darstellen? Das, was du suchst, kann schwer vorhergesehen werden, wenn der Kontext fast komplett fehlt.

Ich hab zwar ne Vermutung, in welche Richtung das geht, aber das Ganze hat doch überhaupt nix mit VBA zu tun, sondern reine Algorithmik richtig?

vor 22 Stunden, AHNUNG? sagte:

3 x 251mm = 753mm es passt zwar in 1.000mm, das Programm würde dann aber trotzdem einen Fehler erzeugen, da es mit den Einzellängen von jeweils 500mm nicht geht!

Was heißt "geht mit Einzellängen von jeweils 500mm nicht"? Muss das Gesamtergebnis ein Vielfaches von 500 sein? Dann passt 6*166 aber auch nicht...

Kannst du nicht einmal erklären, worum es bei der Rechnung überhaupt geht? Mir scheint, als wäre das eine Aufgabe, zu der Hintergrundinformationen notwendig sind, die hier keiner (außer dir) kennt.

  • Autor

Hallo Arlegermi,

ich möchte noch einmal erwähnen, dass es um eine Plausibilitätsprüfung (ausgeführt als VBA-Code) gehen soll.

Ich habe zwei Holzbretter mit jeweils 500cm Länge. Die Länge und die Anzahl kann natürlich variabel sein.

Wenn ich in der Arbeitsvorbereitung nun sage, dass der im Zuschnitt aus 2 x 500cm bitte 6 x 166cm dann ist das möglich....jeweils 498cm pro Brett und 2cm Rest.

Wenn ich dagegen sage, dass er bitte 5 x 167cm machen soll ist das nicht möglich, da ich aus jedem Holzbrett nur 2 x 167cm (=334cm) herausbekommen würde.

Die Plausibilitätsprüfung müsste dann sagen, dass ich für 5 x 167cm ein weiteres Brett (500cm) bestellen müsste.

Verstanden?.......sorry, ich kann das Problem nicht plastischer darstellen ;-)

 

 

 

vor 2 Stunden, AHNUNG? sagte:

Verstanden?.......sorry, ich kann das Problem nicht plastischer darstellen ;-)

Ja, jetzt ist es klar geworden.

Folgender Ansatz:

Du hast:
Länge_haben = 500
Anzahl_haben = 2

Du prüfst:
Länge_prüf = 251
Anzahl_prüf = 3

1. Schritt: Länge_prüf * Anzahl_prüf <= Länge_haben*Anzahl_haben ?
Hier: 251 * 3 <= 500 * 2? true

2. Schritt: Länge_haben / Länge_prüf (ganzzahlig)
Hier: 500 / 251 = 1

3. Schritt: Ergebnis aus Schritt 2 mit Anzahl_haben multiplizieren
Hier: 1 * 2

4. Schritt: Ergebnis_S3 >= Anzahl_prüf
Hier: 2 >= 3? false -> Fehler

Das ist jetzt ganz naiv, einfach Schritt für Schritt die Angaben auswerten. Das kann man sicher cleverer gestalten.

Bearbeitet von arlegermi

  • Autor

Hallo zusammen,

ich habe das Problem nun gelöst. Vielen Dank an alle.

Hier mein - funktionierender - VBA-Code!

Do While ActiveSheet.Cells(Zeile, Spalte - 3).Value <> "ENDE"

   If ActiveSheet.Cells(Zeile, Spalte + 4).Value <> "" Then

        If ActiveCell.Value = Tabelle2.Range("D15").Value Or ActiveCell.Value = Tabelle2.Range("D18").Value Then
           Bestelllaenge = ActiveSheet.Cells(Zeile, Spalte + 3).Value
           Bestellanzahl = ActiveSheet.Cells(Zeile, Spalte + 4).Value
           Solllaenge = ActiveSheet.Cells(Zeile, Spalte + 5).Value
           Sollanzahl = ActiveSheet.Cells(Zeile, Spalte + 6).Value
           If Solllaenge * Sollanzahl <= Bestelllaenge * Bestelllaenge Then
              Laenge_Pruef = Bestelllaenge / Solllaenge
              Laenge_Pruef = WorksheetFunction.RoundDown(Laenge_Pruef, 0)
              Anzahl_Pruef = Laenge_Pruef * Bestellanzahl
              Anzahl_Pruef = WorksheetFunction.RoundDown(Anzahl_Pruef, 0)
              If Anzahl_Pruef >= Sollanzahl Then
                 ActiveSheet.Cells(Zeile, Spalte + 4).Select
                 Selection.Interior.Color = 13434828
                 ActiveSheet.Cells(Zeile, Spalte).Select
                 ActiveSheet.Cells(Zeile, Spalte + 20).Value = 0
              Else
                 ActiveSheet.Cells(Zeile, Spalte + 4).Select
                 Selection.Interior.Color = 8420607
                 ActiveSheet.Cells(Zeile, Spalte).Select
                 ActiveSheet.Cells(Zeile, Spalte + 20).Value = 1
              End If

           End If
       
        End If

   End If

Zeile = Zeile + 1
ActiveSheet.Cells(Zeile, Spalte).Select

Loop

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.