Office: (Office Version unbekannt) VBA Lösung Einkauf/Verkauf Erlös

Helfe beim Thema VBA Lösung Einkauf/Verkauf Erlös in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Salve liebe Forenmitglieder =) Nachdem ich selbstredend VOR dem erstellen einer Frage etliche Stunden im Internet geforstet habe und dennoch nicht auf... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Brudolf, 28. Juni 2019.

  1. VBA Lösung Einkauf/Verkauf Erlös


    Salve liebe Forenmitglieder =)

    Nachdem ich selbstredend VOR dem erstellen einer Frage etliche Stunden im Internet geforstet habe und dennoch nicht auf meine Lösung kam, wollte ich einfach mal direkt die Experten befragen =)

    Ich habe verschiedene Datensätze grob zusammengestellt (Links die Einkäufe eines Jahres, rechts die Verkäufe selbigen Jahres)

    Mein Ziel ist es, in der "Einkäufe" Sektion nach Karten der "Verkäufe Sektion" suchen zu lassen (Nach Datum aufsteigend sortiert) und gemäß des FIFO Prinzips, alsbald eine der "Verkauft" Karten in "Eingekauft gefunden wurde, die Zeilen des Matches in der "Einkauf-Liste" auszuschneiden und in ein neues Tabellenblatt zu kopieren. Anschließend ermittelt die Makro dann noch den erzielten Gewinn des Handels und schreibt diesen rechts neben die herausgeschnittene und in ein separates Tankdatenblatt eingefügte Zeile.

    Meine Vorstellungen gehen zwar noch sehr viel weiter, aber ich wollte erstmal vorsichtig nach dem kleinen Finger fragen, bevor ich euch den Arm herausreiße :D

    (Die "NV-Spalte" in der Mitte waren meine gescheiterten "ZählenWenn" und WVerweisversuche :D)


    Dies waren meine Makroansätze.. funzten jedoch nicht und inzwischen habe ich da mit googlewissen so viel verfrimelt, dass ich nicht mehr weiß ob da kein Grundlegender Fehler enthalten ist :/

    __________________________________________________________

    Sub Schaltfläche2_Klicken()

    Dim Anzah
    Dim Anzahl A As Long
    Dim SZelle As Range
    Dim Suchwert As String


    //Application.ScreenUpdating = False
    //Application.Calculation = xlCalculationManual
    //Application.EnableEvents = False
    //Dim DatAnfang As Date
    // DatAnfang = Now

    Suchwert = "Das hier müsste variabel sein und die Spalte "Verkäufe" Zelle für Zelle durchlaufen" (mglw mit ner while? :/)



    Anzahl = Application.WorksheetFunction.CountIf(Tabelle1.Range("D:D"), Suchwert)



    For A = 1 To Anzahl


    If A = 1 Then
    Set SZelle = Tabelle1.Range("D:D").Find(Suchwert)
    SZelle.Offset(columnOffset:=1).Copy Sheets("Tabelle2").Cells(A, 2)


    Else
    Set SZelle = Tabelle1.Range("D:D").FindNext(SZelle)
    SZelle.Offset(columnOffset:=1).Copy Sheets("Tabelle2").Cells(A, 2)

    End If

    Next A
    ___________________________________________________

    Ich hoffe, dass ich alle Forenregeln beachtet habe und würde mich über Lösungsansätze freuen =)

    Mit freundlichen Grüßen,
    Brudolf :D

    VBA Lösung Einkauf/Verkauf Erlös Datensatz.jpg
     
    Zuletzt von einem Moderator bearbeitet: 30. November 2020
    Brudolf, 28. Juni 2019
    #1
  2. Abend an die Excelcracks =)

    Habe ich etwas Grundlegend falsch erstellt/gefragt/beschrieben? :/

    Ist mein erster Post(obviously) und der einzige welcher so GAR keine Antwort oder wenigstens "Hits" erhält :/
     
    Brudolf, 2. Juli 2019
    #2
  3. Beverly
    Beverly Erfahrener User
    Hi,

    du solltest schon eine Beispielmappe hochladen, denn 1. kann man auf dem Bild nichts erkennen und 2. kann man ein Bild nicht in eine funktionierende Arbeitsmappe umwandeln.

    Bis später,
    Karin
     
    Beverly, 5. Juli 2019
    #3
  4. VBA Lösung Einkauf/Verkauf Erlös


    Huppsa :D sorry =)

    Das leuchtet ein.

    Musste nun 90% des Datensatzes rauswerfen um unter 100kb zu kommen :-D aber ich denke, der Aufbau ist ersichtlich =)

    Mfg,

    euer Brudolf =)
     
    Brudolf, 7. Juli 2019
    #4
  5. Beverly
    Beverly Erfahrener User
    Hi,

    wenn du VBA verwenden willst, dann musst du natürlich die Mappe auch mit dem entsprechenden Code und somit als xlsm hochladen. Deinen Code einfach aus deinem Beitrag übernehmen geht außerdem schlecht, da die Forumssoftware einige deiner Zeichen in Smileys umgewandelt hat.

    Bis später,
    Karin
     
    Beverly, 7. Juli 2019
    #5
  6. (Teil) Lösung

    Okay :-D vielen Dank für den Hinweis =)

    Habe das inzwischen selbst zusammengescripted bekommen (Kann also direkt etwas zu diesem Forum beisteuern ;D)


    Public Sub CopyRows()


    ' Performance steigern
    ' + kleiner "Wie lange dauert das ganze" Zusatz

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    Dim DatAnfang As Date
    DatAnfang = Now

    For i = 1 To 30


    s = Sheets("Ausgang").Cells(i, 12).Text

    ' ________________________________________________________________
    ' aktuelle Karte ebenfalls kopieren und gegenüber stellen

    Cells(i, 11).Resize(11, 17).Copy
    Sheets("lösung").Select
    NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
    Cells(NextRow, 9).Select
    ActiveSheet.Paste
    Sheets("Ausgang").Select


    ' Ende der Mappe finden
    FinalRow = Cells(Rows.Count, 1).End(xlUp).Row

    ' Jede Zeile dursichen
    For x = 2 To FinalRow

    ' Suchort deklarieren ( Zeile x in Spalte B)

    ThisValue = Cells(x, 2).Value

    If ThisValue = s Then

    ' eigentliche Suche nach EINKÄUFEN dieser Karte in der Vergangenheit
    ' __________________________________________________________________________________
    Cells(x, 1).Resize(1, 7).Copy
    Sheets("lösung").Select
    NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
    Cells(NextRow, 1).Select
    ActiveSheet.Paste
    Sheets("Ausgang").Select
    ' __________________________________________________________________________________

    End If
    Next x
    Next i


    ' irgendwie muss ich die drecks duplicates wieder rauswerfen :D
    ' __________________________________________________________________________________
    Sheets("lösung").Select
    Range("A:G").Select
    ActiveSheet.Range("A:G").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7), Header:=xlNo

    ' Dublettenentfernung NUR wenn wirklich die ganze Zeile (A-G) übereinstimmt und nicht wie für gewöhnlich ein Wert ausreicht um es als "Dublette" zu deklarieren

    Range("I:O").Select
    ActiveSheet.Range("I:O").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7), Header:=xlNo
    Sheets("Ausgang").Select
    ' __________________________________________________________________________________

    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    ' MsgBox Format(Now - DatAnfang, "hh:mm:ss"), , "Endlich fertig Ihr Spinner"

    End Sub


    Ich Danke an dieser Stelle Karin, welche leider die einzige war, welche sich überhaupt dazu herabließ mir unter die Arme greifen zu wollen =)

    DANKE KARIN! =)
     
    Brudolf, 16. Juli 2019
    #6
  7. Okay :-D vielen Dank für den Hinweis =)

    Habe das inzwischen selbst zusammengescripted bekommen (Kann also direkt etwas zu diesem Forum beisteuern ;D)


    Public Sub CopyRows()


    ' Performance steigern
    ' + kleiner "Wie lange dauert das ganze" Zusatz

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    Dim DatAnfang As Date
    DatAnfang = Now

    For i = 1 To 30


    s = Sheets("Ausgang").Cells(i, 12).Text

    ' ________________________________________________________________
    ' aktuelle Karte ebenfalls kopieren und gegenüber stellen

    Cells(i, 11).Resize(11, 17).Copy
    Sheets("lösung").Select
    NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
    Cells(NextRow, 9).Select
    ActiveSheet.Paste
    Sheets("Ausgang").Select


    ' Ende der Mappe finden
    FinalRow = Cells(Rows.Count, 1).End(xlUp).Row

    ' Jede Zeile dursichen
    For x = 2 To FinalRow

    ' Suchort deklarieren ( Zeile x in Spalte B)

    ThisValue = Cells(x, 2).Value

    If ThisValue = s Then

    ' eigentliche Suche nach EINKÄUFEN dieser Karte in der Vergangenheit
    ' __________________________________________________________________________________
    Cells(x, 1).Resize(1, 7).Copy
    Sheets("lösung").Select
    NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
    Cells(NextRow, 1).Select
    ActiveSheet.Paste
    Sheets("Ausgang").Select
    ' __________________________________________________________________________________

    End If
    Next x
    Next i


    ' irgendwie muss ich die drecks duplicates wieder rauswerfen :D
    ' __________________________________________________________________________________
    Sheets("lösung").Select
    Range("A:G").Select
    ActiveSheet.Range("A:G").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7), Header:=xlNo

    ' Dublettenentfernung NUR wenn wirklich die ganze Zeile (A-G) übereinstimmt und nicht wie für gewöhnlich ein Wert ausreicht um es als "Dublette" zu deklarieren

    Range("I:O").Select
    ActiveSheet.Range("I:O").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7), Header:=xlNo
    Sheets("Ausgang").Select
    ' __________________________________________________________________________________

    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    ' MsgBox Format(Now - DatAnfang, "hh:mm:ss"), , "Endlich fertig Ihr Spinner"

    End Sub


    Ich Danke an dieser Stelle Karin, welche leider die einzige war, welche sich überhaupt dazu herabließ mir unter die Arme greifen zu wollen =)

    DANKE KARIN! =)
     
    Brudolf, 16. Juli 2019
    #7
Thema:

VBA Lösung Einkauf/Verkauf Erlös

Die Seite wird geladen...
  1. VBA Lösung Einkauf/Verkauf Erlös - Similar Threads - VBA Lösung Einkauf

  2. VBA Lösung gesucht

    in Microsoft Excel Hilfe
    VBA Lösung gesucht: Guten Tag zusammen. Ich bin neu hier und auch sehr neu was VBA angeht und bin dabei zu lernen. Ich benötige für ein Projekt auf der Arbeit nun folgende Lösung. Ich möchte gerne Per Inputbox...
  3. Verständnisfrage und Lösung für Namensliste (VBA)

    in Microsoft Excel Hilfe
    Verständnisfrage und Lösung für Namensliste (VBA): Salü zäme, ich bin neu hier und versuche mich an VBA. Grundkenntnisse sind vorhanden, dennoch stehe ich vor einem Problem, wo meine Logik im Moment aussetzt... Ich habe eine Namensliste auf...
  4. VBA Lösung für Excel Formel

    in Microsoft Access Hilfe
    VBA Lösung für Excel Formel: Ich habe in einer Access Datenbank u.a. einen(!) Datensatz mit 4 Feldern, die je nach der Höhe deren Inhalt in einem 2. Feld unterschiedlich bewertet werden sollen. Beispiel: Feld1 = 150, Feld2 =...
  5. verteilung Formel oder VBA Lösung

    in Microsoft Excel Hilfe
    verteilung Formel oder VBA Lösung: Hilfe bitte. ich will eine Auftragssumme durch datum Differenz teilen und in richtigen Monat einfugen. ich habe es mit dieser Formel probiert aber irgendwie klappt es nicht. er muss die summe so...
  6. Frontend-Backend-Lösung für Excel

    in Microsoft Excel Hilfe
    Frontend-Backend-Lösung für Excel: Hallo! Ich habe eine Frontend-Backend-Lösung für Excel entwickelt, die vielleicht auch für Andere interessant ist. Was meine ich damit? Die Aufgabenstellung Mehrere Nutzer sollen gleichzeitig mit...
  7. Makro? VBA? Sortieren geht nicht, brauche bitte Hilfe bei der Lösung

    in Microsoft Excel Hilfe
    Makro? VBA? Sortieren geht nicht, brauche bitte Hilfe bei der Lösung: Einen wunderschönen "Guten Tag", nachdem letzte Saison mein Problem ungelöst blieb muss es dieses Jahr was werden ... Ich habe eine Excel 2003 Tabelle mit mehreren, identischen...
  8. Dreifach "wenn" Abfrage mit VBA- gibt es eine bessere Lösung?

    in Microsoft Excel Hilfe
    Dreifach "wenn" Abfrage mit VBA- gibt es eine bessere Lösung?: Hallo, ich möchte aus einer Tabelle eine bestimmt Zelle finden, mit VBA. Meine Vorgehensweise aktuell: for Zeile= lng to 2 step -1 If Cells(Zeile, 1)= "999" and Cells(Zeile, 2) = "666"...
Schlagworte:
  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