Office: (Office 2010) VBA: Größten Wert mit Hilfsvariable ermitteln und weiterverarbeiten

Helfe beim Thema VBA: Größten Wert mit Hilfsvariable ermitteln und weiterverarbeiten in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hey Excel-Nutzer, ich möchte von 4 Werten, die untereinander in einer Spalte stehen den größten Wert ermitteln und diesen dann von einem Wert... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von MagY, 4. Mai 2013.

  1. VBA: Größten Wert mit Hilfsvariable ermitteln und weiterverarbeiten


    Hey Excel-Nutzer,

    ich möchte von 4 Werten, die untereinander in einer Spalte stehen den größten Wert ermitteln und diesen dann von einem Wert abziehen, der sich in einer anderen Spalte befindet. Die Subtraktion soll Einer-Schritten erfolgen, solange die Werte größer 0 sind. Die 4 Werte werden jeweils mithilfe der Offset-Funktion erreicht.
    Für die Ermittlung des größten Wertes habe ich eine Hilfsvariable „max“ angelegt, die mittels einer If-Schleife den je größten Wert annimmt.

    Unten seht ihr meinen bisherigen Code. Mein Problem beginnt nach dem Abarbeiten der ersten If-Schleife. Ich bräuchte die Information, in welcher der Offset Bezüge das Maximum ermittelt wurde, um dann die Subtraktion durchzuführen. Denn „zahl.Offset(-13 + i, 7) = zahl.Offset(-13 + i, 7) - 1“ funktioniert ja sonst nicht.


    PHP:
             Dim zahl As Rangeallezahlen As Rangehilfe&, runterzaehlen&, max&, i&
    Set allezahlen Range("G26:I27")
    For 
    Each zahl In allezahlen
    hilfe 
    zahl
    For runterzaehlen hilfe To 0 Step -1
    max 
    = -1
    For 1 To 4 Step 1
    If max zahl.Offset(-13 i7Then
    max 
    zahl.Offset(-13 i7)
    End If
    Next
    If max And zahl 0 Then
    zahl 
    zahl 1
    zahl
    .Offset(-13 i7) = zahl.Offset(-13 i7) - 1
    End 
    If
    Next
    Next
    :)
     
    MagY, 4. Mai 2013
    #1
  2. Hallo MagY,
    Den größten Wert in einem Bereich ermittelst du z.B. so: Code:
    Das verstehe ich leider nicht.

    Mein gerne wiederholter Tipp: Das Hochladen einer Beispieldatei, gerne auch mit anonymisierten Daten, in der zu sehen ist, worin das Problem besteht und wie das Ergebnis aussehen soll, erhöht die Chance auf eine befriedigende Antwort ungemein!
     
    Hasso, 6. Mai 2013
    #2
  3. Hallo Hasso,

    danke für deine Antwort!

    Ich habe mal eine Beispieldatei hochgeladen und für einen Bereich meiner Tabelle beispielhaft den VBA Code, (welcher ja fehlerhaft ist).

    Ich hoffe, dass du anhand meiner Kommentare auf dem Tabellenblatt meine Absicht erkennst und dann auch die Frage nach den "Einer-Schritten" klar wird.

    Da ich ein gesamtes Range abarbeiten will, kann ich nicht einfach die Max-Funktion anwenden, wie du sie vorgeschlagen hast. Daher würde ich gerne die Offset-Funktion nutzen.

    Ich wäre dankbar, wenn du dir das mal anschaust.

    Grüße
    MagY
     
    MagY, 6. Mai 2013
    #3
  4. VBA: Größten Wert mit Hilfsvariable ermitteln und weiterverarbeiten

    Hallo MagY,

    noch bemühe ich mich, zu verstehen, was da genau passieren soll, aber ich glaube, das wird mir nach einer Weile gelingen. Das Hauptproblem sehe ich darin, zu ermitteln, in welche Zeilen der zweiten Tabellen die Zahlen der ersten verteilt werden sollen. Dazu muss man ja die Angaben in der Spalte D auswerten (I, II, III etc.). Wie das eindeutig gehen soll, ist mir noch schleierhaft. Ich melde mich, wenn ich einen Ansatz für eine Lösung sehe.
    Nur vorsichtshalber mal nachgefragt: Ist die Mustermappe die engültige Form der Tabelle oder erwartet uns da noch etwas Neues, dass die römischen Zahlen z.B. nicht von I bis V, sondern vielleicht bis X oder M gehen)?
     
    Hasso, 6. Mai 2013
    #4
  5. Guten Morgen Hasso,

    die römischen Zahlen geben quasi an, welche Werte der linken Tabelle an die rechte Tabele verteilt werden können.

    Wenn z.b. in D10 "I, II" steht, dann heisst das, dass der Wert in D11 (hier =1) in L 5 (da in K5 ja ein "I" steht) und/oder in L6 (da in K6 ein "II" steht) verteilt werden kann.
    Anstelle der römischen Zahlen könnte also auch irgendetwas anderes stehen, es dient nur als Zuordnung.
    In diesem Fall würde die 1 Einheit aus D10 an L6 verteilt werden. Da L6 2 Einheiten aufnehmen kann und ich zuerst den größten Wert verteilen will. Nach der Verteilung würde in D10 eine 0 stehen und in L6 eine 1.
    Grundsätzlich ist meine Regel "Verteile erst an den größten Wert solange es geht und sobald zwei Werte gleich groß sind, nehme den oberen der beiden"

    Außerdem sollen erst die Einheiten im Berich (E10:G13), dann die in (E14:G16), dann (E17:G18), usw. verteilt werden.

    Die Mustertabelle ist nur ein kleiner Ausschnitt. Ich habe weitaus mehr römische Zahlen. Mir geht er nur um einen Ansatz, den ich dann auf meine Tabelle anwenden kann.
    Ich vergleiche die Aufgabe auch mit der Füllung von freier Kapazität in einem Lager, allerdings handelt es sich um einen völlig anderen Bereich.

    Gruß
    MagY
     
    MagY, 6. Mai 2013
    #5
  6. Hallo MagY,
    Das hatte ich befürchtet. stehen diese denn wenigstens immer in der gleichen Form in Spalte D - also durch Komma und Leerzeichen getrennt? Irgendwie muss ich ja diese Werte einzeln herausziehen, um sie in einem Makro verwenden zu können, das die zweite Tabelle nach diesen Werten durchsucht. In D17 steht z.B. nach der IV noch ein Komma - das bringt alles durcheinander!
     
    Hasso, 6. Mai 2013
    #6
  7. Hallo Hasso,

    leider kann ich derzeit keine Datei anhängen, damit ich dir nochmal meine richtige Datei zeige. Werde ich nachholen, sorry!

    Aber grundsätzlich ist die Struktur immer gleich (das Komma war ein Tippfehler). Wenn es die Umsetzung erleichtert, könnte man evtl. noch die Spalte C nutzen. Dann könnte man die Grenzen wie folgt angeben.

    ___C ___ D
    10_I____ II
    11_II____ III
    12_III___ IV
    13_IV___ V
    14_I____ III
    15_II____ IV
    16_III___ V
    17_I ____ IV

    Oder anstelle der römischen Zahlen auch arabische Ziffern. Das wäre mir nciht so wichtig, solange es funktioniert.

    Gruß
    MagY
     
    MagY, 6. Mai 2013
    #7
Thema:

VBA: Größten Wert mit Hilfsvariable ermitteln und weiterverarbeiten

Die Seite wird geladen...
  1. VBA: Größten Wert mit Hilfsvariable ermitteln und weiterverarbeiten - Similar Threads - VBA Größten Wert

  2. Datei in mehreren Ordnern suchen und wenn gefunden öffnen?! Macro / VBA

    in Microsoft Excel Hilfe
    Datei in mehreren Ordnern suchen und wenn gefunden öffnen?! Macro / VBA: Hallo Leute, Hoffentlich könnt ihr mir hier helfen, ich krieg den Syntax einfach nicht hin (wahrscheinlich ist es auch totaler käse den ich programmiert habe). Also im Grunde soll eine Datei...
  3. Textteile aus Zelle mit mehreren Absätzen

    in Microsoft Excel Hilfe
    Textteile aus Zelle mit mehreren Absätzen: Hallo, ich habe folgendes Problem: Ich habe in einer Liste in einer Zelle mehrere Angaben aus denen ich Textteile (z.B. alles was in () oder {} ist) herausziehen will, um damit weiter zurechnen....
  4. Aufrufen Datei aus SharePoint per VBA

    in Microsoft Access Hilfe
    Aufrufen Datei aus SharePoint per VBA: Wer kann mir helfen. In meiner Firma gibt es Dateien in diversen Ordner in Form von SharePoints, worauf alle Kolleginnen und Kollegen zugreifen kann. Dort habe ich eine Excel-Vorlage, worin die...
  5. VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.

    in Microsoft Excel Hilfe
    VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.: Hallo zusammen, Eine Tabelle mit 9 Worksheets, Datenblatt, Studien, Studie_1 ...Studie_7. Auf dem Deckblatt werden in Zelle B4-B10 die Namen der Studien eingetragen. Davon abhängig ob ein Name...
  6. VBA Zeilen kopieren mit Bedingung

    in Microsoft Excel Hilfe
    VBA Zeilen kopieren mit Bedingung: Hallo zusammen, Ich möchte per Makro Zeilen aus Tabelle2 in Tabelle3 kopieren, wenn eine Bedingung erfüllt ist. Bedingung: Der Wert in Spalte E (Tabelle2) kommt in Tabelle1 in Spalte E vor....
  7. VBA - Datensätze ans Ende einer anderen Tabelle kopieren

    in Microsoft Excel Hilfe
    VBA - Datensätze ans Ende einer anderen Tabelle kopieren: Hallo zusammen, ich habe gerade eine "Abrechnungs"-Datei für einen Kindergartenbasar erstellt. Es wäre klasse, wenn man per Schaltfläche die Datensätze aus der Tabelle "Kaeufer" ans Ende der...
  8. Laufzeitfehler 9 VBA

    in Microsoft Excel Hilfe
    Laufzeitfehler 9 VBA: Nschdem ich die Office Version von 2010 auf 2019 aktualisiert habe wird mir der Laufzeitfehler 9 ausgegeben. Das ist der Code Sub FiberCollect() Dim NumRows As Long 'letzte celle Dim Counter As...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden