Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1400to1404
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Berechnungslösung

VBA Berechnungslösung
04.01.2015 16:36:41
Charls85

Hallo zusammen,
hier mal ein beispiel meines Problems:
Spalte A Spalte B Spalte C Spalte D Spalte E Spalte F
Lgr------Halle-----------Tor--------Markt------BSF------Volumen
100--------2-------------151--------3000-------1513------600
100--------2-------------151--------3000-------1513------1500
100--------2-------------151--------3000-------1513------1400
100--------3-------------252--------2520-------2512-------300
100--------3-------------252--------2520-------2512-------500
100--------5-------------253--------1350-------2531-------1400
100--------5-------------253--------1350-------2531-------1200
usw...
Jetzt soll über VBA von Spalte B-E gleiche Werte ermittelt werden (Duplikate). Wenn es welche gibt dann soll in Spalte F addiert werden. Das Ergebnis soll nur dann in Tabelle 2 geschrieben werden wenn die Berechnung der Spalte F unter oder Maximal bis 1600 ergibt.
Es sind immer andere Werte keine festen Werte. Hier Wäre doch auch eine Schleife sinvoll oder ?
hier das Beispiel.
in dem Fall Markt 2520
Volumen
300+
500
=800
Tabelle 2
Halle-------Tor---------Markt------BSF----Ergebnis
3-----------252---------2520-------2512------X
Da hier das Volumen noch unter dem Maximalwert von 1600 liegt

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: warum noch einmal-siehe Link
04.01.2015 16:45:15
Charls85
hab mein Beitrag nicht mehr gefunden sorry :) Jetzt hab ich es auch gesehen

AW: warum noch einmal-siehe Link
04.01.2015 18:09:59
ransi
Hallo Robert,
Ich hab mich mal dran versucht...
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Sub machs()
    Dim arr As Variant
    Dim L As Long
    Dim I As Integer
    Dim myDic As Object
    Dim Element
    Dim lngRow As Long
    With Sheets("Tabelle1").Range("A1")
        arr = Intersect(.CurrentRegion, .CurrentRegion.Offset(1, 0))
    End With
    Set myDic = CreateObject("scripting.Dictionary")
    For L = LBound(arr) To UBound(arr)
        'Jetzt soll über VBA von Spalte B-E gleiche Werte ermittelt werden (Duplikate).
        'Wenn es welche gibt dann soll in Spalte F addiert werden.
        myDic(arr(L, 2) & "_" & arr(L, 3) & "_" & arr(L, 4) & "_" & arr(L, 5)) = myDic(arr(L, 2) & "_" & arr(L, 3) & "_" & arr(L, 4) & "_" & arr(L, 5)) + arr(L, 6)
    Next
    For Each Element In myDic.keys
        If myDic(Element) <= 1600 Then '..wenn die Berechnung der Spalte F unter oder Maximal bis 1600 ergibt.
            With Sheets("Tabelle2")
                lngRow = lngRow + 1
                .Cells(lngRow, 1).Resize(, 4) = Split(Element, "_") 'Das Ergebnis soll nur dann in Tabelle 2 geschrieben werden
                .Cells(lngRow, 5) = myDic(Element)
            End With
        End If
    Next
End Sub


ransi

Anzeige
AW: warum noch einmal-siehe Link
06.01.2015 11:35:45
Charls85
Hey ransi,
ich Danke dir vielmals für deine Mühe!!!!! Der Code läuft sauber durch bringt aberDas Element Leer, also er findet kein Ergebnis unter 1600 und schreibt daher auch nix in Tabelle 2. Obwohl es ein oder Mehrere Werte gibt die unter 1600 sind.

AW: warum noch einmal-siehe Link
06.01.2015 13:16:29
Charls85
Hey ransi,
habe es jetzt nochmal getestet. Er rechnet alle Duplikate zusammen und findet dann keine kleiner 1600. Deshalb kommt immer leer. Er soll nicht alle Duplikate zusammenrechnen sondern soll die in Duplikaten alle miteinander addieren und schauen ob zwei addierte kleiner 1600 ergeben. Hier ein bsp.
Wir haben jetzt vier duplikate
Lagernummer-- Halle-- Tor-- Markt-- BSF-- Volumen
100 --------------5 ----253 ---1350 --2531-----300
100 --------------5 ----253 ---1350 --2531-----400
100 --------------5 ----253 ---1350 --2531-----1400
100 --------------5 ----253 ---1350 --2531-----1600
jetzt soll geschaut werden ob das Volumen kleiner 1600 ergeben kann. jetzt sucht er nach dem möglichen Ergebnis: 300 + 400 = 700, 300 + 1400 = 1700, 300 + 1600 = 1900, 400 + 300 = 700, 400 + 1400 = 1800 usw.
einen Positiven Wert haben wir gefunden 300 + 400 = 700 also schreibt er es in Tabelle 2.

Anzeige
AW: VBA Berechnungslösung
06.01.2015 12:55:56
Charls85
Hey ransi,
ich Danke dir vielmals für deine Mühe!!!!! Der Code läuft sauber durch bringt aberDas Element Leer, also er findet kein Ergebnis unter 1600 und schreibt daher auch nix in Tabelle 2. Obwohl es ein oder Mehrere Werte gibt die unter 1600 sind.

AW: VBA Berechnungslösung
06.01.2015 13:52:37
Charls85
Kann mir jemand helfen ?

AW: VBA Berechnungslösung
10.01.2015 09:53:39
Hajo_Zi
vielleicht solltest Du Deine aktuelle Datei mit dem aktuellen Code verlinken? Nur wenige sehe dies.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige